RT!入门级问题:
public class learn2{//声明一个类。类命名规范:所有单词的首字母大写
double d1=1.3456; //注意double后面不需要加d!!
double d2=1e3;
public static void main(String[] args){ //主方法 System.out.println(d2); }
};javac的时候报告
无法从静态上下文中引用非静态 变量 d2
求问这是为什么呢???

解决方案 »

  1.   

    谢谢,还是不行。learn2.java:11: 需要 <标识符>
    double static d2=1e100;
                    ^
    2 错误
      

  2.   

    static 放前面  如 
    public static void main(String[] args){}
      

  3.   

    把static 放到 double前面就可以了,如下:public class learn2{//声明一个类。类命名规范:所有单词的首字母大写
    static double d1=1.3456;    //注意double后面不需要加d!!
    static double d2=1e3;
        public static void main(String[] args){    //主方法     System.out.println(d2);     }
    };
      

  4.   

    呵呵,你的main方法是用static修饰的,你的d2却是非静态的属性,书上肯定有写:java中无法在静态方法中访问非静态变量吧
      

  5.   

    两种选择,要么public class learn2 {// 声明一个类。类命名规范:所有单词的首字母大写    double d1 = 1.3456; // 注意double后面不需要加d!!
        double d2 = 1e3;    public static void main(String[] args) { // 主方法        System.out.println(new learn2().d1);
        }
    }
    要么public class learn2 {// 声明一个类。类命名规范:所有单词的首字母大写    static double d1 = 1.3456; // 注意double后面不需要加d!!
        static double d2 = 1e3;    public static void main(String[] args) { // 主方法        System.out.println(d1);
        }
    }
      

  6.   

    至于为什么无法从静态上下文中引用非静态变量Java语法的要求,没有更多的为什么!回答完毕,谢谢!  :-)