关联即对象与对象之间的连接。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()
}
}
先看一张jdk,jre,jvm的关系图(来自java官网)
java-jdk-8
A)JVM,JRE,JDK之间的关系。
jvm(Java Virtual Machine) JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
jre (java runtime environment) 是java程序的运行环境。
jdk(java development kit)是java的开发工具包。
B)JDK各版的名称及发布时间。
C)JDK各版的特性。
D)一些java框架与JDK之间的关系。
请参考原文: 全面了解JDK: 与JRE,JVM关系,JDK各版本
怎么用visio画Java代码中类之间的关系图依赖 --- 两个事物间的语义关系,对于两个对象X、Y,如果对象X发生变化,可能会引起对另一个对象Y的变化,则称Y依赖于X。
关联 --- 是一种结构关系,指一种对象和另一种对象有联系。给定关联的两个类,可以从其中的一个类的对象访问到另一个类的相关对象。
泛化 --- 一般/特殊关系