Java类(输出数字)

时间:2016-05-19 02:13:37

标签: java

我的团队正在制作一个显示哈希码的大数字的项目。 我们导入了一个本地库:ScoreboardNumbers

例如,如果用户输入4,则输出为:

SELECT email, CHARINDEX('@', email) 
FROM table_name;

所以程序在下面,我们似乎无法找出其中一条线的问题。我发布了整个代码,万一我们搞砸了别的地方。

感谢您的帮助!

//主要课程

       #
     # #
   #   #
 #     #
 # # # # #
       #
       #

// Instantiable class Digit

public static void main(String[] args) {
    Scanner scanIn = new Scanner(System.in);
    System.out.print("Digit: ");
    int dig = scanIn.nextInt();
    Score digit = new Score(dig);
    digit.getScoreArray();
    String strDigit = ScoreboardNumbers.get(Digit.getScoreArray()); //Red squiggly under the '.getScoreArray()'
    Scanner scanStr = new Scanner(strDigit);
    int col = 0;
    while (scanStr.hasNextInt()) {
        System.out.print(scanStr.nextInt() == 1 ? " #" : "  ");
        col++;
        if (col % 5 == 0) {
            System.out.println();
        }
    }

}

//分类:分数

public class Digit {

    private int digit;
    private final int ROWS = 7;
    private final int COLS = 5;

    public Digit(int digit) {
        this.digit = digit;
    }

    public boolean[][] getDigitArray() {
        boolean[][] arr = new boolean[ROWS][COLS];
        String strDigit = ScoreboardNumbers.get(digit);
        Scanner scanStr = new Scanner(strDigit);
        int col = 0;
        int row = 0;
        while (scanStr.hasNextInt()) {
            arr[ROWS][COLS] = (scanStr.nextInt() == 1);
            col++;
            if (col % 5 == 0) {
                col = 0;
                row++;
            }
        }
        return arr;
    }
}

3 个答案:

答案 0 :(得分:0)

看起来您可能正在尝试访问一个非静态方法,就好像它是一个静态方法一样。您需要在实际的Score实例上调用getScoreArray()函数,而不是在类本身上调用。也许你想要'数字'宾语?在这种情况下,它将是digit.getScoreArray(),而不是Score.getScoreArray()。

答案 1 :(得分:0)

  

1 getScoreArray()属于Score类而非数字类

     

2 getScoreArray()不是静态方法。

答案 2 :(得分:0)

首先,你必须知道实例方法和静态方法之间的区别。

:一种。静态方法

  1. 静态方法是使用 static关键字声明的方法。
  2. 可以使用实例,实例变量或类名称来调用静态方法。
  3. 示例:

    public class MyCalculator{
        public static int powerOf(int number, int power){
            .... some code here...
        }
    
        public static void main(String[] args){
            MyCalculator x = new MyCalculator();
            int answer1, answer2, answer3;
            answer1 = x.powerOf(3, 6); //Correct
            answer2 = MyCalculator.powerOf(4, 2); //Correct
            answer3 = new MyCalculator().powerOf(4, 2); //Correct
        }
    }
    

    <强> B中。实例方法

    1. 实例方法声明没有 static关键字。
    2. 可以由实例或实例变量调用。
    3. 示例:

      public class MyCalculator{
          public int powerOf(int number, int power){
              .... some code here...
          }
      
          public static void main(String[] args){
              MyCalculator x = new MyCalculator();
              int answer1, answer2, answer3;
              answer1 = x.powerOf(3, 6); //Correct
              answer2 = MyCalculator.powerOf(4, 2); //FALSE
              answer3 = new MyCalculator().powerOf(4, 2); //Correct
          }
      }
      

      代码中的行String strDigit = ScoreboardNumbers.get(Digit.getScoreArray());从不存在的Digit类调用静态方法getScoreArray(),因此会生成错误。