包装类和接口

本文详细介绍了Java中的包装类,包括装箱、拆箱操作以及自动装箱拆箱特性。同时讨论了接口的定义、使用,强调了接口在设计上的重要性,并通过工厂设计模式和代理设计模式举例说明接口的应用。此外,还对比了抽象类和接口的区别,建议在设计阶段优先考虑使用接口。
摘要由CSDN通过智能技术生成

包装类

包装类的主要功能主要是针对基本数据类型的对象转换而实现的。在JDK1.0时就提供了八种包装类对应八种基本数据类型
在这里插入图片描述

可以发现在Java中包装类提供有两种类型:

  • 对象型包装类(Object直接子类):Boolean、Character
  • 数值型包装类(Number直接子类):Byte、Short、Integer、Long、Float、Double

Number是一个抽象类,以后只要是看见了Number都应该明确的表示它是一个数字的概念,这个类定义有如下方法:

方法名称 类型 说明
public byte byteValue() 普通 从包装类中获取byte数据
public short shortValue() 普通 从包装类中获取short数据
public abstract int intValue() 普通 从包装类中获取int数据
public abstract long longValue() 普通 从包装类中获取long数据
public abstract float floatValue() 普通 从包装类中获取float数据
public abstract double doubleValue() 普通 从包装类中获取double数据
装箱与拆箱
  • 数据装箱:将基本数据类型保存到包装类中,一般可以用构造方法完成
  1. Integer类: public Integer( int value);
  2. Double类: public Double( double value);
  3. Boolean类: public Boolean( boolean value);
  • 数据拆箱:从包装类中获取基本数据类型
  1. 数值型包装类已经有Number类定义了拆箱方法(上面的表格)
  2. Boolean型:public boolean booleanValue();
public class JavaDemo {
   //int和Integer为例
	public static void main(String args[]) {
   
		Integer obj = new Integer(10); // 装箱. .
		int num = obj.intValue() ;//拆箱。
	 	System.out.println(num*num);
	}
}

而JDK1.5之后提供了自动的拆箱与装箱操作

public class JavaDemo{
   
	public static void main (String args []) {
   
		Integer obj = 10 ; //自动装箱,此时不再关心构造方法了
		int num=obj;//自动拆箱
		obj ++ ; //包装类对象可以直接参与数学运算
		System.out.println(num *obj) ; // 直接参 与数学运算
		}
}

注意一点:在进行包装类相等判断的时候使用equals()完成,而包装类本身也需要考虑占位的长度,如果不超过一位的内容,可以使用“==”判断。

Integer x = 128 ;
Integer y = 128;
System.out.println(x == y)//输出打印false
System.out.println(x.equals(y));//输出打印true

接口

抽象类与普通类相比最大的优势在于:可以实现对子类覆写方法的控制,但是在抽象类里面可能依然会保留有一些普通方法,而普通方法里面可能会涉及到一些安全或者隐私的操作问题,那么这样在进行开发的过程之中,如果想要对外部,隐藏全部的实现细节 ,则就可以通过接口来进行描述。
接口可以理解为一个纯粹的抽象类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值