-
1 # 翻山閱
-
2 # 至少我曾努力過
封裝,即隱藏物件的屬性和實現細節,僅對外公開介面,控制在程式中屬性的讀和修改的訪問級別;將抽象得到的資料和行為(或功能)相結合,形成一個有機的整體,也就是將資料與操作資料的原始碼進行有機的結合,形成“類”,其中資料和函式都是類的成員。
1、封裝的作用
面向物件的封裝性的主要作用是解決程式的可擴充套件性。可以在不影響其他部分的情況下修改或者被封裝的部分達到對整個程式的擴充套件。
2、怎麼樣去封裝
一般使用類進行封裝,在類中將屬性用private修飾,使這些屬性對其他類不可見。例:
class Person{
private String name;
private int age;
public void tell(){
System.out.println("姓名:"+name+" 年齡:"+age);
}
}
這些屬性在類內部被訪問時,需要使用this關鍵字。對屬性進行封裝後,其他類就無法訪問這些屬性。所以需要實現該屬性的get和set方法,使得它們能被外部訪問。
public void setName(String name){
this.name = name; //使用this關鍵字進行訪問
}
public String getName(){
return name;
}
那麼這種set/get方法是不是破壞了封裝性呢?
不是。set/get方法是封裝性的一種體現。將屬性私有化,提供公有方法來訪問和設定屬性,並且可以在get和set方法中設定條件來達到控制屬性的目的,防止屬性被賦予一些非法值。
在設定了set/get方法後,類中的方法也要透過呼叫set/get方法來設定/得到屬性值。
public void tell(){
System.out.println("姓名:"+getName()+“年齡:”+getAge());
}
回覆列表
封裝 舉個不恰當的例子 ,假設電器的線很長,如果你每加一個電器就要去弄一個插座,電器多了,就會用很多插座,如果你把插座封裝成插排,那麼可能就需要一個插排就夠了,這個插排就是插座的封裝,程式碼也是同樣的道理,很多地方需要相同的資料,或者演算法,如果用一次就重寫一次,會造成程式碼的冗餘,而且不利於後期的維護,所以可以封裝成一個類或者方法,哪用到就呼叫一次,後期維護也方便