0

当我编译程序时,我的“转换”类实例返回此错误。

import java.util.Scanner;

public class Convert {

    private class Conversion{

        public String getConversion(int inchInput) {
            int yards = (inchInput - (inchInput % 36)) / 36;
            int feet =  (inchInput % 36) - ((inchInput % 36) % 12);
            int inches = (inchInput % 36) % 12;

            return yards + "yards, " + feet + "feet, and " + inches + "inches.";
        }

    } // end of class Conversion

    public static void main( String[] args ) {
        Scanner scanner = new Scanner(System.in);
        int inchInput;
        Conversion conversion;
        conversion = new Conversion();

        // prompt
        System.out.println("Please enter an amout of inches (integer): ");
        inchInput = scanner.nextInt();
        String output = conversion.getConversion(inchInput);
    } // end of method main()
} // enf of class Convert
4

4 回答 4

2

Conversion是内部类Convert。所以你不能直接访问它。
您需要Conversion像这样创建对象。

Convert convert =new Convert();
Conversion conversion;
conversion = convert.new Conversion(); 

或声明Conversion为静态

 class Convert {
   private static class Conversion{
     ...............
      ............
  }
}

并像这样创建Conversion对象

Conversion conversion = new Convert.Conversion();
于 2013-09-09T13:34:49.497 回答
2

Conversion创建类,static以便有一个可访问的封闭类实例

private static class Conversion {
  ...
}
于 2013-09-09T13:35:40.470 回答
1

将类的修饰符设置为静态

private static class Conversion 

于 2013-09-09T13:44:17.390 回答
0

您可能需要:

Convert.Conversion cc = new Convert().new Conversion();
cc.getConversion(...);
...
于 2013-09-09T13:39:11.453 回答