㈠ 在java中什麼是封裝,舉一個例子說明一下
類的封裝性即不能讓外面的類隨意修改一個類的成員變數;
在定義一個類的成員,使用private關鍵字說明這個成員的訪問許可權,只能被這個類的其他成員方法調用,而不能被其他的類中的方法所調用;
為實現封裝性,常將類的成員變數聲明為private,再通過public的方法來對這個變數進行訪問。對一個變數的操作,一般都有 讀取和賦值操作,我們一般定義兩個方法來實現這兩種操作,即:getxxx()與setxxx();
一個類就是一個模塊,我們應該讓模塊僅僅公開必須要讓外界知道的內容,而隱藏其他的一切內容。再進行程序設計時,應盡量避免一個模塊直接修改或操作另一個模塊的數據,模塊設計追求強內聚,弱耦合。
㈡ Java的封裝有哪些
JAVA中常用的封裝方式有以下幾種:
1 、Boolean VS boolean
public final class Boolean extends Object implementsSerializable,Comparable
Boolean 類將基本類型為boolean的值包裝在一個對象中。一個Boolean類型的對象只包含一個類型為boolean的欄位。此外,此類還為boolean和String的相互轉換提供了許多方法,並提供了處理 boolean時非常有用的其他一些常量和方法。
2、 Byte VS byte
public final class Byte extends Number implements Comparable
Byte類將基本類型 byte的值包裝在一個對象中。一個Byte類型的對象只包含一個類型為 byte的欄位。此外,該類還為 byte和 String的相互轉換提供了幾種方法,並提供了處理 byte時非常有用的其他一些常量和方法。
3、 Character VS char
public final class Character extends Object implements Serializable, Comparable Character類在對象中包裝一個基本類型char的值。 Character類型的對象包含類型為char的單個欄位。此外,該類提供了幾種方法,以確定字元的類別(小寫字母,數字,等等),並將字元從大寫轉換成小寫,反之亦然。
4 、Double VS double
public final class Double extends Number implements Comparable Double類在對象中包裝了一個基本類型double的值。每個Double類型的對象都包含一個double類型的欄位。此外,該類還提供了多個方法,可以將double轉換為String,將String轉換為double,還提供了其他一些處理double時有用的常量和方法。
㈢ 在Java面向對象的編程當中的為什麼要封裝什麼叫封裝
java面向對象編程中所謂封裝,就是通過定義類並且給類的屬性和方法加上訪問控制來抽象事物的本質特性。
封裝就是定義一個類,然後給該類的屬性(成員變數)和方法加上訪問控制修飾詞(public,private, protected,默認包訪問許可權),使得該類的屬性和方法對於類外部來說,想可見的可見,不想可見的隱藏。就是把數據和行為結合在一起在一個包中,並對對象使用者隱藏數據的實現過程。Java用3個關鍵字來設置邊界,從而進行對數據的隱藏。Public(共有)的定義任何人都可使用.private(私有)意味著除你自己,類型創建者及那個類型的內部函數成員可以訪問外其他任何人使用都會產生錯誤。Friendly(友好)
意味在包(package)中是可以訪問的.
㈣ java封裝屬性 數組
這段代碼也是醉了,你存入list應該是一個對象Person,
而你給一組數組賦值我也是沒搞懂你的意思,
你這樣寫代碼能存入list集合的只是一個Person對象,而你給對象欄位賦值的語句就只有p.name = s.next();p.pingjun = (rr / (a.length - 1)) + "";,只有2個屬性付了值,其他的沒有賦值是null;
一個構造器給Person的數組賦值?一個長度20的字元空數組,然後你給w數組賦值,那麼你這樣子賦值你以為可以影響到Person的值?w[i] = u + "";這句代碼,與Person對象沒半毛錢關系,對象引用都沒有怎麼賦值,
你最後列印的是Person對象的欄位,而你存入一個空數組,然後把string類型欄位的原始屬性給一個數組,Person(String r[]) {
r[1] = this.yuwen;
r[2] = this.shuxve;
r[3] = this.wuli;
r[4] = this.waiyu;
r[5] = this.huaxve;
}
這有啥用,我很好奇你這個r數組也不是類中的欄位,你給他付了null的值,你給他傳入的是長度20的數組,後面還有15個長度呢,不管這個,關鍵是這個數組啥用也沒有除了浪費內存
下面這段代碼中list.add(p);,你把Person 對象存入list,此時的Person 對象被賦值的就只有2個欄位,你給w,r數組的值無法影響到Person 對象,且這個方法執行完畢後,也會被清理掉因為沒有被引用到
這個時候可以回答你的問題了,為什麼你輸入的分數顯示都是null:
因為他都沒被賦值到Person 的成員變數上面,沒被賦值的成員變數的String值是null,容易你列印Person 未被賦值的成員變數的值,就是null;
String r[] = new String[a.length - 2];
String w[] = new String[20];
int rr = 0;
Person p = new Person(w);
p.name = s.next();
for (int i = 1; i < a.length - 1; i++) {
int u = s.nextInt();
w[i] = u + "";
r[i - 1] = u + "";
rr += u;
}
p.pingjun = (rr / (a.length - 1)) + "";
list.add(p);
㈤ Java中類的封裝是如何實現的
java類中,是分四種級別的:public,private,保護,和默認級別。其中最常用的是public和private級別。java類封裝,就是通過級別來控制的。private級別時,只可以類內部訪問。public級別可讓其他人使用。所以封住java類時,只要把你想封裝的類資源寫成private級別,再在類內部給它提供一個可被他人調用的public方法,這樣,就實現了封裝。大概就是這樣吧