如何在局部内部类中访问外部类的局部变量

2025-01-07 05:29:32
推荐回答(3个)
回答(1):

在Java中,方法的局部变量位于栈上,对象位于堆上。因为局部变量的范围被限制在该方法内,当一个方法结束时,栈结构被删除,该变量消失。但是,定义在这个类中的内部类对象仍然存活在堆上,所以内部类对象不能使用局部变量。除非这些局部变量被标识为最终的。final int i=8;就可以

回答(2):

如果局部(私有)变量有set和get方法的话,可以赋值和进行值读取,如果没有这两个方法的话,那么外部类没法赋值的。
举例:
类User:
public class User {
private String username ;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
此时在类B中就可以通过
User user = new User();//创建对象
user.setUsername("zhangsan");//赋值
user.getUsername();//获取到值

回答(3):

使用
NeiBuLei2.this.i 在内部类中访问外部类实例变量