关于包装java_[java初探09]__关于java的包装类
前言
在Java語(yǔ)言的學(xué)習(xí)過(guò)程中,我們逐漸的理解了Java面向?qū)ο蟮乃枷?與類和對(duì)象的應(yīng)用.但是在基本數(shù)據(jù)類型的使用上,我們無(wú)法將其定義為一個(gè)對(duì)象,通過(guò)使用對(duì)象的方法來(lái)使用它們,但是Java語(yǔ)言的思想又是面向?qū)ο蟮?那么在Java語(yǔ)言中,是否能夠解決這個(gè)問(wèn)題,使基本數(shù)據(jù)類型能夠以對(duì)象的形式使用呢.答案當(dāng)然是有的,本篇文章就基于這點(diǎn)介紹學(xué)習(xí)一下Java的包裝類.
什么是包裝類
包裝類就是為了使用戶能夠?qū)⒒緮?shù)據(jù)類型視作對(duì)象處理而對(duì)每個(gè)基本數(shù)據(jù)類型進(jìn)行重新包裝的類.我們可以通過(guò)這些類來(lái)new一個(gè)基本數(shù)據(jù)類型的對(duì)象.從而使基本數(shù)據(jù)類型也能夠視為對(duì)象來(lái)處理.
我們?cè)谇懊娴膶W(xué)習(xí)中了解到,Java語(yǔ)言其實(shí)就是基于一套Java的標(biāo)準(zhǔn)類庫(kù)的,我們編寫Java程序就是在其基礎(chǔ)上來(lái)編程的,我們也知道,一項(xiàng)問(wèn)題通過(guò)面向?qū)ο蟮乃枷虢鉀Q,就是要先將其抽象為對(duì)象,然后分析其屬性和行為,最后封裝成類,加入到類庫(kù)之中,然后通過(guò)用戶的調(diào)用,解決問(wèn)題.
所以在Java語(yǔ)言中,為了使各種基本數(shù)據(jù)類型能夠當(dāng)作對(duì)象來(lái)使用,它給我們提供了各基本數(shù)據(jù)類型的包裝類.
包裝類存放在Java類庫(kù)的java.lang包下:
、
關(guān)于java.lang包:
java.lang是提供利用 Java 編程語(yǔ)言進(jìn)行程序設(shè)計(jì)的基礎(chǔ)類。最重要的類是Object(它是類層次結(jié)構(gòu)的根)和 Class(它的實(shí)例表示正在運(yùn)行的應(yīng)用程序中的類)。把基本類型的值當(dāng)成一個(gè)對(duì)象來(lái)表示通常很有必要。包裝器類 Boolean、Character、Integer、Long、Float 和 Double 就是用于這個(gè)目的。
Integer類
我們知道,整數(shù)類型有byte,short,int,long四種.我們回顧一下,byte的大小是一個(gè)字節(jié)(即如其命名一般只有一byte大小),short則占兩個(gè)字節(jié)(byte)int占四個(gè)字節(jié)long占八個(gè)字節(jié),他們的內(nèi)存大小關(guān)系其實(shí)是一個(gè)以2為乘數(shù)為基礎(chǔ)遞增的關(guān)系.所以在JAVA語(yǔ)言中也有與其對(duì)應(yīng)的包裝類,這里就只挑其中最常使用到的int型的包裝類Integer類做說(shuō)明.
Integer類在對(duì)象中包裝了一個(gè)iint型的值,該類的對(duì)象包含一個(gè)int類型的字段.此外該類還提供了幾個(gè)方法,能夠使int型和String型相互轉(zhuǎn)換.同時(shí)還有提供了一些處理int類型時(shí)非常有用的常量和方法.
構(gòu)造方法
Integer類提供了兩種構(gòu)造對(duì)象的方法.
Interger(int number)
該方法以一個(gè)int型變量作為參數(shù)來(lái)獲取Interger對(duì)象.
Interger(String str)
該方法以一個(gè)String型變量作為參數(shù)創(chuàng)建Interger對(duì)象。
Integer integer = new Integer(123);
Integer integer1 = new Integer("23");
Integer類提供的一些常用方法:
toString()方法
compareTo()方法
eqalus()方法
floatvalue()方法
valueOf(String str)方法
paseInt(String str)方法
其中需要注意的是,在以String類型構(gòu)建對(duì)象的時(shí)候,參數(shù)不能以真正隨意的字符串來(lái)定義。而是以字符串的形式,將一段int型數(shù)據(jù)存放在String類型中,然后傳參使用構(gòu)造方法構(gòu)建對(duì)象。
compareTo方法是在數(shù)字上比較兩個(gè)Integer對(duì)象,如果他們相等,返回0;如果對(duì)象小于傳入的參數(shù)對(duì)象,則返回負(fù)值。反之返回正值。
equals方法比較兩個(gè)對(duì)象是否相等。返回的是boolean型數(shù)據(jù)。
其他的幾個(gè)方法則是類型轉(zhuǎn)換,講對(duì)象的類型轉(zhuǎn)換以其他幾種基本數(shù)據(jù)類型輸出。
valueOf(String str)方法與paseInt(String str)方法的區(qū)別就是前者返回的是一個(gè)Integer對(duì)象,可以調(diào)用其方法,后者返回的是一個(gè)整數(shù)值.
// 將一個(gè)String值的數(shù)據(jù)以Integer對(duì)象返回.
System.out.println(Integer.valueOf(str).toString());
// 將一個(gè)String字符串中的數(shù)字以等價(jià)的int整數(shù)值返回.
System.out.println(Integer.parseInt(str));
關(guān)于整數(shù)類型的其他幾種類型的包裝類于Integer類是類似的。
Boolean類
我們可以發(fā)現(xiàn),Boolean類中的方法要少的多.
構(gòu)造方法
Boolean(boolean)
Boolean(String)
Boolean aBoolean = new Boolean(12<11);
Boolean aBoolean1 = new Boolean("flase");
常用方法
常用方法其實(shí)和Integer類似.
System.out.println(aBoolean.toString());
//將對(duì)象的值以對(duì)應(yīng)的boolean值返回
System.out.println(aBoolean.booleanValue());
//valueOf方法
System.out.println(Boolean.valueOf(str));
//paresBoolean方法
System.out.println(Boolean.parseBoolean(str));
// equals方法
System.out.println(aBoolean.equals(aBoolean1));
其中valueOf方法與paresBoolean方法的區(qū)別也是前者返回的是一個(gè)對(duì)象,后者返回的是一個(gè)boolean值.
character類
character類其實(shí)就是char類型的包裝類.
可以看到character類中的方法體眾多,這可能也更c(diǎn)har型是我們經(jīng)常使用到的數(shù)據(jù)類型,并且關(guān)于它的操作也非常多的原因.
構(gòu)造方法
Character character = new Character('a');
Character類的常用方法
charvalue()方法
compareTo()方法
equals()方法
toUpperCase(char ch)方法,將字符轉(zhuǎn)換為大寫
toLowerCase(char ch)方法.將字符轉(zhuǎn)換為小寫
toString()方法
isUpperCase(char ch)方法,判斷是否為大寫,返回值為boolean型
isLowerCase(char ch)方法,判斷是否為小寫,返回值為boolean型
// 將對(duì)象以char型值返回
System.out.println(character.charValue());
//以數(shù)字比較兩個(gè)對(duì)象
System.out.println(character.compareTo(character1));
//equals方法比較兩個(gè)對(duì)象
System.out.println(character.equals(character1));
//大小寫轉(zhuǎn)換
System.out.println(Character.toLowerCase(character));
System.out.println(Character.toUpperCase(character1));
//判斷大小寫
System.out.println(Character.isLowerCase(character));
System.out.println(Character.isUpperCase(character1));
}
Double類
Float類與Double類類似,double與float都是浮點(diǎn)類型,大小分別是float的四字節(jié),double的八字節(jié).這里就只簡(jiǎn)單看看Double類.
可以看到Double的構(gòu)造方法也是兩種,一種參數(shù)為double型,一種為String型,其實(shí)幾個(gè)基本數(shù)據(jù)類型的包裝類都很類似,畢竟他們都是為了實(shí)現(xiàn)相似的功能,將基本數(shù)據(jù)類型當(dāng)做對(duì)象來(lái)使用.
構(gòu)造方法
Double aDouble = new Double(12.345d);
Double aDouble1 = new Double("234.3456");
常用方法
常用方法大多和上面了解過(guò)的其他包裝類的方法類似,這里就不在介紹了.
isNaN()方法,如果此double值是非數(shù)字值返回flase
//常用方法
System.out.println(aDouble1.isNaN());
System.out.println(aDouble.equals(aDouble1));
System.out.println(aDouble.compareTo(aDouble1));
System.out.println(aDouble.floatValue());
Double.valueOf(aDouble);
Double.parseDouble(str);
Number類
Number類是一個(gè)抽象類,它是BigDecimal,BigInteger,Byte,Double,Float,Integer,Long和short這一系列表示數(shù)字類型的包裝類的父類.Number的子類必須提供將表示的數(shù)值轉(zhuǎn)換為byte,double等基本數(shù)據(jù)類型(非字符及字符串類型)的方法.
這些發(fā)方法就是:
Number類的方法分別被Number各子類所實(shí)現(xiàn),也就是說(shuō),在Number類的所有方法中都包含以上幾種方法.(這其實(shí)就是面向?qū)ο蟮亩鄳B(tài)性的一種體現(xiàn))
源代碼
package day_4_8;
/**
* @outhor xiaoshe
* @date 2019/4/8 - @time 22:26
* 包裝類
*/
public class sty_packgingclass {
public static void main(String[] args) {
sty_packgingclass packgingclass = new sty_packgingclass();
packgingclass.packgingInt();
packgingclass.packgingBoolean();
packgingclass.packgingCharacter();
packgingclass.packgingdouble();
}
/**
* int型的包裝類Integer。
*/
public void packgingInt(){
String str = "122";
// 通過(guò)int型參數(shù)構(gòu)建Integer對(duì)象
Integer integer = new Integer(234);
// 通過(guò)String型參數(shù)構(gòu)建Integer對(duì)象
Integer integer1 = new Integer("234");
//直接以對(duì)象輸出
System.out.println(integer);
System.out.println(integer1);
// 以將對(duì)象以其他類型輸出
System.out.println(integer.byteValue());
System.out.println(integer.floatValue());
// Integer類提供的幾個(gè)常用的方法
// 通過(guò)toString方法講對(duì)象以字符串形式輸出。
System.out.println(integer.toString());
// compareTO方法和equals方法比較兩個(gè)Integer的值。
System.out.println(integer.equals(integer1));
System.out.println(integer.compareTo(integer1));
// 將一個(gè)String值的數(shù)據(jù)以Integer對(duì)象返回.
System.out.println(Integer.valueOf(str).toString());
// 將一個(gè)String字符串中的數(shù)字以等價(jià)的int整數(shù)值返回.
System.out.println(Integer.parseInt(str));
}
/**
* Boolean類
*/
public void packgingBoolean(){
String str ="flase";
Boolean aBoolean = new Boolean(12<11);
Boolean aBoolean1 = new Boolean("flase");
System.out.println(aBoolean1);
System.out.println(aBoolean.toString());
//將對(duì)象的值以對(duì)應(yīng)的boolean值返回
System.out.println(aBoolean.booleanValue());
//valueOf方法
System.out.println(Boolean.valueOf(str));
//paresBoolean方法
System.out.println(Boolean.parseBoolean(str));
// equals方法
System.out.println(aBoolean.equals(aBoolean1));
}
/**
* character類
*/
public void packgingCharacter(){
//構(gòu)造方法實(shí)例化對(duì)象
Character character = new Character('A');
Character character1 = new Character('b');
// 將對(duì)象以char型值返回
System.out.println(character.charValue());
//以數(shù)字比較兩個(gè)對(duì)象
System.out.println(character.compareTo(character1));
//equals方法比較兩個(gè)對(duì)象
System.out.println(character.equals(character1));
//大小寫轉(zhuǎn)換
System.out.println(Character.toLowerCase(character));
System.out.println(Character.toUpperCase(character1));
//判斷大小寫
System.out.println(Character.isLowerCase(character));
System.out.println(Character.isUpperCase(character1));
}
/**
* Double類
*/
public void packgingdouble(){
String str = "123.456d";
Double aDouble = new Double(12.345d);
Double aDouble1 = new Double("234.3456");
//常用方法
System.out.println(aDouble1.isNaN());
System.out.println(aDouble.equals(aDouble1));
System.out.println(aDouble.compareTo(aDouble1));
System.out.println(aDouble.floatValue());
Double.valueOf(aDouble);
Double.parseDouble(str);
}
}
更新時(shí)間:
2019-4-9
2:08
總結(jié)
以上是生活随笔為你收集整理的关于包装java_[java初探09]__关于java的包装类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql 冷热表_Redis+MySQ
- 下一篇: 能跑java的服务器_一台java服务器