wrapper包装java_java Object 类 与 Wrapper包装类
Object類
java.lang.Object類1. Object 類是所有java類的根父類2. 如果在類的聲明中未使用extends關(guān)鍵字指明其父類,則默認(rèn)父類為java.lang.Object類3. Object類中的功能(方法與屬性)具有通用性
屬性: 無(wú)
方法: equals() toString() getClass().....
包裝類
什么是包裝類?為什么需要包裝類? 這是大家要了解的
對(duì)于java中的基本數(shù)據(jù)類型我們?nèi)绻胍旬?dāng)當(dāng)做類來(lái)使用怎么辦呢? 如果想要對(duì)這些基本數(shù)據(jù)類型直接調(diào)用一些方法來(lái)操作的話 怎么做呢?
由以上就產(chǎn)生了Wrapper包裝類(這在python中叫裝飾器)
包裝類作用:
java提供了8種基本數(shù)據(jù)類型的對(duì)應(yīng)的包裝類, 使得基本數(shù)據(jù)類型的變量有了類的特征
掌握:基本數(shù)據(jù)類型
1: 是針對(duì)八種基本數(shù)據(jù)類型定義的相應(yīng)的引用數(shù)據(jù)類型---包裝類(封裝類)2: 有了類的特征就可以調(diào)用類的方法3: 我們希望java的基本數(shù)據(jù)類型也有java面向?qū)ο蟮奶厥馑远x了 包裝類 把基本數(shù)據(jù)類型的特殊都封裝在對(duì)應(yīng)的類中
基本數(shù)據(jù)---->Wrapper
基本數(shù)據(jù)類型轉(zhuǎn)化為包裝類:調(diào)用包裝類的構(gòu)造器
//基本數(shù)據(jù)轉(zhuǎn)化為Wrapper : 直接調(diào)用包裝類的構(gòu)造器即可
public voidtestOne() {int num1 = 10;
Integer integer= newInteger(num1);
System.out.println("基本數(shù)據(jù)轉(zhuǎn)化為包裝類的結(jié)果:" +integer);
Float f= new Float(3.5);
System.out.println(f);
}
Wrapper ---> 基本數(shù)據(jù)
Wrapper 轉(zhuǎn)化為基本數(shù)據(jù)類型: 調(diào)用Wrapper包裝類的? XXValue()方法
//Wrapper 轉(zhuǎn)化為 基本數(shù)據(jù) : 直接調(diào)用XXValue() 方法
public voidWrapperToBasic() {
Integer integer= new Integer(34);int num =integer.intValue();
System.out.println("Wrapper--->基本數(shù)據(jù):"+num);
Float f= new Float(4.6f);float fl =f.floatValue();
System.out.println("Float ----> 基本數(shù)據(jù)類型:"+fl);
}
基本數(shù)據(jù),Wrapper----> String
基本數(shù)據(jù)和包裝類轉(zhuǎn)化為String : 調(diào)用String重載的valueOf()方法
//基本數(shù)據(jù),Wrapper ---> String : 基本數(shù)據(jù)和包裝類轉(zhuǎn)化為String 直接調(diào)用String的valueOf()方法
public voidbasicWrapperToString() {//方法一直接轉(zhuǎn)化
int num = 10;
System.out.println("這是num" + num); //直接加減//方法二調(diào)用String的valueOf()
int num1 = 20;
String strNum1=String.valueOf(num1);
System.out.println("基本數(shù)據(jù)轉(zhuǎn)化為String:"+strNum1);
Integer integer= new Integer(35);
String strInteger=String.valueOf(integer);
}
String ---> 基本數(shù)據(jù)類型,Wrapper
String 轉(zhuǎn)化為基本數(shù)據(jù)類型和包裝類 需要調(diào)用包裝類的parseXX()方法
//String ---> 基本數(shù)據(jù),Wrapper : 調(diào)用包裝類的paseXX
public voidStringToBsicsWrapper() {
String str= "123"; //必須是轉(zhuǎn)化的對(duì)應(yīng)類型的字符, 轉(zhuǎn)為int那么久必須是字符串類型的int
Integer integerStr =Integer.parseInt(str);
System.out.println(integerStr);
}
錯(cuò)誤的
public voidStringToBsicsWrapper() {
String str= "老王";
Integer integerStr= Integer.parseInt(str); //這樣是錯(cuò)誤的 因?yàn)槟阋D(zhuǎn)化為int那么String就要是字符串類型的int "123"
System.out.println(integerStr);
}
裝箱子:
//裝箱子: 轉(zhuǎn)化為String//需要先把對(duì)應(yīng)的信息轉(zhuǎn)化為包裝類 有了類的特征就可以調(diào)用類的方法了
public voidpack(){int num = 30;
Integer integer= newInteger(num);
String str=integer.toString();
System.out.println("pack:"+str);}
轉(zhuǎn)化
方法
演示
基本數(shù)據(jù)轉(zhuǎn)為Wrapper
直接調(diào)用Wrapper的構(gòu)造器
Integer in= new? Integer(30);
Wrapper--->基本數(shù)據(jù)類型
調(diào)用包裝類的XXXValue()方法
Integer integer = new Integer(34);
int num = integer.intValue();
基本數(shù)據(jù),Wrapper--->String
調(diào)用String的valueOf()方法
int num1 = 20;
String strNum1 = String.valueOf(num1);
String----->基本數(shù)據(jù),Wrapper
調(diào)用包裝類的paseXX()方法
String str = "123"; Integer integerStr = Integer.parseInt(str);
習(xí)題:
如下兩個(gè)題目輸出結(jié)果相同嗎?各是什么:
1:
Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1);//
2:
public voidtest() {
Object o2;if (true)
o2= new Integer(1);elseo2= new Double(2.0);
System.out.println(o2);// }
3:
public voidmethod1() {
Integer i= new Integer(1);
Integer j= new Integer(1);
System.out.println(i == j);
Integer m = 1;
Integer n= 1;
System.out.println(m == n);
Integer x = 128;
Integer y= 128;
System.out.println(x == y);
}
解答:
習(xí)題1: 答案是:1.0 因?yàn)?//因?yàn)樵诰幾g的時(shí)候int 和dubbo會(huì)自動(dòng)對(duì)類型提升為dubbo的 所以結(jié)果是1.0
習(xí)題2: 答案:1 因?yàn)闆](méi)有進(jìn)行對(duì)比只是賦值
習(xí)題3: a: //false == 比引用地址 是否同一個(gè)對(duì)象 不是的
b://true
c://false 因?yàn)镮nternet會(huì)把使用頻繁的數(shù)字存到自己的地址值中 方便我們來(lái)調(diào)用避免重復(fù)調(diào)用,-128 ---- 127 這個(gè)范圍內(nèi)的 都是調(diào)用integer中的保存的都是同一個(gè)地址值 超過(guò)這個(gè)范圍就不是同一個(gè)自地址值就是新建的了
3:知識(shí)點(diǎn):
Integer內(nèi)部定義了IntegerCache的結(jié)構(gòu) IntegerCache中定義了Integer[],
保存了從-128 ---127范圍的整數(shù),如果我們使用自動(dòng)裝箱的方式給Inte賦值的范圍在-128 -- 127 的范圍內(nèi)時(shí)候就可以直接使用數(shù)組中的元素 不用去new了
.
總結(jié)
以上是生活随笔為你收集整理的wrapper包装java_java Object 类 与 Wrapper包装类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 好玩不贵的电子产品
- 下一篇: java+调用jacoco_java操作