java 变量的作用域

来源:百度知道 编辑:UC知道 时间:2024/05/25 05:40:49
public class HW{

int j=234;

public static void main(String args[]){
int i=123;
System.out.println(i);
System.out.println(j);
}
}
能打印出j吗?

兄弟,好好看看java基础吧.
java中得main函数不管写在哪个类中,它都是独立得部分,不能因为它写在了一个类中,就可以像其它函数那样调用当前类的方法和字段.
静态字段和方法也不能不加类名来调用.
你得代码可以有n中改法,我写两种你看看.
第一种
public class HW{

int j=234;

public static void main(String args[]){
int i=123;
HW hw = new HW();
System.out.println(i);
System.out.println(hw.j);
}
}

第二种
public class HW{

public static int j=234;

public static void main(String args[]){
int i=123;
System.out.println(i);
System.out.println(HW.j);
}
}

这段代码 编译都不会通过吧

因为 你在声明 变量j 的时候前面不是用的 static

那么 你在static方法 例如 main方法里引用的话
你就要这样
HW h = new HW();
System.out.println(h.j);

一楼正解,静态方法里面引用的外部变量必须也是静态的

不行,int j这一句你要么放到int i这一句的下面,要么把int i声明成private static int j=234;否则会报非静态变量放到静态函数的错误

打不出啊,建议去看看thinking java