依賴關系是指一個類對別一個類的依賴,比如說Employee類中有一個方法叫做TakeMoney(Bank bank)這個方法,在這個方法的參數(shù)中用到了Bank這個類,那么這個時候可以說Employee類依賴了Bank這個類,如果Bank這個類發(fā)生了變化那么會對Employee這個類造成影響。
創(chuàng)新互聯(lián)-云計算及IDC服務提供商,涵蓋公有云、IDC機房租用、成都移動云計算中心、等保安全、私有云建設等企業(yè)級互聯(lián)網(wǎng)基礎服務,咨詢電話:18982081108
類與類的關系
1、依賴關系
依賴關系表示一個類依賴于另一個類的定義。通俗來講即是類A中使用了另外的一個類B,且類B并非類A中作為屬性存在,即表示類A依賴于類B。對象之間最弱的一種關聯(lián)方式,是臨時性的關聯(lián)。代碼中一般指由局部變量、函數(shù)參數(shù)、返回值建立的對于其他對象的調(diào)用關系。
class A{
public B method(C c){
B b = new B();
return b;
}
}
登錄后復制
2、關聯(lián)關系
關聯(lián)關系是類與類之間的聯(lián)接,它使一個類知道另一個類的屬性和方法。通俗來講即類A中有一個屬性b,該屬性的數(shù)據(jù)類型為類B,類A可以通過屬性b調(diào)用類B的屬性與方法。也即一般來說的has-a的關系。
class A{
public B b;
}
登錄后復制
3、聚合關系
聚合關系是特殊的關聯(lián)關系,其與關聯(lián)關系在代碼上并無實際上的區(qū)別,二者的區(qū)別主要體現(xiàn)在語義上,關聯(lián)關系即代表可有可無,而聚合關系則代表必須擁有(注:被聚合或關聯(lián)的事務也代表一個單獨的事務,其也有獨立的意義。)舉例說明就像筆記本電腦,其與外接鼠標就是關聯(lián)關系,外接鼠標只是附件,而想cpu,內(nèi)存條等是組成一個筆記本電腦所必須的,而他們的關系就是聚合關系。
class computer{
public Cpu cpu1;
}
登錄后復制
4、組合關系
組合關系也是特殊的關聯(lián)關系,其類似于聚合關系,但比聚合關系更加的強,即對象 A 包含對象 B,對象 B 離開對象 A 沒有實際意義。舉例來講就是作為一個人,你可以沒有錢,但你不能沒有腦子(物理),你與錢就是關聯(lián)關系,錢乃身外之物,而你與大腦則是組合關系,大腦每人就一個,沒了它,你便無法存在,而單獨一個腦子離開了人也就失去了它應有的作用。
class person{
public Head head;
}
登錄后復制
5、繼承關系
類與類的繼承關系,類與接口的實現(xiàn)關系。繼承指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,并可以增加它自己的新功能的能力。
class A extends B{
public A(){
super();
}
}
登錄后復制
類與類之間的繼承只能是單繼承,但可以多層繼承。
單繼承即表示一個類只可以繼承一個父類。
多層繼承即是類A繼承類B,而類B又繼承了類C,所以類A間接繼承了類C
類與接口之間的關系
注:Java8新增了默認方法和靜態(tài)方法;
public interface A{
//抽象方法
public void a1();
//默認方法
default void a2() {
System.out.println("a2");
}
//靜態(tài)方法
static void a4() {
System.out.println("a4");
}
}
登錄后復制
?
其中,靜態(tài)方法只供接口直接使用
類可以繼承一個類且實現(xiàn)多個接口
注意:
1.如果多個接口中有同名的抽象方法,那么實現(xiàn)類只需要實現(xiàn)一次即可
2.如果多個接口中有同名的默認方法,那么實現(xiàn)類必須重寫一次,并且要去掉default關鍵字
接口可以繼承多個接口
注意:
1.如果多個父接口中有同名的抽象方法,那么子接口只需要實現(xiàn)一次即可
2.如果多個父接口中有同名的默認方法,那么子接口必須重寫默認方法,必須要加default關鍵字
在Java中,依賴關系通常表示為一個類依賴于另一個類,因為它需要調(diào)用另一個類的方法或構造函數(shù)來完成它的工作。例如,假設我們有一個名為Car的類,它擁有一個名為startEngine的方法,用于啟動汽車的發(fā)動機。我們還有一個名為Driver的類,它有一個名為drive的方法,用于駕駛汽車。那么Driver類就依賴于Car類,因為Driver類需要調(diào)用Car類的startEngine方法來啟動汽車。
下面是一個示例代碼,實現(xiàn)了一個依賴關系的場景:
=================
public class Car {
public void startEngine() {
System.out.println("Engine started.");
}
}
public class Driver {
private Car car;
public Driver(Car car) {
this.car = car;
}
public void drive() {
car.startEngine();
System.out.println("Car is being driven.");
}
}
public class Main {
public static void main(String[] args) {
Car car = new Car();
Driver driver = new Driver(car);
driver.drive();
}
}
=================
在這段代碼中,Driver類的構造函數(shù)接收一個Car類的實例作為參數(shù),并將它保存在私有字段car中。在Driver類的drive方法中,我們首先調(diào)用了car實例的startEngine方法,然后打印一條消息,表示汽車正在被駕駛。
關聯(lián)關系通常表示為兩個類之間的關系,它們之間的關系可能是一對一,一對多或多對多。例如,假設我們有一個名為Student的類,它有一個名為enroll的方法,用于選課。我們還有一個名為Course的類,它有一個名為addStudent的方法,用于添加學生。那么Student類和Course類之間就存在一對多的關聯(lián)關系,因為一個學生可以選擇多個課程,而一個課程也可以被多個學生選擇。
下面是一個示例代碼,實現(xiàn)了一個關聯(lián)關系的場景:
=================
public class Student {
private ListCourse courses = new ArrayList();
public void enroll(Course course) {
courses.add(course);
course.addStudent(this);
}
}
public class Course {
private ListStudent students = new ArrayList();
public void addStudent(Student student) {
students.add(student);
}
}
public class Main {
public static void main(String[] args) {
Student student = new Student();
Course course1 = new Course();
Course course2 = new Course();
student.enroll(course1);
student.enroll(course2);
}
}
=================
在這段代碼中,Student類擁有一個私有字段courses,表示學生選擇的課程。Student類的enroll方法用于選課,它接收一個Course類的實例作為參數(shù),并將它添加到courses列表中。同時,enroll方法還會調(diào)用課程實例的addStudent方法,將學生添加到課程的學生列表中。
在Main類的main方法中,我們創(chuàng)建了一個學生實例和兩個課程實例。我們調(diào)用學生實例的enroll方法,將兩個課程實例添加到學生的選課列表中,同時將學生添加到兩個課程的學生列表中。這就實現(xiàn)了一對多的關聯(lián)關系。
總之,依賴關系和關聯(lián)關系都是表示兩個類之間的關系,但是它們之間的關系不同。依賴關系表示一個類依賴于另一個類,因為它需要調(diào)用另一個類的方法或構造函數(shù)來完成它的工作;關聯(lián)關系表示兩個類之間的關系,它們之間可能是一對一,一對多或多對多。
分享題目:java代碼怎么表示依賴 javax依賴
URL地址:http://muchs.cn/article6/doecoig.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、網(wǎng)頁設計公司、動態(tài)網(wǎng)站、全網(wǎng)營銷推廣、網(wǎng)站導航、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)