同名屏蔽原则

同名屏蔽原则是指当内层作用域定义了与外层作用域同名的变量时,内层变量会“遮蔽”外层变量,使得在该作用域内直接使用该变量名时,访问的是内层定义的变量,而非外层的同名变量。
这一原则的核心是“就近原则”——编译器优先使用作用域更近的变量。

主要场景与示例:
1.局部变量屏蔽成员变量--方法内的局部变量会屏蔽类的成员变量
image
image

2.嵌套代码块中的变量屏蔽--在内层代码块(如if、for、独立的{}块)中声明的变量会屏蔽外层的同名变量
image
image

3.内部类中的变量屏蔽--内部类中的同名变量会屏蔽外部类的成员变量,访问被屏蔽的变量需要使用限定名
image
image

4.继承中的变量隐藏--子类定义与父类同名的成员变量时,子类的变量会隐藏父类的变量
image
image

注:
·同一作用域内不允许重复声明同名局部变量,编译器会直接报错,如例2
·变量屏蔽虽然语法合法,但容易引发逻辑错误,建议尽量避免遮蔽成员变量。
·访问被屏蔽的变量时,实例变量用this,静态变量用类名,父类变量用super来明确指定

posted @ 2026-09-24 18:23  Sunlighting  阅读(14)  评论(0)    收藏  举报