你没有实例化你的对象!
public class FindLaws{ 
   public FindLaws(){}
   public int getNum(int i) {
//
  }
   public static void main(String[] args){
       FindLaws fl=new FindLaws();
       //.............fl.getNum()
  }
}

解决方案 »

  1.   

    import java.io.*;public class FindLaws{  public int getNum(int i) {   
            int str;
            str = i * i;
            if (str >= 10) {
                str = str / 10 + str % 10;
            }
            if (str >= 10) {
                str = str / 10 + str % 10;
            }
            return str;
      }                   
            public static void main(String[] args){
     
      FindLaws fl=new FindLaws();
     
            for (int i = 1; i < 10; i++) {
                String lineStr = "";
                int l1=0,l2=0,l3=0,l4=0;
                l1 = i;
                l2 = fl.getNum(l1);
                l3 = fl.getNum(l2);
                l4 = fl.getNum(l3);
                lineStr =String.valueOf(l1) + ":" +
                    String.valueOf(l1) + " " +
                    String.valueOf(l2) + " " +
                    String.valueOf(l3) + " " +
                    String.valueOf(l4);
                System.out.println(lineStr);
            }
            

        }
        
         
    }这样搞定了!
      

  2.   

    没想到galewithwing(漂流的风) 先我一步,晕!
      

  3.   

    各位,我知道那样实例化能解决问题
    我现在就是想把整个程序都写在main中,就象我的原程序一样
    怎么会出现那样的错误呢
    我只是想把原程序修改好
      

  4.   

    main方法必须包含在一个class中!想把整个程序都写在main中是错误的。
      

  5.   

    你想把getNum()也放到main()中么?我觉得这样做是不对的吧。
      

  6.   

    下面的例子编译没问题,足以反驳上面有些人的观点
    (不过,这个程序也有点小问题,大家顺便帮我解决一下,没分了,没办法)import java.io.*;public class Average{
       public static void main( String args[ ] ) throws IOException
       {
        int counter, grade, total, average;
       
       
        total=0;
        counter=1;
       
       
        while( counter <=10 ){
        System.out.print("Enter letter grade: " );
        System.out.flush();
        grade = System.in.read( );
       
        if( grade=='A' )
        total = total+4;
        else if(grade == 'B' )
        total = total+3;
        else if(grade == 'C' )
        total = total+2;
        else if(grade == 'D' )
        total = total+1;
        else if(grade == 'F' )
        total = total+0;
       
        System.in.skip( 1 );
        counter = counter + 1;
        }
       
       
        average = total/10;
        System.out.println( "Class average is "+average );
    }
    }
      

  7.   

    怎么个反驳?main也算是一个方法的,一个方法中又定义了一个方法getNum()当然出错了。
      

  8.   

    楼主,你要反驳的是哪些观点呢?怎么可能在一个方法里面定义另一个方法呢?搞不懂。难道你的意思是要在一个方法里面调用另一个吗?其它方法可以,在main()里是不可能的,你可以去看一下main的介绍。
      

  9.   

    import java.io.*;public class FindLaws{ 
        public int getNum(int i) {     
            int str;
            str = i * i;
            if (str >= 10) {
                str = str / 10 + str % 10;
            }
            if (str >= 10) {
                str = str / 10 + str % 10;
            }
            return str;
       }
       public static void main(String[] args){
            FindLaws FL = new FindLaws();
        for (int i = 1; i < 10; i++) {
            String lineStr = "";
            int l1,l2,l3,l4;
            l1 = i;
            l2 = FL.getNum(l1);
            l3 = FL.getNum(l2);
            l4 = FL.getNum(l3);
            lineStr =String.valueOf(l1) + ":" +
                String.valueOf(l1) + " " +
                String.valueOf(l2) + " " +
                String.valueOf(l3) + " " +
                String.valueOf(l4);
            System.out.println(lineStr);
        }
      }                   
    }
    写在main外面,然后建立对象就可以了。
      

  10.   

    另外的那个程序有些不大明白,是不是你断章取义了?grade是int型的,如何和字符型的数据进行比较呢?是不是有判断grade值的一段程序,用来控制输出'A','B','C'...呢?而且也不明白你统计了个什么?迷茫了
      

  11.   

    fivehun(菜鸟) ,第二个程序其实就象是计算平均分,
    A 4分
    B 3
    C 2 
    D 1
    F 0
    输入十个字母,算出平均分
    那个程序是书上的,编译的时候没问题,但运行时出错,但也不知道为什么错啦
      

  12.   

    除了什么问题啊?另外,if( grade=='A' )
        total = total+4;
        else if(grade == 'B' )
        total = total+3;
        else if(grade == 'C' )
        total = total+2;
        else if(grade == 'D' )
        total = total+1;
        else if(grade == 'F' )
        total = total+0;
    ==> 可以改成total += 'F' - grade;
      

  13.   

    javac    没问题
    java后输入第一个数据回车后出错如下:
    D:\Java>java Average
    Enter letter grade: A
    Enter letter grade: Exception in thread "main" java.io.IOException: 句柄无效。
            at java.io.FileInputStream.skip(Native Method)
            at java.io.BufferedInputStream.skip(Unknown Source)
            at Average.main(Average.java:32)请问这是怎么回事???多谢啦
      

  14.   

    public int getNum(int i) ->public static int getNum(int i)
      

  15.   

    那个算平均分的,虽然不明白是做什么用的,但skip(1)应改为skip(2),回车换行是两个byte。