一、實例變量定義
定義在類中,方法體之外的變量稱為實例變量。實例變量在對象創建時被創建,每個對象都有自己的一份實例變量的拷貝,對象的操作必須通過對象的方法來完成,因此定義在類內部的實例變量可以被類的方法操作。
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
微信掃一掃
支付寶掃一掃