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);
}
}
怎样才能输出非静态的那个呢?作者: 黄或俊 时间: 2012-4-24 09:48
static的方法只能访问静态成员(成员变量、成员函数)
因为static随着类的加载而加载作者: Friends★ 时间: 2012-4-24 09:58
静态方法不能访问非静态成员。
修改后的代码
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);
}
Friends★ 发表于 2012-4-24 09:58
静态方法不能访问非静态成员。
修改后的代码
public class Shit {
如果改为
Shit s = new Shit();
System.out.println(s.i);
这样可以么?作者: 王运科 时间: 2012-4-24 10:08
类中非静态成员变量是在创建对象后才能调用的,需要创建对象后进行调用,代码如下;
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);
}
} 作者: Friends★ 时间: 2012-4-24 10:13
于潇 发表于 2012-4-24 10:01
如果改为
Shit s = new Shit();
System.out.println(s.i);
呵呵……可以的,和我那个是一个意思!只是我的那个是一步完成,你这种是分开来写的。作者: 邱俊杰 时间: 2012-4-24 11:32
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);
}
} 作者: 彭威 时间: 2012-4-24 13:10
你的 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);
}
}