21、super:指代当前对象的父类对象、构造子类之前必须先构造父类
T(int row, int col){
super();//调用父类的无参构造方法
cells[0]…
}
1:super.成员变量名-----访问成员变量
2:super.方法名------------访问方法
3:super.()-------------------调用无参构造方法
super调用父类构造,必须位于子类构造的第一句,即上述的cell必须在super下面。
这样可以妥善地初始化继承自父类的成员变量
父类必须要有无参构造函数
22、不是一次判断得结果的就用开关,但是效率低,扩展性好
23、向上造型
如果没有使用父类对象引用,那么在调用父类为参数的方法的时候,系统会自动帮我们在传值的时候自动造型
能点出来什么,看引用的类型,引用是等号左边的类型
24、父类、基类
子类、派生类
25、重写:
发生在父子类中,方法名相同,参数列表相同
重写方法被调用时,看对象的类型 父类大、子类小
原始之上的功能再添加,那么配合super
遵循”两同两小一大“:
两同:方法名称相同、参数列表相同;
两小:子类的返回值类型小于或等于父类的、子类抛出的异常小于或等于父类的。void和基本类型时,必须相同、引用类型时必须小于等于父类的方法,一般一模一样;
一大:子类方法的访问权限大于等于父类的
26、重写和重载的区别
重载:一个类中,方法名相同、参数列表不同,方法体不同
遵循”编译期“的绑定,根据引用的类型绑定方法
重写:父子类中,方法名相同,参数列表相同,方法体不同
遵循“运行期“的绑定,根据 对象的类型调用方法
27、package/import:
package:域名反写 . 项目名称 . 模块名称 . 类名
import :同包中可以直接使用,
不同包不可以,但是可以使用包的全称
import 过来就可以直接使用了
28、数据私有化(private,只在该类可用)、行为公开化
protected:可以被子类以及同一个包中的类使用
不写:本类,同包类
类的访问修饰:public或不写
类成员即上述的protected,public、private
protected和private可以修饰内部类
29、static 和main并列的方法加static,不并列则不加static main无this,而必须要通过对象来访问,方法,当加上static时,不需要对象,而是通过类来访问,默认加上类名.
成员变量:
1:实例变量:
1)属于对象的,存在于堆中
2)有几个对象就有几个实例变量
3)必须通过对象名.来访问
2:静态变量
1)属于类的,存在于方法区中
2)只有一份
3)常常通过类名.来访问
4)何时用:所有对象的数据都一样的时候使用
5)不属于对象,属于类
静态方法:
前三点和static 相同
4)无隐式的this传递。无this即意味着没有对象,实例变量需要通过对象来访问,所以静态方法中不能直接访问实例成员
5)何时用:方法的操作仅与操作相关而无对象无关 类名访问的是静态方法
静态块:
类的代码块,类加载期间指向,方法区中,多次调用只会加载一次,即执行一次static中的内容,属于类
何时用:加载静态资源(图片、音频)
30、final
1)修饰变量:变量不能被改变
2)修饰方法:方法不能被重写 **意义:**防止子类在定义新方法时造成“不经意”的重写
3)修饰类:不能被继承 String、Math等类即为final类
成员变量:初始化1)声明的同时初始化 final int a = 5;2)构造方法中初始化
局部变量:用之前初始化即可,不用可以不赋值…