1.OOP:面向对象程序设计
2.类构造对象的过程称为创建类的实例。
3.封装:将数据和行为组合到一起,但对对象的实现方式隐藏。只能通过对象的方法,对对象的数据进行交互。
4.数据叫实例字段、操作数据的过程叫方法
5.Java所有类都扩展与Object类
6.对象三大特性:状态、行为、标识
7.类之间关系:依赖use a 使用或操作对方称为依赖
聚合has a包含关系
继承is a 可以用父类的方法,也可以重载方法
8.构造器的名字和类名应该相同
Date类 构造器也叫Date 新构造一个Date对象就在构造器前加new new Date()
9.对象变量只是引用一个对象,并不实际包含一个对象
10.Date类表示时间点、LocalDate类表示日历表示法表示日期。
11.静态工厂方法新建对象 在:
12.更改器和访问器的区别:
更改器方法调用后,对象状态会改变。
访问器则不会改变(各种getId getName方法)。(例如String.toUpperCase()方法 原对象不会改变,会新建一个新的字符串对象并返回)
13.主力类(workhorse class)自己编写的复杂的类
14.
15.构造器和类同名,每个类可以有一个以上构造器(根据参数不同,进行重载)
构造器没有返回值,总是伴随new一起调用。
16.JDK10之后可以用var声明局部变量,无需指定类型。
var harry=new Employee(1000,1);
17.隐式参数和显式参数
employee.raiseSalart(5);
emplyee为隐式参数(也叫方法调用的接收者),方法名里面的5是显式参数
在方法中我们可以使用this代表隐式参数
18.数据操作:私有的数据、公共的访问器、公共的更改器
19.如果需要复制可变数据类型,应使用clone方法
20.final定义的字段,必须在构造对象时初始化。
21.所有静态字段(static)属于类,不属于对象
22.静态方法是没有隐式参数的,也就没有this指针,直接用类来调用。
23.静态变量(static):是可变的
静态常量(static final):不可变的。
24.官方Java只有按值调用。(方法得到参数值的一个副本,不能修改参数值的内容)
25.基础类型调用时不能改变,对象引用参数可以改变对象值。
原因:x为emp的副本,但是他们同时引用到同一个对象,所以在方法里改变的值就是同一个对象的值。
书中有个简单的例子饶有趣味,图示画在了右面。
26.重载overload:多个方法,名字相同,参数不同;
27.方法的签名:方法名+参数类型
index(int ,int )
index(int)
28.默认字段初始化:数值型为0 布尔型为false 引用为null(不建议依赖默认 不好的习惯)
29.没有编写任何构造器,系统默认生成无参构造器
但是只要构造了有参构造器,必须手动构造无参构造器!!!
30.初始化数据字段的方法:
(1)构造器设置值
(2)在声明中赋值
(3)初始化块(每次构造都要执行)(先初始化块 再构造器)
class Emplyee { private int id; //初始化块 { id=1000; }
31.对于静态字段可以有静态初始化块 格式为:
class Emplyee { private static int id; //静态初始化块 static { id=1000; }
32.Java有JVM的自动垃圾回收,所以不需要对象析构器,但是资源还是需要用close关闭的。
33.JAR是Java的归档文件,是压缩的(使用了ZIP格式)。
34.方法注释例子:IDEA设置方法注释参考:https://blog.csdn.net/jianghappyboy/article/details/80794552
35.最后送给大家七个类设计技巧
(1)保证数据私有
(2)对数据进行初始化
(3)不要在类中使用过多基本类型
(4)不是所有字段都需要单独的字段访问器(get)和更改器(set)
(5)分解有过多职责的类(解耦合)
(6)类名、方法名要能体现他们的职责
(7)优先使用不可变的类