JAVA基礎之面向物件 (二)概念
阿新 • • 發佈:2018-12-16
1、成員變數和區域性變數的區別: 1)在類中的位置不同:成員變數(類中,方法外),區域性變數(方法中或者方法宣告上_形式引數) 2)記憶體中的位置不同:成員變數(堆記憶體),區域性變數(棧記憶體) 3)生命週期不同:成員變數(隨著物件的建立而存在,隨著物件的消失而消失),區域性變數(隨著方法的呼叫而存在,隨著方法的呼叫完畢而消失) 4)初始化值的問題:成員變數有預設值,而區域性變數沒有預設值,使用時必須先定義,賦值,最後使用
2、private關鍵字:許可權修飾符,可以修飾成員變數,也可以修飾成員方法,被private修飾的成員只能在本類中 1)首先,通過物件直接訪問成員變數,會存在資料安全問題 2)針對private修飾的成員變數,我們會相應的提供getXxx()和setXxx()用於獲取和設定成員變數的值,方法用public修飾 3)封裝:是面向物件程式語言對客觀世界是模擬,客觀世界裡成員變數都是隱藏在物件內部了,外界無法直接操作和修改。 優點:提高了資料的安全性,提高了程式碼的複用性
3、this關鍵字:將區域性變數的name賦值給成員變數的name 1)由於起名字要求做到見名之一,n,a不符合命名規則,所以需要改進 如果有區域性變數名和成員變數名相同,在區域性使用的時候採用的是就近的原則。 2) this:代表所在類的物件引用,代表的是一個物件。 方法被哪個物件呼叫,this就代表那個物件。 使用場景:區域性變數隱藏成員變數。
package HeMai; public class Student { private String name; private int age; public void setName(String name){ //name = name; this.name = name;//this.name指的是This概念下的name } public String getName(){ return name; } public void setAge(int age){ this.age = age; } public int getAge(){ return age; } }
ackage HeMai;
public class StudentMain {
public static void main(String[] args) {
Student s2 = new Student("Mary",38);
System.out.println(s2.getName()+","+s2.getAge());
}
}