Java面向对象思考

类的抽象和封装

类的抽象:将类的实现和使用分离

类的封装:实现的细节被封装并且对用户隐藏

由于以上原因,类也称作抽象数据类型

类的关系

类中间的关系通常是关联、聚合、组合、继承

关联


聚集&组合

聚集是关联的一种特殊形式,代表了两个对象之间的归属关系。

聚集类→被聚集类         聚集对象→被聚集对象

一个对象可以被多个其他的聚集对象所拥有,如果一个对象只归属于一个聚集对象,那么它和聚集对象之间的关系就称为组合。


将基本数据类型值作为对象处理

基本数据类型值不是一个对象,但是可以使用JavaAPI中的包装类来包装成一个对象。

出于对性能的考虑,在Java中基本数据类型不作为对象使用,因为处理对象需要额外的系统开销。

但是Java中许多方法需要将对象作为参数,所以Java提供了一个方便的方法,即将基本数据类型并入对象或者包装成对象。提供了Boolean, Character, Double, Float, Byte, Short, Integer, Long等包装类。

数值包装类相互之间都非常相似,每个都包含了doubleValue(), floatValue(), intValue(), longValue(), shortValue(), byteValue()方法,这些方法将对象“转换”成基本类型值,如下所示:

new Double(12.4).intValue(); // return 12;

构造包装类的时候,既可以用基本数据类型值,也可以用数值的字符串,例如:

new Double( 5.0 );

new Double( "5.0" );

包装类没有无参构造方法。

所有包装类的实例都是不可变的,这意味着一旦创建对象后,它们的内部值就不能再改变。

每一个数值包装类都有常量 MAX_VALUEMIN_VALUE,表示最大值、最小值。调用时:Integer.MAX_VALUE

数字包装类中包含compareTo方法用于比较两个值,如果该数值大于、等于或小于另外一个数值时,分别返回1,0,-1,如下所示:

new Double(12.4).compareTo(new Double(12.3)); // return 1

数值包装类有一个静态方法 valueOf(String s),创建一个新对象,例如:

Integer intObject = Integer.valueOf("12");

用parseInt方法将字符串转换成数值,例如:

Integer.parseInt("11", 2) reutrn 3; // 将2进制11转换成int


基本类型和包装类类型之间的自动转换

装箱:将基本类型值转换为包装类对象的过程

开箱:相反的转换过程

Java允许自动转化,称为 自动装箱 和 自动开箱,例如:

Integer intObject = new Integer(2);

Integer intObject = 2; // 可以利用自动装箱将上句简化为这句

再比如:

Integer[] intArray = {1, 2, 3};

System.out.println(intArray[0] + intArray[1] + intArray[2])

上一句将1,2,3自动装箱成对象 new Integer(1),下一句对象intArray[0]被自动转换成int值,然后相加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值