一、内部类
1、概念:类的里面定义的类
2、实例内部类:
非静态的成员内部类
Outer.Inner inner = new Outer().new Inner();
静态内部类
Outer.Inner inner = new Outer.new Inner();
局部内部类
方法里面定义的内部类
匿名内部类
只使用一次的类
new 抽象类/接口{
实现抽象类或者接口的方法
};
二、枚举:
1、概念:类的对象是确定的类
2、enum
三、Object
1、hashCode:哈希码,根据对象的地址求出来的
2、toString: 结果:包名.类名@算法(hashCode)
System.out.print(对象名);默认调用对象名.toString
子类都会重写toString,重写后一般都是输出属性值
3、equals:重点,对于Object来说,equals是比较地址的
==也是比较两个对象的地址
equals方法一般也会被子类重写,重写后主要比较的是属性值,同时确保比较的两个对象属于同一个类
4、clone
创建一个对象的副本
1、概念:类的里面定义的类
2、实例内部类:
非静态的成员内部类
Outer.Inner inner = new Outer().new Inner();
静态内部类
Outer.Inner inner = new Outer.new Inner();
局部内部类
方法里面定义的内部类
匿名内部类
只使用一次的类
new 抽象类/接口{
实现抽象类或者接口的方法
};
二、枚举:
1、概念:类的对象是确定的类
2、enum
三、Object
1、hashCode:哈希码,根据对象的地址求出来的
2、toString: 结果:包名.类名@算法(hashCode)
System.out.print(对象名);默认调用对象名.toString
子类都会重写toString,重写后一般都是输出属性值
3、equals:重点,对于Object来说,equals是比较地址的
==也是比较两个对象的地址
equals方法一般也会被子类重写,重写后主要比较的是属性值,同时确保比较的两个对象属于同一个类
4、clone
创建一个对象的副本