java中静态方法只能访问静态成员为什么main方法前面有static没什么还可以访问飞静态成员呢
静态方法不可以访问非静态成员变量的。因为静态方法在类没有创建对象前就已经存在了,而类中的成员变量是要创建对象后才有的,
所以不能使用非静态成员变量。你可以去试试就知道了。定义在main方法里面的变量是叫局部变量,不是成员变量。
不可以访问,除非实例化。
class Program
{
int i;
static void Main()
{
int x = i; // error
}
}
你说的可以,应该代码是这样的:
static void Main()
{
Program p = new Program();
int x = p.i; // ok
}
不可以,自己可以试试
静态方法不可以访问非静态成员变量的。因为静态方法在类没有创建对象前就已经存在了,而类中的成员变量是要创建对象后才有的,
所以不能使用非静态成员变量。你可以去试试就知道了。定义在main方法里面的变量是叫局部变量,不是成员变量。
这个静态非静态的以前我们老师举个一个例子,这样就很好理解了:静态就是班费,非静态就是你自己的钱,班级活动肯定是用班费,
让你一个人出钱肯定不愿意,而你要买什么,用班费的话,同学们呀不同意了。