「java单向依赖」java依赖报红
今天给各位分享java单向依赖的知识,其中也会对java依赖报红进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java中类与类之间的关系讲解
1.关联
关联即对象与对象之间的连接。java类之间的关联是一个类的作为另一个的属性被定义,即“has-a”的关系。关联又分为组合与聚合两种。示例如下:
//两个类之间的聚合public class Car{}public class Person{
private Car car;
}//两个类之间的组合public class Car{}public class Person{
private Car car=new Car();//创建一个Car对象}123456789101112
关联又分为单向关联与双向关联,以上代码为单向关联(Person类关联Car类),双向关联(Person类关联Car类,同时Car类关联Person类)代码如下:
public class Car{
private Person per;
}public class Person{
private Car car;
}123456
类之间的关联,可以一对一的关联,也可以一对多的关联。
2.依赖
依赖的具体表现是将一个类的对象当做方法参数传给另一个类的方法,是一种use-a的关系。如:
public class Person{
public void dirve(Car car){
}
}1234
关联与依赖的区别在于:关联是has-a的关系,依赖是use-a的关系;而且关联中Person关联Car,只要Person类对象存在,Car对象就存在;依赖中只有Person类对象调用到dirve()方法时,Car对象才会被创建,方法执行结束后,Car对象就被收回。
3.继承
类与类的另一个关系是继承。继承是一个类的定义基于另一个存在的类,即子类基于父类,如此可实现代码的重用,子类能够继承父类可访问的方法、属性,并能扩展新的能力,而且子类可重写父类方法以满足子类需要。在继承中子类可调用父类的构造方法,子类构造方法总是先调用父类的构造方法,而且默认情况下调用父类的无参构造方法,在子类构造方法的第一行使用super关键字即可调用父类构造方法。示例代码如下:
public class Point {
private double x; private double y; public double getX() { return x;
} public void setX(double x) { this.x = x;
} public double getY() { return y;
} public void setY(double y) { this.y = y;
} //无参构造方法
public Point() {
} //有参构造方法
public Point(double x, double y) { this.x = x; this.y = y;
} //draw()方法
public void draw(){
}
}public class Circle extends Point {
private double r; public double getR() { return r;
} public void setR(double r) { this.r = r;
} //有参构造方法
public Circle(double x, double y) { super(x, y);
} public void draw() {
System.out.println("半径为:" + this.r + " x坐标为:" + getX() + " y坐标为:" + getY() + "的圆绘制成功!");
}
}public class Test {
public static void main(String[] args) {
Circle circle = new Circle(2, 3);
circle.setR(3);
circle.draw();
}
}
如何通俗的理解java的依赖注入
假设你编写了两个类,一个是人(Person),一个是手机(Mobile)。
人有时候需要用手机打电话,需要用到手机的callUp方法。
传统的写法是这样:
Java code
public class Person{
public boolean makeCall(long number){
Mobile mobile=new Mobile();
return mobile.callUp(number);
}
}
也就是说,类Person的makeCall方法对Mobile类具有依赖,必须手动生成一个新的实例new Mobile()才可以进行之后的工作。
依赖注入的思想是这样,当一个类(Person)对另一个类(Mobile)有依赖时,不再该类(Person)内部对依赖的类(Moblile)进行实例化,而是之前配置一个beans.xml,告诉容器所依赖的类(Mobile),在实例化该类(Person)时,容器自动注入一个所依赖的类(Mobile)的实例。
接口:
Java code
public Interface MobileInterface{
public boolean callUp(long number);
}
Person类:
Java code
public class Person{
private MobileInterface mobileInterface;
public boolean makeCall(long number){
return this.mobileInterface.callUp(number);
}
public void setMobileInterface(MobileInterface mobileInterface){
this.mobileInterface=mobileInterface;
}
}
在xml文件中配置依赖关系
Java code
bean id="person" class="Person"
property name="mobileInterface"
ref local="mobileInterface"/
/property
/bean
bean id="mobileInterface" class="Mobile"/
这样,Person类在实现拨打电话的时候,并不知道Mobile类的存在,它只知道调用一个接口MobileInterface,而MobileInterface的具体实现是通过Mobile类完成,并在使用时由容器自动注入,这样大大降低了不同类间相互依赖的关系。
java依赖注入的方法:set注入,构造方法注入,接口注入。
在Java中依赖关系到底是什么,可以定义说明一下么,或是举个例子
依赖关系是指一个类对别一个类的依赖,比如说Employee类中有一个方法叫做TakeMoney(Bank bank)这个方法,在这个方法的参数中用到了Bank这个类,那么这个时候可以说Employee类依赖了Bank这个类,如果Bank这个类发生了变化那么会对Employee这个类造成影响。
什么是java架构
问题有点大,不知从何入手。
我就以我个人观点瞎说吧。
一、语法的构成,java和c、c++没啥太大的差别
在程序的控制方面:
循环(for,while),分歧(if,whish),头文件(改成引入包),预处理指令貌似是取消了,
内存控制方面:
java与c最大的不同是无法直接操作指针,使得java程序更安全,
java采用了资源回收机制,自动清理内存中被丢弃的碎片,
模块关系:
java是单向继承,这样防止了程序模块之间的关系过于复杂。
java广泛采用接口,超级接口,超级父类来规范和扩展程序功能。
二、从执行环境来看:
众所周知,java程序是依托于虚拟机来执行的,这样编译过的java代码不是真正意义的可以运行的代码,而是一个介于两者之间的中立体,这样就可以在任何平台上互补冲突的执行而不犯错误这也是java最大的特点之一。
三、API以及扩展
java基本功能都依赖于核心函数库(类库,方法库)来执行。所有基本方法和类,都可以在api文档中查看,并且为了功能扩展,java支持导入新的api
关于java单向依赖和java依赖报红的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。