自学java(7)继承:5.2开始

Object:所有类的超类(与C++不同)

如果没有明确的指出一个类的超类,那么Object就被认为是这个类的超类。

可以使用Object类型的变量引用任何类型的对象

缺陷::::::

Object类型的变量只能用于作为各种值的持有者,要想对其中的内容进行具体的操作,还需要清楚对象的原始类型,并进想相应的类型转换:

Employee e = (Employee) obj;


equals方法

用于检测一个对象是否等于另外一个对象。(只有两个对象属于同一个类时,才有可能相等)

equals具有的特性:

(1)自反性:对于任何非空引用x,x.equals(x)应该返回true

(2)对称性:对于任何引用x和y,当且仅当y.equals(x)返回true,x.equals(y)也应该返回true

(3)传递性:对于任何引用x,y和z,如果x.equals(y)返回true,y.equals(z)返回true,x.equals(z)也应该返回true

(4)一致性:如果x和y引用的对象没有发生变化,反复调用x.equals(y)应该返回同样的结果

(5)对于任何非空引用x,x.equals(null)应该返回false


5.3泛型数组开始

java容许在运行时确定数组的大小

例如

int actualSize = ...;

Employee[] staff = new Employee[actualSize];

这段代码的缺陷是一旦确定了数组的大小再去改变它那就变得不容易了

ArrayList是一个采用类型参数的泛型类。(当作vector来看)

下面声明和构造一个保存Employee对象的数组列表:

ArrayList<Employee> staff = new ArrayList<Employee>();

关于ArrayList的使用

使用get和set方法实现访问或改变数组元素的操作,而不是用人们喜爱的[]语法格式。

要设置第i个元素

staff.set(i,harry);

获取元素:

Employee e = staff.get(i);


5.4对象包装器与自动装箱

包装器:有时候需要把int这样的基本类型转换为对象,所有的基本类型都有一个与之对应的类。例如,int对应的是Integer类,还有其他的内置内省也都有对应的存在,基本上都是大写第一个字母。

特点:对象包装器类是不可变的,一旦构造了包装器,就不允许更改包装在其中的值,对象包装器类还是final,因此不能定义它们的子类。


ArrayList<Integer> list = new ArrayList<>[];

list.add(3);//自动装箱,会被分解为list.add(Integer.valueOf(3));

Integer i3 = 200;
Integer.valueOf(200);


int i1 = i3;
i3.intValue();




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值