发布网友 发布时间:2022-05-22 20:06
共2个回答
热心网友 时间:2023-09-11 09:47
可以通过把一个类定义为public static,把类成员变量也定义为public static,使该变量在内存中占用固定、唯一的一块空间,来实现全局变量的功能.现在的面向对象语言由于变量都是封装在类里面的,对别的类不可见,所以已经几乎完全抛弃了全局变量的概念追问在做编程联系的时候,只有一个public类,如果要在main方法之前定义变量的话,有时候必须加上static,不然编译报错,有时候却不用加,这是为什么呢?O(∩_∩)O谢谢啦追答我明白你什么意思了.你报的错是不是无法从静态上下文中引用非静态变量?因为你的main方法是static的,因此如果想用main方法直接去调用方法或者属性的话必须是static的.当然,如果实例化出一个对象的话,那么定义的变量就可以不是static的.
举个例子:
public class Test{
static int i;
public static void main(String[] args){
System.out.println(i);
}
}
这种情况直接使用变量的话需要是static的,否则就会报错无法从静态上下文中引用非静态变量.
另外一种情况:
public class Test{
int i;
public static void main(String[] args){
System.out.println(new Test().i);
}
}
这种情况定义的变量不需要static,因为你new了一个Test类的实例,所以可以直接去调用Test的属性跟方法.
关于你碰到的问题,我觉得其实就是以上的原因.
热心网友 时间:2023-09-11 09:47
定义常量 static final