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 方法。