为什么java编程中同名的全局属性和局部属性,全局属性可以在局部属性之前定义而不可以在其后定义呢?

2026年09月24日 08:12
有4个网友回答
网友(1):

这不是定义在前在后的问题,外部的int x=100;也可以定义在之后,内部的int x=100也可以定义在之前,这是“作用域”的问题

外部作用域“会封入内部作用域”,对内部作用域是通明的,也就是说内部作用域可以访问外部作用域中的变量和方法

所以你在这两个{}之中定义的同名变量x会发生冲突,相当于你是同一个{}定义了两个相同变量

网友(2):

你的int x=100和int x=30都是局部变量,全局变量在方法的外面,你可以试着将int x=100放在第二行试试,前在加个static ,就这样写试试看:static int x=100;

网友(3):

首先,你第二个 int x 不是全局变量,而是是局部变量。全局属性是直接定义在类里面的(不在任何方法中),你的这两个x都是局部变量,而且重名,所以编译不能通过

网友(4):

你这两个都是局部变量,而且在一个方法里会显示重复定义,把INT x=30 前边的int去掉变为对x重新赋值就可以编辑过去了,不过之前的x=100就没意义了。