亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java 包裝類(Wrapper)

在本教程中,我們將借助示例學(xué)習(xí)Java 包裝類(Wrapper)。

Java中的包裝類用于將原始類型(int,char,float等)轉(zhuǎn)換為相應(yīng)的對象。

8個(gè)基本類型中的每一個(gè)都有對應(yīng)的包裝器類。

原始類型包裝類
byteByte
booleanBoolean
charCharacter
doubleDouble
floatFloat
intInteger
longLong
shortShort

將基本類型轉(zhuǎn)換為包裝對象

我們還可以使用valueOf()方法將原始類型轉(zhuǎn)換為相應(yīng)的對象。

示例1:包裝對象的原始類型

class Main {
  public static void main(String[] args) {

    //創(chuàng)建原始類型
    int a = 5;
    double b = 5.65;

    //轉(zhuǎn)換為包裝對象
    Integer aObj = Integer.valueOf(a);
    Double bObj = Double.valueOf(b);

    if(aObj instanceof Integer) {
      System.out.println("創(chuàng)建一個(gè)Integer對象。");
    }

    if(bObj instanceof Double) {
      System.out.println("創(chuàng)建一個(gè)Double對象。");
    }
  }
}

輸出結(jié)果

創(chuàng)建一個(gè)Integer對象。
創(chuàng)建一個(gè)Double對象。

在上面的示例中,我們使用了valueOf()將原始類型轉(zhuǎn)換為對象的方法。

在這里,我們使用instanceof運(yùn)算符來檢查生成的對象是否屬于Integer或Double類型。

但是,Java編譯器可以直接將原始類型轉(zhuǎn)換為相應(yīng)的對象。例如,

int a = 5;
//轉(zhuǎn)換為對象
Integer aObj = a;

double b = 5.6;
//轉(zhuǎn)換為對象
Double bObj = b;

此過程稱為自動(dòng)裝箱。要了解更多信息,請?jiān)L問Java自動(dòng)裝箱和拆箱。

注意:我們還可以使用包裝類(Wrapper)構(gòu)造函數(shù)將原始類型轉(zhuǎn)換為包裝對象。但是在Java 9之后,不再使用構(gòu)造函數(shù)

包裝對象成原始類型

要將對象轉(zhuǎn)換為原始類型,我們可以使用每個(gè)包裝類中對應(yīng)的值方法(intValue()、doubleValue()等)。

示例2:將包裝對象轉(zhuǎn)換為原始類型

class Main {
  public static void main(String[] args) {

    //創(chuàng)建包裝類的對象
    Integer aObj = Integer.valueOf(23);
    Double bObj = Double.valueOf(5.55);

    //轉(zhuǎn)換為原始類型
    int a = aObj.intValue();
    double b = bObj.doubleValue();

    System.out.println("a的值: " + a);
    System.out.println("b的值: " + b);
  }
}

輸出結(jié)果

a的值: 23
b的值: 5.55

在上面的示例中,我們使用了intValue() 和 doubleValue()方法將Integerand和Double對象轉(zhuǎn)換為相應(yīng)的原始基本類型。

但是,Java編譯器可以自動(dòng)將對象轉(zhuǎn)換為相應(yīng)的原始類型。例如,

Integer aObj = Integer.valueOf(2);
//轉(zhuǎn)換為int類型
int a = aObj;

Double bObj = Double.valueOf(5.55);
//轉(zhuǎn)換為double類型
double b = bObj;

此過程稱為拆箱。要了解更多信息,請?jiān)L問Java自動(dòng)裝箱和拆箱。

包裝類的優(yōu)點(diǎn)

  • 在Java中,有時(shí)我們可能需要使用對象而不是原始數(shù)據(jù)類型。例如,在使用集合時(shí)。

    // 錯(cuò)誤
    ArrayList<int> list = new ArrayList<>();
    
    //正常運(yùn)行
    ArrayList<Integer> list = new ArrayList<>();

    在這種情況下,包裝器類可以幫助我們將原始數(shù)據(jù)類型用作對象。

  • 我們可以將空值存儲(chǔ)在包裝對象中。例如,

    //將生成一個(gè)錯(cuò)誤
    int a = null;
    
    // 正常運(yùn)行
    Integer a = null;

注意:基本類型比相應(yīng)的對象更有效。因此,當(dāng)需要效率時(shí),總是建議使用原始類型。