1. 程式人生 > >JAVA基礎(45)---區域性變數和成員變數的區別及封裝

JAVA基礎(45)---區域性變數和成員變數的區別及封裝

成員變數和區域性變數的區別

                               1、在類中的位置不同

                                                  成員變數:類中方法外                                                   區域性變數:方法內或者方法宣告上                                2、在記憶體中的位置不同                                                   成員變數:堆記憶體                                                   區域性變數:棧記憶體                                3、生命週期不同                                                   成員變數:隨著物件的存在而存在,隨著物件的消失而消失                                                   區域性變數:隨著方法的呼叫而存在,隨著方法的呼叫完畢而消失                               4、初始化值不同                                                   成員變數:有預設的初始化值                                                   區域性變數:沒有預設的初始化值,必須先定義,賦值,才能使用

面向物件有三大特徵:封裝  繼承  多型

封裝:對外部隱藏實現細節,公開訪問方法;

屬性的封裝:private(私有的)

使用 private 修飾的屬性和方法只能在該類的內部訪問,在該類以外的其他地方,不允許訪問  

public class WorkText{
    Work work = new Work();
    work.name = "張三";
    System.out.println(work.name);
    System.out.println(work.salary);

}

class Work{
    private String name;
    private int salsry;
}

這段程式碼對Work屬性進行了封裝,所以WorkText訪問不到,會報錯。

public class WorkerTest
{
	public static void main(String[] args){
		Worker worker = new Worker();
		worker.setName("張三");
		worker.setSalary(10000);
		System.out.println(worker.getName());
		System.out.println(worker.getSalary());
	
	}
}
class Worker{
	private String name;
	private int salary;
	public String getName(){
		return name;
	}
	public double getSalary(){
		return salary*0.8;
	}
	
	public void setName(String wname){
	
		name = wname;
	}
	public void setSalary(int wsalary){
	
		salary = wsalary;
	}
}

這段程式碼可以執行,如果想要獲取到類裡面封裝的屬性的值,需要構造一個 get 方法;如果想要給類裡封裝的屬性賦值,需要構造一個 set 方法。