一、實例變量定義
定義在類中,方法體之外的變量稱為實例變量。實例變量在對象創建時被創建,每個對象都有自己的一份實例變量的拷貝,對象的操作必須通過對象的方法來完成,因此定義在類內部的實例變量可以被類的方法操作。
public class Person { String name; // 實例變量 int age; // 實例變量 }
在上面的代碼中,name和age都是Person類的實例變量。
二、實例變量訪問
實例變量可以通過”對象名.變量名”的方式進行訪問.
public class TestPerson { public static void main(String[] args) { Person p1 = new Person(); p1.name = "張三"; p1.age = 20; System.out.println("姓名:" + p1.name + ",年齡:" + p1.age); } }
在上面的代碼中,通過p1.name和p1.age訪問了實例變量。
三、實例變量的默認值
如果實例變量沒有初始化,那麼會自動被賦予一個默認值。
數據類型 | 默認值 |
---|---|
整型(byte、short、int、long) | 0 |
浮點型(float、double) | 0.0 |
布爾型(boolean) | false |
字符型(char) | ‘\u0000’ |
引用數據類型(類、數組、接口) | null |
public class Person { String name; // 默認為null int age; // 默認為0 float score; // 默認為0.0 boolean isMale; // 默認為false char gender; // 默認為'\u0000' }
四、實例變量與靜態變量的區別
實例變量是每個對象都有自己的一份拷貝,可以通過對象名進行訪問,也可以通過對象的構造方法進行初始化。而靜態變量屬於類,不屬於任何一個對象,不需要創建對象就可以訪問,並且只有一份拷貝,可以通過類名訪問。
public class Person { String name; // 實例變量 static String school; // 靜態變量 public Person(String name) { this.name = name; } } public class TestPerson { public static void main(String[] args) { Person p1 = new Person("張三"); p1.school = "清華大學"; Person p2 = new Person("李四"); System.out.println("姓名:" + p1.name + ",學校:" + p1.school); System.out.println("姓名:" + p2.name + ",學校:" + p2.school); } }
在上面的代碼中,雖然p1和p2屬於不同的對象,但是它們訪問的是同一份靜態變量school,因此輸出的學校都是清華大學。
五、實例變量的封裝
為了保證實例變量的安全性和正常操作,我們需要採用封裝的方式隱藏實例變量。
public class Person { private String name; // 使用private修飾,限制訪問 private int age; // 使用private修飾,限制訪問 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class TestPerson { public static void main(String[] args) { Person p1 = new Person(); p1.setName("張三"); p1.setAge(20); System.out.println("姓名:" + p1.getName() + ",年齡:" + p1.getAge()); } }
在上面的代碼中,將Person類的name和age變成私有的,通過getName和setName方法進行訪問,將age變量也進行私有化,通過getAge和setAge方法進行訪問。這樣就可以保證實例變量的安全性。
六、小結
實例變量是定義在類中,方法體之外的變量。在對象創建時被創建,每個對象都有自己的一份實例變量的拷貝。實例變量可以通過對象名進行訪問,也可以通過對象的構造方法進行初始化。實例變量如果沒有初始化,會自動被賦予一個默認值。好處是可以被類的方法操作。和靜態變量的區別在於,實例變量是屬於對象的,而靜態變量屬於類,不屬於任何一個對象。為了保證實例變量的安全性,我們需要採用封裝的方式隱藏實例變量。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/231952.html