UML记号:
UML很重要!这里应该记一下
继承和实现接口不用多说。
依赖:一个类要操作另一类类的对象就叫依赖。比如三层架构里,控制器层不依赖数据层,就是说不会直接调数据层的对象的方法。
聚合:has a ,比如 class Student { Teacher t; }
时间相关的类:Date,LocalDate
new Date()能得到当前时间点的比较完全的信息,localDate则只有年月日。
点开LocalDate源码,发现确实只保存年月日。
后面有个小例子,员工的雇佣日期用LocalDate保存(当然不需要时分秒)
Var的使用:只在java10之后
其实意义不大,idea可以自动补全类型(new xxx().var + 回车)
而且容易混淆左边的类型,万一我们想用父类型或者接口类型接受怎么办?书上没有写,我一般用java8,所以不测试了。
关于main方法:
启动一个java程序,需要从main方法开始,但要注意,这个main写在哪个类里都是无所谓的,在idea里点绿色箭头就能去运行,但为了简单起见,最后单独弄一个类来写psvm,不要在有特殊任务的类里写这个启动方法:
默认字段初始化(一般不要干这种事:
初始化块(很重要,得学呢!)
其实初始化块和构造方法谁先谁后执行没什么区别(除非你非要写一些依赖执行顺序的代码,也是吃饱了撑的)只要不弄出空指针异常就行,随你喜欢怎么初始化都行。
不过还是可以实验一下
注意一下静态的初始化块,只会加载一次:
比如再次实验:
static块只调用了一次!所以说static块是给static变量初始化用的,因为static变量是跟着类走的,与你有几个对象无关。
、
而非static块会调用多次,没什么特别的:
运行结果:
再测试一下不同的普通块初始化的顺序:
结果,构造函数内的代码是最后执行的,前面的代码块从上往下执行:
Jar打包,Javadoc
不是很重要
总结
静态初始化代码块只执行唯一一次(加载类时)
普通的初始化代码块执行多次,从上到下!
除了本文总结的内容以为基本上都是寡话,任何一本书讲面向对象都是差不多的,还是在实际项目中体会吧!
个人心得:面向对象最牛逼的一点是IDE可以用这种方法给程序员提示,一“点”就点出所有可以进行的操作了!不用记那么多API,记几个关键的类就行了。