1. 程式人生 > >JAVA基礎之面向物件   (二)概念

JAVA基礎之面向物件   (二)概念

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());	
	}
}