java核心技术卷Ⅰ(一)基础回顾(类与对象、继承)

(第四章)

一.对象与类

1.访问器方法:之访问对象而不修改对象

2.工厂方法:类似LocalDate和NumberFormat类使用静态工厂方法来构造对象。

eg.LocalDate.now()

原因:①无法命名构造器,构造器的名字必须与类名相同。

②当使用构造其实无法改变所构造的对象类型,而Factory方法将返回一个DecimalFormat类对象,这是NumberFormat的子类。

3.方法参数:java总是采用按值调用,方法不能修改传递给它的任何参数变量的内容。

java对对象采用的不是引用调用,实际上对象引用是按值传递的。

一个方法不能修改一个基本数据的参数。一个方法可以改变一个对象参数的状态。一个方法不能让对象参数引用一个新的对象。参数变量做了更换,而实际的对象不改变。

5.静态导入

导入的时候:import static java.lang.Math.*;

可直接调用方法而不需加类名前缀,数学运算等比较实用。

6.方法注释

@param 变量描述 @return描述 @throws描述

通用注释:@author姓名 @version文本 @since文本(始于)@see引用

二.继承

1.超类的引用不能赋予子类。(不能向下转型)

2.强制类型转换:将某个类的对象转换成另一个类的对象引用

Manager boss=(Manager)staff[0];

用处为:暂时忽视对象的实际类型之后使用对象的全部功能。

3.Object类是所有类的超类

①equals方法:java语言规范要求equals方法拥有自反性对称性传递性一致性,如果方法内写入了instanceof来判断类的归属问题,则无法体现对称性。

②hashCode:

散列码是有对象导出的一个整形值。如果两个对象不同,基本上散列码也各不相同。调用string类的hashcode方法可以得到散列码。hashcode方法定义在object类中,其值为对象的存储地址。

③toString方法:未覆盖则调用的是object类的打印对象所属的类名和散列码。

④getClass:包含对象信息的类对象。

4.泛型数组列表

①Arraylist<emploee>staff=new ArrayList<>()动态大小的数组。尖括号中需要放置引用变量,需要基本类型时可使用对象包装器类(Integer、Long。。。)。

②用add方法将元素添加到数组列表中,当数组满时将自动扩大空间,

③staff.add();在尾端添加

staff.add(n,e);在某个位置添加

但是如果能够提前分配好数组大小而不用扩大运行将更加迅速,确认不会添加新元素后,用trimTosize方法去掉余下的部分。

staff.size()//类似于 a.length

staff.set(i,harry);//类似于a[i]=harry;

Employee e=staff.get(i);//类似于Employee e =a[i];

for(Employee e:staff)
//similar to
for(int i=0;i<staff.size();i++){
Employee e = staff.get(i);
}

④自动装箱:调用list.add(3)------>自动list.add(Integer.valueOf(3));

补充一点二维数组:

int[] y[]----int[][] y,故y为二维数组。

 

5.参数数量可变的方法

eg

public static double max(double... values)
{
    double largest=Double.NEGATIVE_INFINITY;
    for(double v:valuse) if(v>largest) lartgest=v;
return largest;
}
// 可以像下面这样调用这个方法
//double m =max(3.1,40.4,-5);

6.反射

反射机制可以用来:①在运行时分析类的能力

②在运行时查看对象*编写一个toString方法供所有类使用

③实现通用的数组操作代码

④利用Method对象

有关反射的内容,由于内容比较重要,在深入学习后将专门做笔记。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值