1

私のプログラムの目標は、ユーザーに数値を入力してもらい、作成したカスタム メソッドを使用してその数値を 2 乗し、2 乗を出力することです。しかし、これを試してみると問題が発生しました。これは、ユーザー入力メソッドを使用した最初のプログラムであることに注意してください(完全な初心者)

エラーコード

エラー: デフォルト コンストラクターは java.io.IOException、暗黙的なスーパー コンストラクターによってスローされた例外の種類を処理できません。明示的なコンストラクターを定義する必要があります

コード:

import java.io.*;

public class Squareit 
{
    BufferedReader myInput=new BufferedReader(new InputStreamReader(System.in));
    {
        String input;
        int num;
        System.out.println("1-12");
        input = myInput.readLine();
        num = Integer.parseInt(input);
    }

    public void square(int num) 
    {
        int ans = (num * num);
        System.out.println(" is" + ans);
    }

    public static void main(String[] args) throws IOException 
    {
        Squareit t = new Squareit();
        t.square(0);
    }
}
4

3 に答える 3

1

BufferedReader を作成し、コンストラクターの外部で読み取りを行っているため、IOException がスローされる可能性があります。したがって、この命令をコンストラクターに入れ、throws 句で例外を宣言することにより、この例外を処理する必要があります。

BufferedReader myInput;

public SquareIt() throws IOExcption {
    myInput = new BufferedReader (new InputStreamReader (System.in));
    String input;
    int num;
    System.out.println("1-12");
    input = myInput.readLine();
    num = Integer.parseInt (input);
}

必要な場合にのみ変数を宣言し、すぐに初期化することをお勧めします。

public SquareIt() throws IOExcption {
    myInput = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("1-12");
    String input = myInput.readLine();
    int num = Integer.parseInt (input);
}
于 2013-03-05T22:48:32.417 に答える