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