JAV——super、this关键字

一、this关键字

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

}

}

二 、super关键字

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); // 此处访问父类带参构造方法

}

}

你可能感兴趣的:(JAV——super、this关键字)