1:this /** * this关键字用来访问本类内容也有三种: * 1:在本类成员方法中,访问本类的成员变量。 * 2:在本类成员方法中,访问本类的另一个成员方法。 * 3:在本类成员方法中,访问本类的另一个构造方法。 * this(...);也必须是构造方法的第一个语句,唯一一个。 * super和this两种构造调用不能同时使用。 */ public class This001 { public static void main(String[] args) { Mii mc = new Mii(); mc.muc(); mc.mmm(); } } class Mcc { int aa = 30; } class Mii extends Mcc { int aa = 10; public Mii(){//无参构造 this(100);//本类当中的无参构造,调用本类当中的有参构造。 } public Mii(int s){//有参构造 System.out.println(s); } public void muc() { int aa = 20; System.out.println(aa);//局部变量 System.out.println(this.aa);//访问本类当中的成员变量 System.out.println(super.aa);//访问父类的成员变量 } public void cmm(){ System.out.println("看一看"); } public void mmm(){ this.cmm();//访问本类的另一个成员方法。 System.out.println("瞧一瞧"); } }
2:super
/** * 父类super关键字的用法有三种; * 1:在子类的成员方法中,访问父类的成员变量。 * 2:在子类的成员方法中,访问父类的成员方法。 * 3:在子类的成员方法中,访问父类的构造方法。 */ public class Super001 { public static void main(String[] args) { Lzi mc = new Lzi(); mc.moth(); mc.sb(); } } class Lfu{ int ac = 20;//成员变量 public void sb(){//成员方法 System.out.println("你在狗叫什么"); } public Lfu(){//构造函数 System.out.println("wc"); } } class Lzi extends Lfu{ int ac = 30; public void moth(){ System.out.println(super.ac);//访问父类的成员变量。 System.out.println(ac);//访问子类的成员变量。 } public void sb(){ super.sb();//访问父类的成员方法。 System.out.println("你在看什么");//访问子类的成员方法。 } public Lzi(){//构造函数 super();//调用父类的构造函数 System.out.println("mc"); } }