[求助] 如何在内部类里调用内部类自身的成员变量?

qq-dabins 2008-05-09 08:32:17
class Father {
int id;
class Son {
int id;
void changeId() {
id = 10;
}
}
}

请问内部类Son里的changeId方法是给Father的id赋值?还是Son的id ?
如果是给Father的id赋值,那么如何在changeId方法中调用Son的id呢 ?
...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
KKK2007 2008-05-09
  • 打赏
  • 举报
回复
改变的是son的id
anqini 2008-05-09
  • 打赏
  • 举报
回复

package csdn;

import java.util.ArrayList;
import java.util.HashMap;

public class Father {
int id=1;
class Son {
int id;
void changeId() {
this.id = 10; //这里引用是指s
Father.this.id = 20;/这里指的是f引用!
}
}
public static void main(String[] args) {
Father f = new Father();

Father.Son s = f.new Son();
s.changeId();

System.out.println(s.id);
System.out.println(f.id);
}
}


这个程序很明确的,
qq278095755 2008-05-09
  • 打赏
  • 举报
回复
1楼正解
pengdayong 2008-05-09
  • 打赏
  • 举报
回复
class Fa {
int id=2;
class Son {
int id=3;
void changeId() {
id = 10;
}
}
}

class Father{

public static void main(String []args){
Fa fa = new Fa();

Fa.Son son = fa.new Son();
System.out.println(fa.id);//2
fa.id = 5;
System.out.println(fa.id);//5
System.out.println(son.id);//3
System.out.println("///////");
son.changeId();
System.out.println(fa.id);//5
System.out.println(son.id);//10

}
}
jdlsfl 2008-05-09
  • 打赏
  • 举报
回复
class Son {
int id;
void changeId() {
id = 10;
}
这个只是改变Son的id

Father的id在Son类中要用这样的方法:Father.this.id


楼上正解
bootupnow 2008-05-09
  • 打赏
  • 举报
回复
对比一下,就清楚了,看看讲内部类的章节吧。

public class Father {
int id = 1;

class Son {
int id = 2;

void changeId() {
id = 10;
System.out.println("Son's = " + id);

Father.this.id = 20;
System.out.println("Father's id = " + Father.this.id);
}
}

public void show(){
Son s = new Son();
s.changeId();
}

public static void main(String[] args){
Father f = new Father();
f.show();
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