1.类的组合关系
当一个类中的字段是一个类时,就称类依赖于字段这个类,也称这两个类为组合关系
2.快捷键:ctrl+shift+c,多行的//
ctrl+shift+/,多行的/-----/
3.类的加载:随着对象的创建而使用,并且只加载一次,再次使用时直接从内存中调用
3.static{ }静态代码块会随着对象的创建而使用,而且在编译时会首先调用public所在类中的静态代码块
4.继承弊端:可以被子类随意改动调用,暴露细节
final关键字:保证数据的安全性
可以修饰字段,方法,类
使用final之后
字段:不可以被修改
方法:不可以被覆盖
类:不可以被继承
5.final注意点:
final修饰字段时,字段是没有初始值,必须得自己手动输入初始值(定义的同时初始化)
final修饰变量时,就代表是一个常量,常量命名规则:所有字母都得大写MAX_VALUE,并且
每个单词之间要有下划线
flinal可以在局部代码块当中使用
final在修饰基本数据类型时,值是不能修改的。
在修饰引用数据类型(除String类型)时,地址是不能修改的。
创建对象的代码,代表的是堆中的对象地址赋值给栈中的变量。
所以代码中前面的同一个变量不可以再被赋值新的堆的地址
eg:
Dog dog = new Dog();
若有下列代码,则错。
dog = new Dog();
???????????????????????????????????????????????
6.设计模式:经过许多人推敲后的代码设计的经验总结
单例设计模式:
一个类在内存中只有一个对象
在开发过程中经常会有一个工具类(要反复使用,减少资源的浪费)
- 饿汉模式:一上来就创建一个对象
-创建并私有化一个对象(外界使用我这个对象时就是我创建的这个对象,不能改变)
-私有化构造器(防止外界通过构造器来创建这个类中新的对象)
-给外界一个方法可以使用这个工具
return方法
加上static ,工具就属于类了,调用时是类名.返回方法名
class ToolUtil{
private static ToolUtil instance = new ToolUtil();
private ToolUtil() {}
static ToolUtil getTool() {
return instance;
}
void sort() {
}
}
public class 单例设计模式_饿汉模式 {
public static void main(String[] args) {
ToolUtil too1 = ToolUtil.getTool();
ToolUtil too2 =ToolUtil.getTool() ;
System.out.println(too1.equals(too2));
ToolUtil.getTool().sort();
}
}
- 懒汉模式(使用时才创建对象)
7.再次重申。单例设计模式:一个类只有一个对象,对象必须由自己来创建,必须提供一个方法供外界来调用。
单例类优点:
控制资源的使用(结合多线程模式)
控制实例的产生数量, 节省资源
能够作为通信媒介,实现数据共享(大家都用同一个对象)
8.饿汉模式的单例是无法被继承的(把构造器私有化了,防止外界通过子类来为父类创建新的对象)
9.单例设计模式常用包名:tool/tools/util/utils
工具类:经常使用的功能(Arrays就是一个工具类)
10.工具类中一般都是设计成静态,直接类名调用就好
工具类中的方法如果没有静态,还可以设计成单例的形式,即通过对象来调用方法
如果工具中全部都是static修饰,那么必须把构造器私有化,(不让别人创建这个类的其他对象)防止外界通过创建对象来调用工具类中静态方法。