知识点1 为什么用this?
第一, 当一个类的属性名和方法或构造器中的参数名相同的时候,用this来区别属性和参数
第二, 在一个类里,一个构造器调用另一个构造器(有多个重载的构造器)
a(int i){}; a(int I,int j){this(i);//调用了单参构造器};
知识点2 在一个源文件中可以中多个类,但是只能有一个public类
知识点3 supper的用法
第一, 可以调用父类的构造器
第二, 调用父类的属性和方法
知识点4 多态
什么是多态?同一个动作,不同的对象,有不同的行为
class A{
public void play(){
System.out.println(“A’s play”);
}
}
class B extends A{
public void play(){
System.out.println(“B’s play”);
}
}
class Test{
public void disPlay(A a){
a.play();
}
public static void main(String [] args){
Test t=new Test();
A a=new A();
A a1=new B();
t.disPlay(a);
t.disPlay(a1);
}
}
1. 在编译的时候,检查该引用的类型中有没有要调用的方法
2. 在运行的时候,看这个引用指向的是什么类型的对象,看该对象的类中有没有调用的方法,有的话调用(这里,如果是父类指向子类,父类中有该方法,那么子类继承,可以调用)
为什么用多态?1。复用 2。维护
如何实现多态?
1.声明一个父类
1.子类继承父类
2.他们的类中有个同名的方法,但是内容不一样
3.在主类中,方法的参数为父类的引用类型,里面调用他们的同名方法
知识点8 方法覆盖
1.方法名字相同
2.返回值相同
3.方法的参数相同
4.子类的方法数量不能减少
4.子类的异常不能扩大
知识点9 instanceof
辨别对象的类型,判断一个对象的类型是什么(a instanceof A)
知识点10 static
静态成员:包括静态属性,静态方法,静态块
静态属性:private static int a;
类的静态成员是在类的加载的时候初始化的,而且只能初始化一次
知识点11 类的初始化过程
1.初始化静态成员
2.初始化父类的属性(缺省值)包括语句块{ }
3.调用父类的构造器
4.初始化自身的属性
5.调用自身的构造器
知识点12 抽象类
类当中有抽象方法,用abstract修饰,成为抽象类,里面可以有方法的实现
知识点13 接口
可以实现多个接口,在方法中没有任何的实现
知识点14 final
不可改变的
定义一个常量:final int I=0; 如果这样写,就不能再给他赋值了
final int I;
构造器 (){I=0;}; 这样写就没有问题
final A a=new A(); 不能再给a new对象了,但是对象中的值还是可以修改的
静态常量必须声明赋值,final的不用
用static可以节省空间
final修饰的方法不能被覆盖
final修饰的类不能被继承
小技巧1 点类的前面的括号,按ctrl+Shift+p直接到类尾了
知识点15 接口(二)
1.方法都是抽象的方法
2.在接口里定义的属性都是public的
3.接口可以多重继承
知识点16 访问控制
在同一个包中,除了私有成员都可以访问
不同的包中只能访问公开的属性和方法
不同的包中子类能够访问公有和受保护的方法和属性