java的封裝類
⑴ java中的封裝類
1.基本類型只能按值傳遞,而每個基本類型對應的封裝類是按引用傳遞的。
2.從性能上說java中的基本類型是在堆棧上創建的,而所有的對象類型都是在堆上創建的,(對象的引用在堆棧上創建)。比如
Integer i=new Integer(10); 其中new Integer()是在堆上創建的,而他的引用Integer i是在堆棧上。 封裝類的出現,是為了更方便的使用一些基本類型不具備的方法,比如valueOf(),toString()等等。還有你如果想傳遞一個int對象的引用,而不是值,那隻能用封裝類。
在堆棧上分配內存的調用效率和在堆上分配內存的效率差太多了。雖然在堆棧上分配內存效率高,不過在堆棧上分配內存有內存泄露的問題。(這是一個平庸程序員基本解決不了的問題...)java用了一種很天才的方法提高了在堆上分配內存的效率,盡管如此,java還是慢。他不太可能達到向c++那麼快,盡管他一直在承諾總有一天虛擬機會和機器碼速度一樣快。
JDK5.0開始可以自動封包了 ,也就是基本數據可以自動封裝成封裝類,基本數據類型的好處就是速度快(不涉及到對象的構造和回收),封裝類的目的主要是更好的處理數據之間的轉換,方法很多,用起來也方便。
當然,封裝類型的傳遞是引用傳遞,比如
Integer a = new Integer(1);
表示一個Integer類型的引用a引用了一塊內存,這塊內存中的數據是1; 而a中所存的則是這塊內存的引用(地址),把a傳給別的方法或對象時,則是把a的引用傳遞過去了。
類型之間的轉換:
String b = "123456";
int c = Integer.parseInt(b);
表示把字元串123456轉成整型數字,其中parseInt是靜態方法,可以直接使用
還有一點,在某些場合,需要用到封裝類,比如一個集合List,它只能往裡面添加對象,也就是Object,那麼直接存數字肯定是不行 的,則需要將數字封裝成封裝類型對象再存到該List中,如
List list = new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(3));
list.add(new Integer(4));
JDK5.0以後可以自動封包,所以可以簡寫成
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
⑵ java封裝類
equals是給你用的比較對象內容是否相等,你覆寫就可以自己定義相等的標准
hashcode一般系統自己用,比如hashmap里的鍵值就是按照對象hashcode方法計算
compare 用於對象之間比較大小, 可以自定義比較的標准
⑶ 什麼是封裝Java語言中的封裝類有哪些
封裝普通來說是為了方便。
技術層面來說。 就是封裝了一個對象。
你封裝的這個對象。使用者不需要去了解你這個對象。
直接使用你的其中一個功能。
比如API 都是封裝好的。 常見的封裝類 比如Integer String之類的。 他們都可以自動轉型
⑷ JAVA中什麼是封裝類,如何使用
java中的封裝類是基本類型的封裝成對象。
使用方法:
package wrapper;
public class IntegerTest1 {
public static void main(String[] args)
{
Integer i=new Integer(123);
byte b=i.byteValue();
double d=i.doubleValue();
System.out.println("將Integer封裝類轉換為 byte值為:"+b);
System.out.println("將Integer封裝類轉換為 double值為:"+d);
String s1=Integer.toBinaryString(i);
String s2=Integer.toOctalString(i);
String s3=Integer.toHexString(i);
System.out.println("轉換為二進制的值為:"+s1);
System.out.println("轉換為八進制的值為:"+s2);
System.out.println("轉換為十六進制的值為:"+s3);
}
}
⑸ 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,保護,和默認級別。其中最常用的是public和private級別。java類封裝,就是通過級別來控制的。private級別時,只可以類內部訪問。public級別可讓其他人使用。所以封住java類時,只要把你想封裝的類資源寫成private級別,再在類內部給它提供一個可被他人調用的public方法,這樣,就實現了封裝。大概就是這樣吧
⑺ JAVA類的封裝是什麼意思
JAVA類的封裝就是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。
主要好處是:
將變化隔離。
便於使用
提高重要性。
提高安全性。
⑻ 關於java類的封裝
classPerson{
privateintage;
publicvoidsetAge(inti){
if(i<0||i>120){
return;
}
age=i;
}
publicintgetAge(){
returnage;
}
}
publicclassTest{
publicstaticvoidmain(String[]args){
Personp1=newPerson();
p1.setAge(30);
System.out.println(p1.getAge());
p1.setAge(-30);
System.out.println(p1.getAge());
}
}
⑼ java一個類封裝好了是什麼意思
封裝就是把客觀的事物包裝成抽象的類,將自己的屬性方法對可信的類操作,不可信的類隱藏。
如何理解呢,類只是一個抽象的模板,類實例化出一個對象,對象就是一個客觀的事物,舉個例子 人,這是個抽象的東西,人具有的屬性:性別,皮膚顏色等 、行為:吃飯,睡覺等,將其封裝起來成為才是一個人的類。這些屬性,行為,這些行為,屬性,只屬於人這個類,以及這個類創建的對象,別的類是無法改變,使用的,這也就是對不可信的類隱藏,根據每個屬性的開放級別來看其他類是否可以使用或者改變,比如修飾符,舉個例子,一個人生下個兒子,他繼承了父親某種屬性,某種行為。
⑽ 什麼是Java的封裝類
封裝類就是人家已經寫好實現,你只要負責調用就可以
比如排序就可以直接調用Collections.sort(Collection
coll)方法,沒必要再自己寫