3

JAVAでカスタムクラスオブジェクトを作成したいのですが、エラーが表示されます...このエラーが発生する理由がわかりません。以前にJAVAを学び始めたので助けてください...


  class main {

    class student {
        public int rollno;
        public String name;
        public int marks;

        public void accept() {
            rollno = 1;
            name = "Pawan Mall";
            marks = 100;
        }

        public void display() {
            System.out.println(rollno);
            System.out.println(name);
            System.out.println(marks);
        }

    }

    public static void main(String argv[]) {
        student s = new student();
        s.accept();
        s.display();
    }

}

コードのコンパイル中に直面したエラーであるコンパイル時に発生していました:

C:\Program Files\Java\jdk1.7.0_03\bin\student.java:28: error: non-static variable this cannot be referenced from a static context
student s = new student();
            ^
1 error

Tool completed with exit code 1
4

3 に答える 3

2

クラスstudentはクラス内にネストさmainれています。として宣言していないstaticので、innerクラスです。Javaチュートリアルによると:

InnerClassのインスタンスは、OuterClassのインスタンス内にのみ存在できます。

それがまさにあなたがやろうとしていることなので、失敗します。

クラスstudentは静的である必要があるため、静的コンテキストでインスタンス化できます。

class main {

    static class student {
        public int rollno;
于 2012-04-13T06:40:11.717 に答える
1

このようなメインクラスの参照を使用して、studentのインスタンスを作成してみてください

main m = new main();

student s= m.new student(); 
于 2012-04-13T06:37:36.380 に答える
-1

名前クラスの最初の文字は大文字でなければなりません。クラス名とファイル名は同じです。あなたの場合:「学生」->「学生」

于 2012-04-13T06:36:41.467 に答える