为了账号安全,请及时绑定邮箱和手机立即绑定

外部类的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();不对    请问应该怎么改正?

正在回答

3 回答

在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;

*/

}


0 回复 有任何疑惑可以回复我~
#1

Java初学者12138

这里我用了一个内部类的构造方法来运行内部类调用外部类方法。
2016-10-25 回复 有任何疑惑可以回复我~
#2

luxuhong 提问者

意思就是说 内部类想要调用外部类方法,必须在内部类里才可以吗?
2016-10-25 回复 有任何疑惑可以回复我~
#3

Java初学者12138 回复 luxuhong 提问者

你也说了,是内部类调用外部类方法。既然是内部类调用外部类方法,当然是在内部类里面了。
2016-10-25 回复 有任何疑惑可以回复我~
#4

luxuhong 提问者

非常感谢!
2016-10-25 回复 有任何疑惑可以回复我~
查看1条回复

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

0 回复 有任何疑惑可以回复我~
#1

luxuhong 提问者

非常感谢
2016-10-25 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

外部类的this关键字用法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信