面向对象学习第二天知识点总结
一.单利模式
恶汉式
创建过程:
将构造方法私有化
创建一个static修饰的对象 给静态方法调用
创建一个static修饰的获取唯一一个对象的方法
class Singlton{
prvate static Singlton s = new Singlton();
prvate Singlton(){}
public static Singlton getInstance(){
return s;
}
}
懒汉式:
创建过程:
将构造方法私有化
创建一个static修饰的对象 给静态方法调用
创建一个static修饰的获取唯一一个对象的方法
class Singlton{
prvate static Singlton s = null;
private Singlton(){}
public static Singlton getInstance(){
if(s == null){
return new Singlton();
}
return s;
}
}
二 .static
1.static 修饰的变量和方法 变成了静态变量和静态方法
2.静态变量和方法随着类的创建而创建 随着类的销毁而销毁 先与对象的存在 被所用的对象共享
3.静态变量和方法可以用类名调用也可以用对象调用 推荐类名调用
4.static修饰的方法只能调用外部static修饰的变量或者方法 想调用不是static修饰的变量或者方法必须创建对象
三.代码块
1.静态代码块: static{ } 随着类的创建只被创建一次
2.构造代码块 :{} 每次创建对象都会被调用一次
3.局部代码块: 定义在方法中的一对{} 执行结束后立即释放资源
静态代码块 优先于 构造代码块 优先于 构造方法
四.继承的格式:
格式: 修饰符 子类名 extends 父类名{}
1.java中的继承只支持单继承 不支持多继承 但支持多层继承
2. 不能继承父类的私有成员
3.如果一个类没有继承 默认继承object类
五.继承中成员的查找优先级
成员变量:现在子类中查找 再去父类中查找 找不到报错
构造方法:子类的构造方法默认先执行父类的无参构造方法,如果父类中没有无参数的构造方法必须执行其他的构造方法
this(....) 调用本类的构造方法 super(....)调用父类的构造方法
且只能放在可执行代码的第一行执行
成员方法:先在子类中查找 再去父类中查找 找不早报错
六.方法的重载和重写
重载:一个类中可以存在多个名字相同的方法 但要保证参数的个数或者参数的类型不同 与返回值无关
重写:在存在继承关系的两个类中,子类中可以存在和父类一模一样的方法
重写的注意事项:
1.父类的私有方法子类不可以重写
2.子类重写父类放的访问权限不能更低
3.父类static修饰的方法。子类也必修用static修饰
七.final关键字
1.final修饰类不能被继承
2.final修饰的方法不能被重写
3.final修饰的变量为常量。
final修饰的成员变量需要在对象创建完成之前赋值 初始化赋值 构造代码块赋值 构造方法赋值
final修饰的基本数据类型 值不能改变
final修饰的引用数据类型 地址值不能改变 但是 可以修改里面的属性