1 this关键字代表当前对象,即代指调用this所在方法的对象
2 this关键字的使用
当局部变量和成员变量重名的时候,可以考虑使用this来区分
3 this关键字的特点
a. 成员变量和局部变量重名的时候使用this
b. 创建任何一个对象时都会创建一个this引用并和对象指向同一个堆区的空间
c. this代表当前对象,可以理解为谁调用了this所在的方法,this就是谁
d. this只能够出现在类的内部
e. 默认访问类的成员都可以使用this来访问,如果访问成员没有书写this,默认系统会加上this
4 代码演示
public class ThisDemo {
public static void main(String[] args) {
Person s=new Person();//在Person类中创建s对象
s.display(10); // 使用 s 对象调用show()方法
}
}
class Person{
int age;
public void display(int age){
this.age=age; //当s对象调用show()方法时,this就代指s对象,所以this.age就等同于为s.age
}
}
1 super关键字的概念:的本质是父类存储空间的标识,可以理解为父类对象
2 super关键字的作用:帮助子类初始化父类继承下来的成员,简化编程
3 super关键字的用法:
①访问成员变量:super.成员变量;
②访问成员方法:super.成员方法;
③访问构造方法:super(参数列表);
4 注意事项
注意:
a 任何一个类的无参或者带参构造方法的第一句都默认省略 super();
b 任何一个类都直接或者间接继承自Object类
c 创建一个子类对象默认会去调用父类的构造方法
d 静态环境/静态上下文(static修饰的方法),不能够出现this和super
e super必须出现在构造方法的第一句
f this和super不能够共存
5 代码演示
class practic4 {
public static void main(String[] args) {
Son s=new Son(“张三”,18); // 创建s对象,访问父类带参构造并给父类成员变量赋初始值
}
}
class Father {
String name;
int age;
Father() {
super();
}
Father(String name, int age) { //通过父类的带参构造方法给继承到子类的成员变量赋值(初始化)
this.name = name;
this.age = age;
}
}
class Son extends Father {
Son() {
super();
}
Son(String name, int age) { //创建对象时访问该构造方法
super(name,age); // 此处访问父类带参构造方法
}
}