1、了解Object类中的equals() 和 toString()
String、Integer类中的equals()
父类: 基类
子类: 派生类
Object 类是所有类的父类.
String类中的equals()比较的是两个对象所指的内容是否相等。
Integer类中的equals()比较的是两个对象所指的内容(值)是否相等。
问:String str = new String("hello");创建了几个对象?
两个对象,一个是堆里面new出来的对象,一个是String池中放入的对象。
2、访问修饰符
private 修饰成员变量、方法:只能在类的内部被访问
构造函数私有 怎么解决?=====>单例模式
单例模式:对象只有一个。 private + static
1.构造函数私有
2.静态、同步的方法,返回该类的对象(在方法体中对对象个数进行判断处理)
注意:synchronized 同步(锁)、安全的,效率低,只有当方法执行完毕,当前对象才会释放锁
3、覆盖(重写 override) overload重载
1、 存在子父类关系
1 、构成覆盖
2 、父类的 引用(对象)引用的是子类的对象。换句话说,把子类的对象当作父类的对象来使用。
3 、导致的结果:调用的永远是子类方法。
5、final关键字
final 修饰成员变量:必须赋初值,并且不可以改变它的值,相当于定义了一个常量。
修饰引用变量,地址不变,值可以改变
成员方法:此方法不能被覆盖
类:此类不能被继承
final 是唯一能够修饰局部变量的修饰符
内部类访问外部类的非成员变量(局部变量),必须用final修饰
问:final、finally、finalize分别用在哪里?
6、is-a: extends
has-a:如果一个类A对另一个类B的实例进行引用。A has-a B
instanceof 运算符 判断对象是否属于类 返回boolean
7、子父类的情况,类的初始化顺序
String、Integer类中的equals()
父类: 基类
子类: 派生类
Object 类是所有类的父类.
输出一个对象:类名@内存地址,就相当于输出这个对象toString()返回值;
equals() 比较的是什么??
Object类中的equals()比较的是两个对象的地址是否相等。String类中的equals()比较的是两个对象所指的内容是否相等。
Integer类中的equals()比较的是两个对象所指的内容(值)是否相等。
问:String str = new String("hello");创建了几个对象?
两个对象,一个是堆里面new出来的对象,一个是String池中放入的对象。
2、访问修饰符
private 修饰成员变量、方法:只能在类的内部被访问
构造函数私有 怎么解决?=====>单例模式
单例模式:对象只有一个。 private + static
1.构造函数私有
2.静态、同步的方法,返回该类的对象(在方法体中对对象个数进行判断处理)
注意:synchronized 同步(锁)、安全的,效率低,只有当方法执行完毕,当前对象才会释放锁
3、覆盖(重写 override) overload重载
1、 存在子父类关系
2 、父类的方法在子类中有了新的实现(子类方法改变了父类方法的实现)
问: overload 与 override 的区别?
4、动态绑定(多态性)1 、构成覆盖
2 、父类的 引用(对象)引用的是子类的对象。换句话说,把子类的对象当作父类的对象来使用。
3 、导致的结果:调用的永远是子类方法。
5、final关键字
final 修饰成员变量:必须赋初值,并且不可以改变它的值,相当于定义了一个常量。
修饰引用变量,地址不变,值可以改变
成员方法:此方法不能被覆盖
类:此类不能被继承
final 是唯一能够修饰局部变量的修饰符
内部类访问外部类的非成员变量(局部变量),必须用final修饰
问:final、finally、finalize分别用在哪里?
6、is-a: extends
has-a:如果一个类A对另一个类B的实例进行引用。A has-a B
instanceof 运算符 判断对象是否属于类 返回boolean
7、子父类的情况,类的初始化顺序