0

Javaプログラムで次のエラーが発生します。

Java変数が初期化されていませんエラー...エラー:変数namおよびrが初期化されていませんロケーションクラスの子

しかしnanrすでに初期化されていますが、それでも同じエラーが発生します。

public class cla {
    int rn;
    String name;

    void get(String a, int x) {
        name = a;
        rn = x;
    }

    void display() {
        System.out.println("student name: " + name + "roll no.:" + rn);
    }
}

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class child {
    public static void main(String args[]) throws IOException {
        String nam;
        int r;
        BufferedReader bReader = new BufferedReader(new InputStreamReader(
            System.in));
        try {
            System.out.println("enter name and roll no.");
            nam = bReader.readLine();
            r = Integer.parseInt(bReader.readLine());

        } catch (Exception e) {
        }
        cla c = new cla();
        c.get(nam, r);
        c.display();
    }
4

3 に答える 3

2

Local variablesデフォルト値を取得しないでください。使用する前に初期化してnamrメイン内でデフォルト値を使用して初期化する必要があります。これで問題ありません。

public static void main(String args[]) throws IOException{
String nam=null;
int r=0;

ところで、クラスと変数に何か意味のある名前を付けることを検討してください。

于 2013-01-23T16:32:55.477 に答える
0

ローカル変数を使用する前に初期化します。上記の場合のように、String nam = ""である必要があります。そうでない場合は、nullにすることもできます。int r = 0;

クラスでインスタンス変数を定義すると、デフォルトで初期化されます。intは0ですが、ローカル変数は使用する前に初期化する必要があります。

ありがとう、ブリジェッシュ

于 2013-01-23T16:38:38.063 に答える
0

使用しているデータ型に応じて、変数にnullまたはゼロの値を指定することをお勧めします。そこでコードを見ると、変数に値を指定していないことがわかります。たとえば、変数rがあります。代わりに、このように使用を開始する前に、整数に何も含まれていないことを知らせてくださいint r = 0;。そうすれば、Javaプログラムは、その変数を使用するときに既存の値をオーバーライドしていることを認識します。変数が何を保持しているかを変数に伝えることは、Javaが初期化と呼ぶものです。日々の活動に取り入れて、コーディング中にそれを見てください。

于 2015-05-12T11:58:57.357 に答える