Java核心技术卷1 笔记

第四章 对象与类

LocalDate类

不要使用构造器来构造LocalDate类的休想,实际上是使用了静态工厂方法(factory method),它会代表我们时调用构造器。

LocalDate originalDate = LocalDate.now();

LocalDate的plusDay方法会生成一个新的LocalDate对象,并没有将originalDate改为1000后的日期,元对象不做任何改动。

LocalDate newDate = originalDate.plusDays(1000);

只访问对象而不修改对象的方法称为访问器方法(accessor method),例如LocalDate.getYear

与LocalDate的plusDay方法不同的, GregorianCalendar.add方法是一个更改器方法(mutator method), 调用这个方法后,对象的状态会改变。如:

GregorianCalendar someDay = new GregorianCalendar(2022,11,11);
someDay.add(Calendar.DAY_OF_MONTH,1000); // someDay对象被改变

final实例字段

final实例字段必须在构造对象时初始化,必须确保在每一个构造器执行之后,这个字段的值已经设置,并且以后不能再修改这个字段。final对于类型为基本类型或者不可变类的字段尤为重要,例如String就是不可变的。对于可变的类使用final修饰的话,会造成混乱。例如以下例子: final关键字只是表示存储在evaluations变量中的对象引用不会再指向另一个不同的StringBuilder对象。不过这个对象可以更改。

privat final StringBuilder evaluations;
evaluations= new StringBuilder();

public void getGoldStar(){
    evaluations.append(LocalDate.now() + "Gold star!";
}

静态字段和静态方法

非静态对象的实例字段,每个对象都会有自己的一个副本。而静态字段属于类,而不属于任何以单个对象。

静态常量,如果省略关键字static,就需要通过类的一个对象来访问该变量。

静态方法是不在对象上执行的方法,例如:Math.pow(x,a)

方法参数

Java程序设计语言对对象采用多个是不是按引用调用,实际上,对象引用是按值传递的

方法参数能做什么不能做什么:

1. 方法不能修改基本数据类型的参数(数值型或者布尔型)

2. 方法可以改变对象参数的状态

3. 方法不能让一个对象参数引用一个新的对象。

第五章

多态

public class Employee{                  //父类
 
}
 
public class Manager extends Employee{    //子类
 
}

子类对象 【new Manager()】 可以赋值给为父类变量【Employee emp】,父类对象不可以赋值为子类变量。

Employee emp = new Manager(); //正确
Manager manager = new Employee(); //错误

在子类对象赋值给父类变量后,可以通过强制转型,转型回来。

Employee emp = new Manager();
Manager emp = (Manager) emp;

书本中原代码理解:

// 书中原代码

Manger boss = new Manager(...);
Employee[] staff = new Employee[3];
// 子类对象[new Manager(...)]赋值给为父类变量[staff[0]]
staff[0] = boss;
staff[1] = new Employee(...);
staff[2] = new Employee(...);

// 强制转换
Manger boss = (Manager) staff[0]; // ok
Manger boss = (Manager) staff[1]; // error

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值