java物件屬性和方法的引用

2021-07-10 19:28:11 字數 1543 閱讀 9089

物件方法的引用通過物件名.方法名引用。如有以下方法:

public void work(){}

public void work(int h){}

物件名是work,那麼物件方法的引用就是work.work(10);

此外,物件方法引用為最後一層,不允許引用物件方法內的組成部分。方法內部定義的變數屬於區域性變數。

物件屬性的引用通過物件名.屬性名引用。如有如下屬性:

string name;

int age;

double salary;

物件名work,那麼物件屬性的引用就是work.name。但是物件屬性可能是另乙個物件,此時我們需要訪問另乙個物件下的某乙個屬性,那麼引用就是物件名.屬性名.屬性名……。如下**:

address addr;

class address

假設addr是work的乙個屬性,此時我們需要引用address這個屬性,那麼引用方法就是work.addr.address。

現在我們定義了以下兩個類;

class worker

public void work(int h){}

public worker(){}

public worker(string s, int i, double d)

}class address

public address(string s, int i)}

現在我們需要建立乙個

worker

物件,物件名為work。那麼我們現在如何對addr進行賦值呢?

無論是方法還是函式都是可以帶引數的,那麼這裡就有乙個問題——引數型別。我們知道類也是一種型別,因此在傳遞引數的時候就可以分為兩類——傳值和傳址。8種基本資料型別都是傳值,類就是傳址。

因此對addr賦值時,

可以在構造方法中傳址賦值。構造方法可以改寫為

public worker(string s, int i, double d,address a)。

但同時需

要注意的是,在傳遞引數的時候,引數必須是已知的,具有明確的儲存空間和數值。就是說傳遞物件位址時,物件必須要被準確地建立。因此在建立work時,要對work.

addr賦值,需要先建立乙個address的物件,我們假設物件名是dress。則傳遞的引數形式應該為public worker("das",3, 3.4,dress).

也可以直接對屬性賦值,即

work.addr = dress;

現在我們已經建立了兩個物件了:dress,work;現在我們需要訪問address屬性,這裡有兩種方法:

1、dress.address

2、work.addr.address

但是我們不能這樣引用:work.dress.address或者work.address,這樣的引用方法會編譯報錯。這裡dress,work都是物件,我們不能引用物件中的物件,只能引用物件中的屬性和方法。

因此我們得到乙個物件引用的規則:物件只能直接引用他的直接組成部分——屬性和方法。

方法內部的組成部分不允許被引用,不

能直接引用屬性內部的組成部分。物件不允許引用物件。

Java 物件和物件引用

為了接下來進行更好的分析,我先建立乙個demo類,用於後面的分析。public class demo 接下來,我們用demo類來建立乙個物件。demo demo newdemo 這一條語句,其實包括了四個動作 1 右邊的 new demo 是以demo類為模板,在堆空間裡建立乙個demo物件。2 末...

JAVA物件引用

等於運算子可以使用任意類到的運算元。基本資料型別的值可以比較。如果運算元同是 其它的物件型別 比如使用者建立的類 那麼計算結果取決於運算元是否引用相同的物件。考 慮 下下面的例子 string1 string2 在這個例子中,string1和string2必須引用同乙個字串而不是兩個不同的字串,即使...

Java自學 類和物件 引用

引用的概念,如果乙個變數的型別是 類型別,而非基本型別,那麼該變數又叫做引用。步驟 1 引用和指向 new hero 代表建立了乙個hero物件 但是也僅僅是建立了乙個物件,沒有辦法訪問它 為了訪問這個物件,會使用引用來代表這個物件 hero h new hero h這個變數是hero型別,又叫做引...