public class Shit {
public int i=2;
public static int j=3;
public static void main(String[] args) {
System.out.println(i);//有错
System.out.println(j);
}
你的 i 属于shit类里面的 非静态成员, 要想调用的话必须建立一个对象;才能用
可以这样:
public class Shit
{
public int i=2;
public static int j=3;
public static void main(String[] args)
{
System.out.println(new Shit().i );
System.out.println(j);
}
}
public class Shit {
public int i=2;
public static int j=3;
public static void main(String[] args) {
System.out.println(i);//有错 楼主注意,int不是静态。主函数是静态的。所以静态不能直接访问非静态变量 i 的,可以改成静态或者创建对象调用
System.out.println(j);
}
}
类中非静态成员变量是在创建对象后才能调用的,需要创建对象后进行调用,代码如下;
public class Hello{
public int i=2;
public static int j=3;
public static void main(String[] args){
Hello h=new Hello();
int n=h.i;
System.out.println(n);
System.out.println(j);
}
}
静态方法不能访问非静态成员。
修改后的代码
public class Shit {
public int i=2;
public static int j=3;
public static void main(String[] args) {
System.out.println(new Shit().i );//这样就不会有错了
System.out.println(j);
}