类中内部类中的方法访问外部类中变量的示例(转)

本文详细解析了Java中内部类与局部变量的作用域、访问规则及实例演示,通过具体代码展示了不同作用域下num变量的引用区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

lass Day10_11 { public static void main(String[] args) { Outer.Inner oi = new Outer().new Inner(); oi.print(); } } class Outer { public int num = 10; class Inner { public int num = 20; public void print(){ int num = 30; System.out.println(num);//本方法中的局部变量 System.out.println(this.num);//内部类中的成员变量 System.out.println(Outer.this.num);//外部类中的成员变量 } } } --------------------- 本文来自 TT海浅 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/u010698072/article/details/52093355?utm_source=copy

 

这里写图片描述 

如果只有一个num变量,那么完全就不用理会这么多了,直接num它就会自动搜索到 

 

在Python中,内部变量外部变量是两个不同的概念,分别用于不同的场景。 ### 内部变量 内部变量是指在定义内部定义的变量,这些变量属于本身或的实例。它们可以分为以下几种: 1. **变量**:在内部但在方法外部定义的变量变量是所有实例共享的变量。 2. **实例变量**:在的构造方法(`__init__`方法)中定义的变量。实例变量是属于每个实例的变量,每个实例都有自己的一份。 #### 示例代码 ```python class MyClass: class_variable = "I am a class variable" # 变量 def __init__(self, instance_variable): self.instance_variable = instance_variable # 实例变量 def print_variables(self): print("Class Variable:", MyClass.class_variable) print("Instance Variable:", self.instance_variable) # 创建的实例 obj1 = MyClass("I am instance variable 1") obj2 = MyClass("I am instance variable 2") # 访问变量和实例变量 obj1.print_variables() obj2.print_variables() # 修改变量 MyClass.class_variable = "Class variable modified" obj1.print_variables() obj2.print_variables() ``` ### 外部变量 外部变量是指在定义外部定义的变量。这些变量不属于的实例,而是属于全局或局部作用域。 #### 示例代码 ```python external_variable = "I am an external variable" # 外部变量 class MyClass: def print_external_variable(self): print("External Variable:", external_variable) # 创建的实例 obj = MyClass() # 访问外部变量 obj.print_external_variable() # 修改外部变量 external_variable = "External variable modified" obj.print_external_variable() ``` ### 总结 - **内部变量**:包括变量和实例变量变量是所有实例共享的,实例变量是每个实例独有的。 - **外部变量**:在定义外部定义的变量,不属于的实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值