第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Java 包裝類

本小節(jié)我們將學(xué)習(xí) Java 的包裝類,我們將了解到什么是包裝類為什么需要包裝類,Java 提供的包裝類有哪些,各種包裝類的常用方法和常量介紹,什么是裝箱操作以及什么是拆箱操作等內(nèi)容。

1. 什么是包裝類

Java 有 8 種基本數(shù)據(jù)類型,Java 中的每個基本類型都被包裝成了一個類,這些類被稱為包裝類。

包裝類可以分為 3 類:NumberCharacter、Boolean,包裝類的架構(gòu)圖如下所示:

2. 為什么需要包裝類

我們知道 Java 是面向?qū)ο蟮木幊陶Z言,但為了便于開發(fā)者上手,Java 沿用了 C 語言的基本數(shù)據(jù)類型,因此 Java 數(shù)據(jù)類型被分為了基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。

對于簡單的運(yùn)算,開發(fā)者可以直接使用基本數(shù)據(jù)類型。但對于需要對象化交互的場景(例如將基本數(shù)據(jù)類型存入集合中),就需要將基本數(shù)據(jù)類型封裝成 Java 對象,這是因?yàn)榛緮?shù)據(jù)類型不具備對象的一些特征,沒有對象的屬性和方法,也不能使用面向?qū)ο蟮木幊趟枷雭斫M織代碼。出于這個原因,包裝類就產(chǎn)生了。

包裝類就是一個類,因此它有屬性、方法,可以對象化交互。

3. 基本數(shù)據(jù)類型與包裝類

下表列出了基本數(shù)據(jù)類型對應(yīng)的包裝類。這些包裝類都位于 java.lang 包下,因此使用包裝類時,我們不需要手動引入。

基本數(shù)據(jù)類型 對應(yīng)的包裝類
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

除了 int 對應(yīng)的包裝類名稱為 Integer 以及 char 對應(yīng)的包裝類名稱 Character,其他 6 種數(shù)據(jù)類型對應(yīng)的包裝類,命名都為其基本數(shù)據(jù)類型的首字母的大寫。

4. 包裝類常用方法

4.1 Number 類

Number 類是所有數(shù)值類型包裝類的父類,這里以其中一個子類 Integer 類為例,介紹其構(gòu)造方法、常用方法以及常量。

4.1.1 構(gòu)造方法

Integer 類提供兩個構(gòu)造方法:

  1. Integer(int value):以 int 型變量作為參數(shù)創(chuàng)建 Integer 對象;
  2. Integer(String s):以 String 型變量作為參數(shù)創(chuàng)建 Integer 對象。

實(shí)例如下:

// 以 int 型變量作為參數(shù)創(chuàng)建 Integer 對象
Integer num = new Integer(3);
// 以 String 型變量作為參數(shù)創(chuàng)建 Integer 對象
Integer num = new Integer("8");

4.1.2 常用方法

  • byte byteValue():以 byte 類型返回該 Integer 的值;
  • int compareTo(Integer anotherInteger):在數(shù)值上比較兩個 Integer 對象。如果這兩個值相等,則返回 0;如果調(diào)用對象的數(shù)值小于 anotherInteger 的數(shù)值,則返回負(fù)值;如果調(diào)用對象的數(shù)值大于 anotherInteger 的數(shù)值,則返回正值;
  • boolean equals(Object obj):比較此對象與指定對象是否相等;
  • int intValue():以 int 類型返回此 Integer 對象;
  • int shortValue():以 short 類型返回此 Integer 對象;
  • toString():返回一個表示該 Integer 值的 String 對象;
  • static Integer valueOf(String str):返回保存指定的 String 值的 Integer 對 象;
  • int parseInt(String str):返回包含在由 str 指定的字符串中的數(shù)字的等價整數(shù)值。

更多常用方法請翻閱官方文檔。

4.1.3 常用常量

  1. MAX_VALUE: 表示 int 型可取的最大值;
  2. MIN_VALUE: 表示 int 型可取的最小值;
  3. SIZE:表示以二進(jìn)制補(bǔ)碼形式表示 int 值的位數(shù);
  4. TYPE: 表示基本類型 Class 實(shí)例。

這些常量的使用實(shí)例如下:

實(shí)例演示
預(yù)覽 復(fù)制
復(fù)制成功!
public class WrapperClassDemo1 {

    public static void main(String[] args) {
        int maxValue = Integer.MAX_VALUE;
        int minValue = Integer.MIN_VALUE;
        int size = Integer.SIZE;
        System.out.println("int 類型可取的最大值" + maxValue);
        System.out.println("int 類型可取的最小值" + minValue);
        System.out.println("int 類型的二進(jìn)制位數(shù)" + size);
    }

}
運(yùn)行案例 點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果

運(yùn)行結(jié)果:

int 類型可取的最大值2147483647
int 類型可取的最小值-2147483648
int 類型的二進(jìn)制位數(shù)32

4.2 Character 類

Character 類在對象中包裝一個基本類型為 char 的值。一個 Character 對象包含類型為 char 的單個字段。

4.2.1 構(gòu)造方法

Character 類提供了一個構(gòu)造方法:

Character(char value):很少使用。

