1. 程式人生 > >java中類與類之間的關係

java中類與類之間的關係

 在java程式中,將具有相同屬性、方法的事物抽象為一個類。比如人都有姓名、家庭住址、年齡、膚色等等屬性,而同時又有行、走、坐、臥等最基本的行為,因此可將這些屬性、方法抽象為一個類即Human類。示例程式碼如下:

public class Human{
  /*
  *屬性
  */
  private String name;
  private String address;
  private int age;
  /*
  *方法
  */
  public void sit(){
   // 方法體
  }
  public void walk(){
    // 方法體
  }
  public
void lying(){ // 方法體 } }

  當一個類的屬性或行為需要其他類進行互動時,就產生了類與類之間的三種關係:關聯、依賴、繼承。

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物件 }

  關聯又分為單向關聯與雙向關聯,以上程式碼為單向關聯(Person類關聯Car類),雙向關聯(Person類關聯Car類,同時Car類關聯Person類)程式碼如下:

public class Car{
  private Person per;
}
public class Person{
  private Car car;
}

類之間的關聯,可以一對一的關聯,也可以一對多的關聯。

2.依賴
  依賴的具體表現是將一個類的物件當做方法引數傳給另一個類的方法,是一種use-a的關係。如:

public class Person{
  public
void dirve(Car car){ } }

  關聯與依賴的區別在於:關聯是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();
    }
}

輸出結果為:半徑為:3.0 x座標為:2.0 y座標為:3.0的圓繪製成功!

相關推薦

介面之間關係、介面介面之間關係、面向物件三大特徵之多型

一、類與介面之間關係: 實現關係。 1、類與介面要注意的事項: 1)重點內容非抽象類實現一個介面時,必須要把介面中所有方法全部實現。 2)抽象類實現一個介面時,可以實現也可以不實現介面中的 方法。 3)一個類可以實現多個介面 。 2、疑問: java為

Java之間方法的呼叫及其關鍵字區分(基礎)

最近在寫應用時,對包與包之間方法的呼叫不太清楚,專門看視訊和網站後整理了這篇文章,希望對剛入門的同志有所幫助,進入主題。 首先我們先簡單看看Java中private、protected、public和default的主要區別:(看不懂沒關係,有個印象就行,然後往下看) 我們將

java HashMap HashTable之間的區別

今天訪問java 併發程式設計網,看到一個翻譯徵集令,併發程式設計網的作者從stackoverflow 網站上選取了一些經典問答,遂決定翻譯幾篇 翻譯系列文章: 3.在java中如何建立一個記憶體洩露 譯文: 問題:   java 中HashMap 與Hash

Java棧的關係

資料型別     Java虛擬機器中,資料型別可以分為兩類:基本型別和引用型別。基本型別的變數儲存原始值,即:他代表的值就是數值本身;而引用型別的變數儲存引用值。“引用值”代表了某個物件的引用,而不是物件本身,物件本身存放在這個引用值所表示的地址的位置。 基本型別包括:byte,short,int,long

javaunicode字串之間的互相轉換

