Java學習——private實現封裝處理
阿新 • • 發佈:2018-12-16
Java封裝處理(private封裝)
所謂封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。簡而言之就是,內部操作對外部而言不可見(保護性) 。
封裝是面向物件裡最複雜的概念,使用private關鍵字實現的封裝處理只是封裝的第一步。
看一段程式碼,無封裝的程式
class Person{ public String name; public int age; public void printName(){ System.out.println(this.name); } } public class Test{ public static void main(String[] args) { Person person1 = new Person(); person1.name = "張三" ; person1.age = 20; person1.printName(); } }
在無封裝的程式中我們可以在主類中通過物件直接訪問到Person類中的屬性。此時,要回避此類問題,讓內部操作對外部不可見(物件不能直接操作屬性),可以使用private進行封裝。
將姓名、年齡許可權設定為private,即私有,訪問許可權僅限於類的內部。設定完以後我們無法通過物件直接訪問名字和年齡屬性了,這時我們需要留出一個訪問的介面,即set、get函式。
class Person{ private String name; private int age; public void printName(){ System.out.println(this.name); } public void setName(String name){ this.name = name; } public String getName(){ return this.name; } public void setAge(int age){ this.age = age; } public int getAge(){ return this.age; } } public class Test{ public static void main(String[] args) { Person person1 = new Person(); person1.setName("張三"); person1.setAge(20); System.out.println("姓名" + person1.getName()); System.out.println("年齡" + person1.getAge()); } }
其中set、get函式是public,在外部可以訪問,在外部我們可以通過這2種函式實現對屬性的訪問,但無法直接訪問到屬性值。在主類中我們通過setName、getName可以訪問到Person類的屬性。private實現封裝的最大特徵在於:只允許本類訪問,而不允許外部類訪問。
類的設計原則
1.類中的所有屬性必須使用private封裝。
2.屬性若要被外部訪問,必須定義setter、getter方法。