JAVA学习第八天

1.包装类

1.1Java中的包装类

byte<-->Byte
short<-->Short
int<-->Integer
long<-->Long
float<-->Float
double<-->Double
char<-->Character
boolean<-->Boolean
void<-->Void

1.2装箱和拆箱

装箱:把基本数据类型转换为包装对象

Integer obj1 = new Integer(4);//使用构造函数函数
Integer obj2 = Integer.valueOf(4);//使用包装类中的valueOf方法

拆箱:把包装对象拆为剧本数据类型

Integer obj = new Integer(4);
int num1 = obj.intValue();

JDK1.5后可以自动装箱和拆箱 只限对应类型之间

Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5;
//加法运算完成后,再次装箱,把基本数值转成对象。
Integer i = 1;
Double d = 1;//错误的,1是int类型

1.3包装类的一些API

  • 获取某个类型的最大值/最小值:
	Integer.MAX_VALUE
   Integer.MIN_VALUE
  • 基本数据与字符串之间的转换
int为例
    String str = "123";
	int num = Integer.parseInt(str);
	int num = Integer.valueOf(str);
	
	int a = 123;
	String string = a + "";
	String string = String.valueOf(a);
  • 字符转大小写
char为例
   char small = 'a';
   char big = (char)(small - 32);
   char big = Character.toUpperCase(small);

   char upper = 'A';
   char lower = (char)(upper + 32);
   char lower = Character.toLowerCase(upper);
  • 比较大小 (以Double为例)
Double.compare(d1,d2);

1.4包装类的特点

  • 包装类对象不可变
  • 部分包装类有缓存对象
Byte: -128 ~ 127
Short-128 ~ 127
Integer-128 ~ 127
Long-128 ~ 127
   
FloatDouble没有缓存对象。
   
Character0-127
Booleantrue,false

2.抽象类

1.特点

(1)抽象类本身不能直接创建对象,只能创建它的子类对象

(2)抽象类有声明时有一个abstract修饰

(3)子类继承抽象类时,必须重写抽象父类的所有的抽象方法,当然如果子类也是抽象类的话,可以暂时不重写。

(4)抽象类中可以没有抽象方法,一定有构造器,可以有其他的成员变量(包括静态的、非静态的)、成员方法(包括静态、非静态等)、代码块(包括静态、非静态等)。

(5)如果某个类包含抽象方法,这个类必须是抽象类。

3.接口

1.接口的成员都有哪些

(1)公共的静态的常量:public static final,这三个单词可以省略。

(2)公共的抽象方法:public abstract,这两个单词可以省略。

(3)公共的静态方法(JDK1.8之后):public static,其中static不能省略,public可以省略

(4)公共的默认方法(JDK1.8之后):public default,其中default不能省略,public可以省略

(5)私有方法(JDK1.9之后):private,不能省略

2.接口成员的注意点

(1)公共的静态的常量

  • 在接口的外面使用:接口名.常量名
  • 在接口的实现类中使用:如果没有重名问题,直接使用,不需加“接口名.”,如果有重名问题,必须加“接口名.常量名”

(2)公共的抽象方法

实现类实现接口时,必须重写接口的抽象方法。除非实现类是一个抽象类,可以暂时不重写。

(3)公共的静态方法

接口中的静态方法是不会继承到实现类中。当然也就不存在“重写”静态方法。

接口中的静态方法的使用方式只有一种:接口名.静态方法。

(4)公共的默认方法

  • 实现类会继承接口的默认方法。而且实现类可以选择重写接口的默认方法,实现类重写时,default单词去掉。
  • 如果实现类在继承父类和实现父接口时,出现默认方法冲突问题,如果没有处理,默认是选择的父类的。如果此时实现类想要选择父类或父接口中的实现,可以:
    • 父类:super.方法
    • 父接口:接口名.super.方法
  • 如果实现类同时实现多个接口时,出现默认方法冲突问题,必须处理,要指定选择哪一个,还是完全重写。
    • 父接口:接口名.super.方法

3.接口的特点

(1)接口类型本身是不能直接创建对象的,只能创建它的实现类对象。

(2)接口中是没有构造器,代码块等其他成员,除了上面的几种可以。

(3)实现类实现接口时,必须重写接口的抽象方法。除非实现类是一个抽象类,可以暂时不重写。

(4)实现类在实现接口时,支持多实现。

(5)子接口在继承父接口时,支持多继承。

extends 父类   单继承
类  implements 父接口们  多实现
接口 extends 父接口们 多继承  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值