this 和super关键字
Posted yang-1yang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了this 和super关键字相关的知识,希望对你有一定的参考价值。
一、this 关键字
this关键字代表的就是函数所属的调用者。this关键字的作用:
1.如果存在同名的成员变量与局部变量时,在方法内部默认的时访问的时局部变量,可以通过this关键字调用成员变量
2.在一个构造方法中调用另一个构造方法来初始化对象
this关键字要注意的事项
1.存在同名的成员变量与局部变量时,在方法内部默认会调用局部变量
2.如果在一个方法中访问一个变量,该变量存在成员遍历的情况下,,jav会默认在改变量前面添加this
二、super:
super 关键字主要是用于实现父类的成员变量,用于当前对象的父类的 应用。
super关键字的主要作用是:
1.当子类和父类存在同名的成员变量是,如果要访问的是父类的成员变量和构造方法是,需要super关键字来调。
2.通过super关键字来调用父类的构造方法
super关键字调用父类构造方法要注意的事项:
1.如果在子类的构造方法上没有指定用父类的构造方法,那么java编译器会在子类的构造方法上面加上super()关键字。
2.super关键字调用父类的构造函数时,该语句必须是子类构造函数中的第一个语句。
3.super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都要排在第一个语句
代码如下:
package com.homewor;
class Students{
private String name;
private int age;
private String address;
public Students(String name, int age, String address) {
super();
this.name = name;
this.age = age;
this.address = address;
}
public Students() {
super();
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Students [name=" + name + ", age=" + age + ", address=" + address + "]";
}
public void Stdeny(){
System.out.println("把自己的心静静下来,好啊好啊的的休息好好的学习,");
}
}
public class StudentTest {
public static void main(String[] args) {
Students s=new Students();
s.setName("nama ");
s.setAge(100);
s.setAddress("tainajin");
s.Stdeny();
}
}
以上是关于this 和super关键字的主要内容,如果未能解决你的问题,请参考以下文章