字串與unicode之間的互相轉換/*** 字串轉換unicode*/public static String string2Unicode(String string) { StringBuffer unicode = new StringBuffer(); for (i

Java MapJavaBean之間的相互轉化

在做匯入的時候,遇到了需要將map物件轉化 成javabean的問題,也就是說,不清楚javabean的內部欄位排列,只知道map的 key代表javabean的欄位名,value代表值。 那現在就需要用轉化工具了。是通用的哦! 首先來看 JavaBean 轉化成Ma

java字串陣列之間的轉換

做題目時候遇到了這個問題,如何將字串轉換成陣列,翻閱資料得到了答案。 (1)字元轉轉陣列 字串不是陣列,但是字串可以轉換成陣列,反之亦然。為了將字串轉換成一個字元陣列,可以使用String類的toCh

Java之間關係以及自己的理解

網上關於此類的討論非常多,發現對於該問題的理解各有各的說法,而各個說法中又相去甚遠。通過瀏覽這些討論以及對《O'Reilly - UML 2.0 In A Nutshell (2007)》的參考,發表一下自己的看法 類間關係有很多種,在大的類別上可以分為兩種:縱向關係、橫向

java之間關係

 在java程式中,將具有相同屬性、方法的事物抽象為一個類。比如人都有姓名、家庭住址、年齡、膚色等等屬性,而同時又有行、走、坐、臥等最基本的行為,因此可將這些屬性、方法抽象為一個類即Human類。示例程式碼如下: public class Human{

JavaString常見方法以及之間的轉換

String類中的方法描述 public String() 空引數構造方法 public String(byte[] bytes) 把位元組陣列轉換成字串物件 public String(byte[] bytes,int index,int length) 把位元組陣

JAVA基礎(53)---之間關係

面向物件的三大特徵: 封裝     繼承     多型 類與類之間的關係 繼承。 依賴。一個類作為另一個類中的引數出現 聚合。指的是兩個類之間存在著一種整體與部分的關係,兩個類之間,雖然有關

JAVA基礎之類和物件以及之間關係

面向物件是當前軟體開發的主流設計規範,是一種程式語言模式。 面向物件主要包括面型物件分析,面型物件設計,面型物件程式設計。 面型物件分析就是以面向物件“類”的概念去認識問題,分析問題。 1.下面舉一個很簡單的例子,介紹如何建立一個類,以及如何建立類的物件,構造方法,自己定義的方法。

設計模式之間關係

在設計模式中類與類之間的關係主要有6種:依賴、關聯、聚合、組合、繼承、實現,它們之間的耦合度依次增加。 一、繼承關係       繼承是一種“is-a”關係。 繼承指的是一個類(稱為子類

之間關係:依賴關係和關聯關係及繼承關係self是什麼? 裡面的特殊成員

類與類之間的關係   ⼤千世界, 萬物之間皆有規則和規律. 我們的類和物件是對⼤千世界中的所有事物進行歸類. 那事物之間存在著相對應的關係. 類與類之間也同樣如此. 在⾯向物件的世界中. 類與類中存在以下關係:  1. 依賴關係  2. 關聯關係  3. 組合關係  4. 聚合關係  5. 繼承關係  6.

UML之間關係及畫法

  類與類之間的關係通常有4種,即依賴關係(Dependency)、泛化關係(Generalization)、關聯關係(Association)、實現關係(Realization) 依賴關係(Depe

UML圖(Class Diagram)之間關係及表示方式

類之間大體分為5種關係:1,依賴關係(Dependency)單向,表示一個類依賴於另一個類的定義,其中一個類的變化將影響另外一個類,是一種“use a”關係如果A依賴於B,則B表現為A的區域性變數,方法引數,靜態方法呼叫等publicclass Person {      p

Java之間的5種關係及uml表示

一、繼承關係      繼承指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力。在Java中繼承關係通過關鍵字extends明確標識,在設計時一般沒有爭議性。在UML類圖設計中,繼承用一條帶空心三角箭頭的實線表示,

Java物件的關係區別

什麼是類?類就是具備某些共同特徵的實體的集合,它是一種抽象的資料型別,它是對所具有相同特徵實體的抽象。在面向物件的程式設計語言中,類是對一類“事物”的屬性與行為的抽象。什麼是物件?物件就是一個真實世界中的實體,物件與實體是一一對應關係的,意思就是現實世界的每一個實體都是一個物

UML圖(Class Diagram)之間關係及表示方式

類之間大體分為5種關係:1,依賴關係(Dependency)單向,表示一個類依賴於另一個類的定義,其中一個類的變化將影響另外一個類,是一種“use a”關係如果A依賴於B,則B表現為A的區域性變數,方法引數,靜態方法呼叫等public class Person { publ

UML之間的5種關係表示

一、繼承關係      繼承指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力。在Java中繼承關係通過關鍵字extends明確標識,在設計時一般沒有爭議性。在UML類圖設計中,繼承用一條帶空心三角箭頭的實線表示,從