发现自己的编程能力下降了,这么简单的一个程序,也不能调试好 public class Metric{
     int a=1;int b=2;int c=0;    
     c = a+b;
public static void main(String[] args){
       System.out.println(c);
    }    
    
    }
   上面的程序错在哪里

解决方案 »

  1.   

    吐了。
    c=a+b只能在方法内执行,或者在static代码块中执行,或者这样定义:int c = a+b;另,c为非static,所以不能在static 的 main方法中直接调用
    我这是怎么了,怎么又在CSDN留言了,没脸
      

  2.   

    不太清楚怎么说,比如非static的c出现在了static代码块中了,还有c = a+b;这种语句至少要写一个块中(如果不写在函数中的话):
    {
       c = a+b;
    }
      

  3.   

    要理解、我刚开始接触java的时候比楼主还惨。
      

  4.   

    闲着无聊,写了下面的代码,别无他意,只希望对楼主有用。
    public class Metric {

    //类内部-方法外部(四种代码形式)

         int i = 100; //1全局变量
         static int  j = 100; //2静态变量
         {
         //3构造块
         int k = 100;
          }
          static{  //4静态块
          int l = 100; 
           }

            //c = a+b;要放就放在{}、static{}内部不然就要放在方法内部
            //另外还涉及到static方法不能调用非static变量、方法的规则

    public static void main(String[] args){ //main方法程序的入口
    //System.out.println(i); //错误、i为非static变量
    System.out.println(j); //正确、j为static变量
    }
    }
      

  5.   

    public class Test1 {
      static int a=1;
      static int b=2;
      static int c=0;   
    public static void main(String[] args){
        c=a+b;
        System.out.println(c);
    }   
    }
    这样改就对了。
    以前那样错在:静态方法中不能调用非静态的变量;而且,一个类中只能有属性和方法,“c = a+b;”这句写得什么都不是...希望对你有用,好好加油
      

  6.   

    谢谢朋友们提醒我,我终于清醒了,看了几秒钟,就把它改对了。
    //Metric.java 
    public class Metric{
     
         public static void main(String[] args){
             int a=1;
             int b=2;
             int c=0;   
             c = a+b;          System.out.println(c);
    }   
        
      }
      

  7.   

    a,b,c必须是static而且c=a+b这种代码智能出现在方法中
      

  8.   

    跟着错误提示 或者Debug一下 不就可以知道错在那里了么 呵呵遇到问题 还是要先自己好好思考哦 
      

  9.   

    a,b,c都是Metric的属性 ,c = a+b能直接在方法外面执行么?main函数是静态的,c是非静态的,不能对非静态字段直接做静态引用