java31

1.包装类
基本数据类型包装成对象,使基本数据类型的功能更加强大,
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

2.装箱操作:将基本数据类型转换成对应的包装类
-1-eg:int a = 5;
Integer num = new Integer( num );//传参传num或者a都行
OR
Integer num = Integer.valueOf(5);
System.out.println(num);
【5】
-2-Integer 内含toString方法,所以可以直接打印num
-3-输出最大最小值
System.out.println(num.MAX_VALUE);
System.out.println(num.MIN_VALUE);
-4-知道是由什么基本数据类型转变过来的
System.out.println(num.TYPE);
-5-转换成二进制
System.out.println(num.toBinaryString(5));
-6-Integer可以将字符串转换成整型,但双引号里必须是数字
3.拆箱操作:将包装类转换成对应的基本数据类型
-1-char
装箱:
Character c = new Character('a');******OR*****Character c1 = Character.valueOf('a');
拆箱:
Character c2 = c.charValue();
System.out.println(c);
System.out.println(c1);
System.out.println(c2);

a
a
a

-2-long
装箱:
Long l = new Long(15);*****OR*****Long l 1= Long.valueOf(15);
拆箱:
Long l 2= l.longValue();

15
15
15

4.自动装箱:可以直接把一个基本数据类型赋值给对应的包装类
自动拆箱:可以直接把一个包装类赋值给对应的基本数据类型
(语法糖)
Integer i = 5;
System.out.println(i);
int i1 = i;
System.out.println(i1);

System.out.println("******");
Character c = 'j';
char c1 = c;
System.out.println(c);  
System.out.println(c1); 

5.字符串相关转化
//字符串转换成包装类
Integer i = Integer.valueOf("123");//装箱
System.out.println(i);
System.out.println("***************");
Double d = Double.valueOf("10");
System.out.println(d);
//包装类转换成字符串
Integer i = Ineteger.valueOf("123");
String i2 = i.toString();
【123
123】
//基本数据类型转变成字符串类型
//在其后直接加" ";
int a = 1;
String a1 = a+" ";
String a2 = a+"/5";
【1
1
1/5

//字符串类型转变成基本数据类型
String s = String.valueOf("123");
int s2 = Integer.parseInt(s);
System.out.println(s);
System.out.println(s2);
【123
123】
String s3 = String.valueOf("100");
double s4 = Double.parseDouble(s3);
System.out.println(s3);
System.out.println(s4);
【100
100.0】
//字符串类型转变成布尔类型
//(除了true和true任何形式的大小写输出为true,其他打印均为false)
Boolean b = Boolean.valueOf("qq");
System.out.println(b);
【false】
Boolean b2= Boolean.valueOf("true");
System.out.println(b2);
【true】
6.包装类和基本数据类型的区别
-1默认值的不同
int 默认值:0
Integer默认值:null
-2包装类中提供了许多直接可以使用的方法
eg:十进制转换为二进制
System.out.println(Integer.toBinaryString(4));
System.out.println(Integer.toBinaryString(11));
【100
1011】
-3集合框架中不能存放基本数据类型,只能存对象
-4什么时候使用包装类,什么时候使用基本数据类型
包装类:(存放在堆中)在类中创建对象的字段时
基本数据类型:(存放在栈中)在方法中
7.缓存设计valueOf
//同一个内存地址
Integer i = Integer.valueOf(15);
Integer i2 = Integer.valueOf(15);
System.out.println(i==i2);
【true】
//创建了新的内存地址
Integer i3 = new Integer(15);
Integer i4 = new Integer(15);
System.out.println(i3==i4);
【false】
//Integer的范围时-128到127
//超出范围
Integer i5 = Integer.valueOf(128);
Integer i6 = Integer.valueOf(128);
System.out.println(i5==i6);
【false】
//Character的范围是0到127
8.抽象类:
-1使用抽象类后的要求:
子类必须要覆盖父类
-2使用抽象类后解决的问题:
不需要再写方法体了。(避免了同一方法但不同返回值的尴尬)
-3注意:
--1--抽象方法必须定义在抽象类中(类和方法前都加abstract)或者接口中
--2--abstract不能和private(子类无法继承),final(不允许被继承),static(有static修饰的
是属于类的,而方法属于对象)一起使用
--3--使用了抽象方法就不能用此构造器创建对象
--4--子类必须覆盖父类,除非在子类前加上abstract
--5--子类加上abstract后,就由孙类来继承父类中的抽象方法。
--6--抽象类中是可以有非抽象方法的(供子类或者孙类创建对象后调用的)
--7--构造方法不能定义为私有化(因为子类继承时必须先要调用父类的构造方法,如果构造方法私有化
将无法继承,并且抽象方法只有被子类继承后才可以实现内部的方法体)

猜你喜欢

转载自www.cnblogs.com/-zero/p/10383358.html