java单向关系的代码 java单向关系的代码是什么

求解:Java中类和类之间的三种关系用代码举例//依赖最常见的是参数关系,如:
public class B{
/***B中的一个方法**/
public void testMethod(A a){
//此时B和A是依赖关系
}
}
//聚合关系通常表现为部分与整体的关系,如:
public class B{
/***B中的一个属性**/
A a;
}
【java单向关系的代码 java单向关系的代码是什么】//泛化关系通常表现为继承关系,如:
public class B extends A{
}
耦合度最高的是不是关联关系在java以及其他的面向对象设计模式中java单向关系的代码,类与类之间主要有6种关系java单向关系的代码 , 他们分别是:依赖、关联、聚合、组合、继承、实现 。他们的耦合度依次增强 。
1. 依赖(Dependence)
依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时 , 这两个对象之间主要体现为依赖关系 。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中使用了类B , 其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用 。类上面的图例中:People类依赖于Book类和Food类,Book类和Food类是作为类中方法的参数形式出现在People类中的 。
代码样例:
public class People{
//Book作为read方法的形参
public void read(Book book){
System.out.println(“读的书是” book.getName());
}
}
2.关联(Association)、、
单向关联:
双向关联:
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系 。关联关系分为单向关联和双向关联 。在java中,单向关联表现为:类A当中使用了类B,其中类B是作为类A的成员变量 。双向关联表现为:类A当中使用了类B作为成员变量;同时类B中也使用了类A作为成员变量 。
代码样例:
public class Son{
//关联关系中作为成员变量的类一般会在类中赋值
Father father = new Father();
public void getGift(){
System.out.println(“从” father.getName() ”获得礼物”);
}
}
public class Father{
Son son = new Son();
public void giveGift(){
System.out.println(“送给” son.getName() “礼物”);
}
}
3.聚合(Aggregation)
聚合关系是关联关系的一种,耦合度强于关联,他们的代码表现是相同的,仅仅是在语义上有所区别:关联关系的对象间是相互独立的,而聚合关系的对象之间存在着包容关系 , 他们之间是“整体-个体”的相互关系 。
代码样例:
public class People{
Car car;
House house;
//聚合关系中作为成员变量的类一般使用set方法赋值
public void setCar(Car car){
This.car = car;
}
public void setHouse(House house){
This.house = house;
}
public void driver(){
System.out.println(“车的型号:” car.getType());
}
public void sleep(){
System.out.println(“我在房子里睡觉:” house.getAddress());
}
}
4.组合(Composition)
相比于聚合 , 组合是一种耦合度更强的关联关系 。存在组合关系的类表示“整体-部分”的关联关系,“整体”负责“部分”的生命周期,他们之间是共生共死的;并且“部分”单独存在时没有任何意义 。在下图的例子中,People与Soul、Body之间是组合关系 , 当人的生命周期开始时,必须同时有灵魂和肉体;当人的生命周期结束时 , 灵魂肉体随之消亡;无论是灵魂还是肉体,都不能单独存在,他们必须作为人的组成部分存在 。
Public class People{
Soul soul;
Body body;
//组合关系中的成员变量一般会在构造方法中赋值
Public People(Soul soul, Body body){
This.soul = soul;
This.body = body;
}
Public void study(){
System.out.println(“学习要用灵魂” soul.getName());
}
Public void eat(){
System.out.println(“吃饭用身体:” body.getName());
}
}
5.继承(Generalization)
继承表示类与类(或者接口与接口)之间的父子关系 。在java中,用关键字extends表示继承关系 。UML图例中 , 继承关系用实线 空心箭头表示 , 箭头指向父类 。
6.实现(Implementation)
表示一个类实现一个或多个接口的方法 。接口定义好操作的集合 , 由实现类去完成接口的具体操作 。在java中使用implements表示 。UML图例中,实现关系用虚线 空心箭头表示,箭头指向接口 。
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中类与类之间的关系是怎样的 , 请高手举例说明一下一、继承关系
继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能java单向关系的代码,并可以增加它自己的新功能的能力 。在Java中继承关系通过关键字extends明确标识 , 在设计时一般没有争议性 。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类 , 或者子接口指向父接口 。
二、实现关系
实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系 。在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性 。在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口 。
三、依赖关系
简单的理解,依赖就是一个类A使用到java单向关系的代码了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A 。比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖 。表现在代码层面,为类B作为参数被类A在某个method方法中使用 。在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示 。
四、关联关系
关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友 , 这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的 。关联可以是单向、双向的 。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量 。在UML类图设计中 , 关联关系用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记 。
五、聚合关系
聚合是关联关系的一种特例,它体现的是整体与部分的关系 , 即has-a的关系 。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象 , 也可以为多个整体对象共享 。比如计算机与CPU、公司与员工的关系等,比如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等 。表现在代码层面,和关联关系是一致的 , 只能从语义级别来区分 。在UML类图设计中,聚合关系以空心菱形加实线箭头表示 。
六、组合关系
组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合 。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,比如人和人的大脑 。表现在代码层面,和关联关系是一致的,只能从语义级别来区分 。在UML类图设计中,组合关系以实心菱形加实线箭头表示 。
七、总结
对于继承、实现这两种关系没多少疑问 , 它们体现的是一种类和类、或者类与接口间的纵向关系 。其他的四种关系体现的是类和类、或者类与接口间的引用、横向关系,是比较难区分的,有很多事物间的关系要想准确定位是很难的 。前面也提到,这四种关系都是语义级别的,所以从代码层面并不能完全区分各种关系,但总的来说,后几种关系所表现的强弱程度依次为java单向关系的代码:组合聚合关联依赖 。
关于java单向关系的代码和java单向关系的代码是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读