4.2.2 常用方法

  • char charValue():返回此 Character 對象的值;
  • int compareTo(Character anotherCharacter):返回此 Character 對象的值,根據(jù)數(shù)字比較兩個 Character 對象,若這兩個對象相等則返回 0 ;
  • boolean equals(Object obj):將調(diào)用該方法的對象與指定的對象相比較;
  • char toUpperCase(char ch):將字符參數(shù)轉(zhuǎn)換為大寫;
  • char toLowerCase(char ch):將字符參數(shù)轉(zhuǎn)換為小寫;
  • String toString():返回一個表示指定 char 值的 String 對象;
  • char charValue():返回此 Character 對象的值;
  • boolean isUpperCase(char ch):判斷指定字符是否是大寫字符;
  • boolean isLowerCase(char ch):判斷指定字符是否是小寫字符。

更多常用方法請翻閱官方文檔。

4.3 Boolean 類

Boolean 類將基本類型為 boolean 的值包裝在一個對象中。一個 Boolean 類型的對象只包含一個類型為 boolean 的字段。此外,此類還為 boolean 和 String 的相互轉(zhuǎn)換提供了許多方法,并提供了處理 boolean 時非常有用的其他一些常量和方法。

4.3.1 構(gòu)造方法

Boolean 類提供了如下兩個構(gòu)造方法:

  1. Boolean(boolean value):創(chuàng)建一個表示 value 參數(shù)的 boolean 對象(很少使用);
  2. Boolean(String s):以 String 變量作為參數(shù),創(chuàng)建 boolean 對象。此時,如果傳入的字符串不為 null,且忽略大小寫后的內(nèi)容等于 “true”,則生成 Boolean 對象值為 true,反之為 false。(很少使用)。

4.3.2 常用方法

  • boolean booleanValue():將 Boolean 對象的值以對應(yīng)的 boolean 值返回;
  • boolean equals(Object obj):判斷調(diào)用該方法的對象與 obj 是否相等,當(dāng)且僅當(dāng)參數(shù)不是 null,而且與調(diào)用該方法的對象一樣都表示同一個 boolean 值的 Boolean 對象時, 才返回 true;
  • boolean parseBoolean(Sting):將字符串參數(shù)解析為 boolean 值;
  • String toString():返回表示該 boolean 值的 String 對象;
  • boolean valueOf(String s):返回一個用指定的字符串表示值的 boolean 值。

更多常用方法請翻閱官方文檔。

4.3.3 常用常量

  • TRUE:對應(yīng)基值 true 的 Boolean 對象;
  • FALSR:對應(yīng)基值 false 的 Boolean 對象;
  • TYPE:表示基本類型 Class 實(shí)例。

5. 裝箱和拆箱

裝箱就是基本數(shù)據(jù)類型向包裝類轉(zhuǎn)換;拆箱就是包裝類向基本數(shù)據(jù)類型轉(zhuǎn)換。裝箱和拆箱又有自動和手動之分。

實(shí)現(xiàn)裝箱的實(shí)例如下:

實(shí)例演示
預(yù)覽 復(fù)制
復(fù)制成功!
public class WrapperClassDemo2 {

    public static void main(String[] args) {
        // 自動裝箱
        int num1 = 19;
        Integer num2 = num1;
        System.out.println("num2=" + num2);

        // 手動裝箱
        Integer num3 = new Integer(20);
        System.out.println("num3=" + num3);
    }

}
運(yùn)行案例 點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果

運(yùn)行結(jié)果:

num2=19
num3=20

自動裝箱就是直接將一個基本數(shù)據(jù)類型的變量,賦值給對應(yīng)包裝類型的變量;手動裝箱就是調(diào)用包裝類的構(gòu)造方法(在 Java14 中已經(jīng)過時,不推薦這樣的操作)。

實(shí)現(xiàn)拆箱的實(shí)例如下:

實(shí)例演示
預(yù)覽 復(fù)制
復(fù)制成功!
public class WrapperClassDemo3 {

    public static void main(String[] args) {
        // 自動拆箱
        Integer num1 = 19;
        int num2 = num1;
        System.out.println("num2=" + num2);

        // 手動拆箱
        int num3 = num1.intValue();
        System.out.println("num3=" + num3);
    }

}
運(yùn)行案例 點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果

運(yùn)行結(jié)果:

num2=19
num3=19

自動拆箱就是直接將一個包裝類型的變量,賦值給對應(yīng)的基本數(shù)據(jù)類型變量;手動拆箱通過調(diào)用對應(yīng)包裝類下的 xxxValue() 方法來實(shí)現(xiàn)。

6. 小結(jié)

通過本小節(jié)的學(xué)習(xí),我們知道了包裝類就是將基本數(shù)據(jù)類型包裝成的類,它有屬性、方法,可以對象化交互。除了 int 對應(yīng)的包裝類名稱為 Integer 以及 char 對應(yīng)的包裝類名稱 Character,其他 6 種數(shù)據(jù)類型對應(yīng)的包裝類,命名都為其基本數(shù)據(jù)類型的首字母的大寫。裝箱就是基本數(shù)據(jù)類型向包裝類轉(zhuǎn)換,拆箱就是包裝類向基本數(shù)據(jù)類型轉(zhuǎn)換。