1.this 和 super 关键字的作用
this 是对象内部指代自身的引用,同时也是解决成员变量和局部变量同名问 题;this 可以调用成员变量,不能调用局部变量;this 也可以调用成员方 法,但是在普通方法中可以省略this,在构造方法中不允许省略,必须是构造方法的第一条语句,而且在静态方法当中不允许出现 this 关键字。
super 代表对当前对象的直接父类对象的引用,super 可以调用直接父类的成员变量(注意权限修饰符的影响,比如不能访问private 成员) super 可以调用直接父类的成员方法(注意权限修饰符的影响,比如不能访问 private 成员);super 可以调用直接父类的构造方法,只限构造方法中使
用,且必须是第一条语句
2.
static 关键字的作用
static 可以修饰
变量、方法、代码块和内部类
static 属性属于这个类所有,即由该类创建的所有对象共享同一个 static 属 性。可以对象创建后通过对象名.属性名和类名.属性名两种方式来访问。也可 以在没有创建任何对象之前通过类名.属性名的方式来访问。 static 变量和非 static 变量的区别(都是成员变量,不是局部变量)
1).在内存中份数不同
不管有多少个对象,static 变量只有 1 份。对于每个对象,实例变量都会有单独的一份static 变量是属于整个类的,也称为类变量。而非静态变量是属于对象的,也称为实例变量
2).在内存中存放的位置不同
静态变量存在方法区中,实例变量存在堆内存中 *
3).static 内部类:属于整个外部类,而不是属于外部类的每个对象。不能访问 外部类的非静态成员(变量或者方法),.可以访问外部类的静态成员
遇到的问题是js这一块逻辑还不太清晰