W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
以下是創(chuàng)建類的實例的一般語法:
new <Class Constructor>;
new
運算符后面是對構造函數的調用。
new
運算符通過分配堆上的內存來創(chuàng)建類的實例。以下語句創(chuàng)建Dog類的實例:
new Dog();
Dog()是對Dog類的構造函數的調用。
當我們不向類添加構造函數時,Java編譯器為我們添加一個。
Java編譯器添加的構造函數稱為默認構造函數。默認構造函數不接受參數。
類的構造函數的名稱與類名稱相同。
new運算符為類的每個實例字段分配內存。類靜態(tài)變量在創(chuàng)建類的實例時不會分配內存。
要訪問類的實例的實例變量,我們必須有它的引用。
類的名稱在Java中定義了一個新的引用類型。特定引用類型的變量可以存儲相同引用類型的實例的引用。
聲明一個引用變量,它將存儲Dog類的實例的引用。
Dog anInstance;
Dog是類名,它也是一個引用類型,并且 anInstance
是該類型的變量。
anInstance是Dog類型的引用變量。anInstance變量可用于存儲Dog類的實例的引用。
new運算符為類的新實例分配內存,并返回對該實例的引用。
我們需要將由新運算符返回的引用存儲在引用變量中。
anInstance = new Dog();
我們可以為任何引用類型的變量分配一個空值??罩狄馕吨米兞渴侵笡]有對象。
Dog obj = null; // obj is not referring to any object obj = new Dog(); // Now, obj is referring to a valid Dog object
您可以使用一個空文字與比較運算符來檢查是否相等和不等。
if (obj == null) { //obj is null } if (obj != null) { //obj is not null }
Java不會混合引用類型和原始類型。我們不能給一個原始類型變量賦null。
點符號用于引用實例變量。
點符號語法的一般形式是
<Reference Variable Name>.<Instance Variable Name>
obj.name引用obj引用變量引用的實例的名稱實例變量。
要為名稱實例變量分配值,請使用
obj.name = "Rectangle";
以下語句將name實例變量的值分配給String變量aName:
String aName = obj.name;
要引用類變量,請使用類的名稱。
ClassName.ClassVariableName
例如,我們可以使用Dog.count來引用Dog類的計數類變量。
向計數類變量分配新值
Dog.count = 1;
要將count類變量的值讀取到變量中
long count = Dog.count;
以下代碼顯示如何使用類字段
class Dog { static int count = 0; String name; String gender; } public class Main { public static void main(String[] args) { Dog obj = new Dog(); // Increase count by one Dog.count++; obj.name = "Java"; obj.gender = "Male"; obj.name = "XML"; String changedName = obj.name; } }
類的所有字段(靜態(tài)以及非靜態(tài))都將初始化為默認值。
字段的默認值取決于其數據類型。
數字字段(字節(jié),短,char,int,long,float和double)初始化為零。布爾字段初始化為false。引用類型字段初始化為null。
下面的代碼演示了字段的默認初始化。
public class Main { byte b; short s; int i; long l; float f; double d; boolean bool; String str; public static void main(String[] args) { Main obj = new Main(); System.out.println("byte is initialized to " + obj.l); System.out.println("short is initialized to " + obj.s); System.out.println("int is initialized to " + obj.i); System.out.println("long is initialized to " + obj.l); System.out.println("float is initialized to " + obj.f); System.out.println("double is initialized to " + obj.d); System.out.println("boolean is initialized to " + obj.bool); System.out.println("String is initialized to " + obj.str); } }
上面的代碼生成以下結果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: