#this关键字使用方法代码分析
package basic.Filea;
/**
* this的介绍
* this是一个引用,this变量保存了内存地址指向自己
* 每一个对象都有一个this
* this不能出现在static静态方法中
* 1.this的使用方法有三种
* a、在本类成员方法中,访问父类成员变量
* b、在本类成员方法中,访问本类的另一个成员方法
* c、在本类构造方法中,访问本类的另一个构造方法
* 在c中,this()必须是构造方法第一行,唯一一个
* super()和this()调用不能同时使用,因为他们都是唯一的
*/
public class Zi extends Fu{
int a=9;//成员变量
public Zi() {
// this(); 自己调用自己,错误写法
this(11);//本类的无参构造,调用本类的有参构造
/** this(...) 必须是第一个调用唯一一个,同super()
super和this不能同时使用
构造方法第一行没有this()也没有super(),系统默认有一个super();
*/
}
public Zi(int a) {
System.out.println(a);
}
public void Aone() {
int a=1; //局部变量
System.out.println(a); //1
System.out.println(this.a); //9 访问本类的成员变量
}
public void Bone(){
System.out.println("Aone!!!");
}
public void Btwo() {
this.Aone(); //访问本类的成员方法
//this可省阅,有着强调字面作用
System.out.println("Btwo!!");
}
}
#super关键字的使用方法解析
package basic.FileElse;
/**
* super关键字介绍
* super不能使用在static静态方法中
* super()只能出现在构造方法第一行,通过当前构造方法调用父类构造方法
* super关键字使用方法
* a、在子类的成员方法中,访问父类的成员变量
* b、在子类的成员方法中,访问父类的成员方法
* c、在子类的构造方法中,访问父类的构造方法
*/
public class Zi extends Fu{
int num=10;
public void setNum(){
System.out.println(num);//本类中的num
System.out.println(super.num);//父类中的num
}
public void moth(){
super.moth(); //访问父类中的moth()方法
System.out.println("子类方法!!");
}
public Zi(){
/**构造方法第一行没有this()也没有super(),系统默认有一个super();
* 自己看不见
*/
}
}
package basic.FileElse;
public class Fu {
int num=111;
public Fu() {
System.out.println("父类构造方法1启用");
}
public Fu(int num) {
this.num = num;
System.out.println("父类构造方法2启用");
}
public void moth(){
System.out.println("父类方法!");
}
}