问答详情
源自:7-6 Java 中的成员内部类

外部类的this关键字用法

package two.com;


public class Demo02 {//外部类

public void show(){

System.out.println("你好!");

}

public class Demo002{//内部类

public void show(){

System.out.println("nihao!");

}

}

public static void main(String[] args) {

Demo02 hello=new Demo02();

Demo002 hello2=hello.new Demo002();

hello.this.show();

}

}

最后的hello.this.show();不对    请问应该怎么改正?

提问者:luxuhong 2016-10-25 17:35

个回答

  • Java初学者12138
    2016-10-25 17:49:19
    已采纳

    在main方法里想调用内部类的方法直接用 hello2.show();即可,想调用外部类的方法直接用hello.show();

    这里你的意思估计是想在内部类中 调用外部类的方法,用法是Demo02.this.show();

    具体代码如下:

    public class Demo02 {// 外部类

    public void show() {

    System.out.println("你好!");

    }


    public class Demo002 {// 内部类

    public Demo002(){

    Demo02.this.show();

    }

    public void show() {

    System.out.println("nihao!");

    }

    }


    public static void main(String[] args) {

    Demo02 hello = new Demo02();

    Demo002 hello2 = hello.new Demo002();

    /*hello.show();

    hello2.show(0;

    */

    }


  • 尤小贱
    2016-10-25 18:54:23

    this代表的是对象,this.方法()代表对象的方法。所以前面不用加对象名。你这里直接去掉this即可。

  • Cleaney
    2016-10-25 17:56:19

    首先this必须要放在方法中第一行才符合规范。还有你前面两个方法的规则也不对,语法没错,但是使用规则不对当然就不能用,首先你要理解this的概念,this的意思是方法中包含一个参数,本类中有一个属性的名称和参数是一样的,避免混淆才使用this区分开。  你这里不存在这种情况,所以不需要使用this