2017-03-12 6 views
-2

私はJava(1-2日)で新しく、メソッドを使用してオブジェクトの配列を渡す方法を知りたいと思います。コードをコンパイルすると、 "class、enum expected"などが表示されます。具体的には、学生情報を読んでから別の方法で情報を見せたいと思っています。 P.P.申し訳ありませんが重複していますが、私は実際には答えられた質問から理解できません。生徒の配列をJavaのメソッドで渡すにはどうすればよいですか?

package javalearning; 

import java.util.Scanner; 

public void showStudents(int n) { 
    for (i=0; i<n; i++) { 
      System.out.println("Student #"+i+" has "+s[i].getAge()+" and he is in "+s[i].getStudy()+" year !"); 
    } 
} 

public class JavaLearning { 

    public static void main(String[] args) { 
     int i; 
     String name; 
     System.out.println("Insert number of students: "); 
     Scanner n = new Scanner(System.in); 
     int N = n.nextInt(); 
     for (i=0; i<N; i++) { 
      Student[] s = new Student[N]; 
      s[i] = new Student(); 
      System.out.println("Age: "); 
      Scanner _age = new Scanner(System.in); 
      int AGE = _age.nextInt(); 
      System.out.println("Year of study: "); 
      Scanner _year = new Scanner(System.in); 
      int YEAR = _year.nextInt(); 
      s[i].setAge(AGE); 
      s[i].setYearOfStudy(YEAR); 
     } 
     showStudents(N); 
    } 
} 

そして、ここで生徒のクラスである:行うには

package javalearning; 

public class Student { 
    public int age; 
    public int yearOfStudy; 

    public int getAge() { 
     return age; 
    } 
    public void setAge(int _age) { 
     this.age = _age; 
    } 
    public int getYearOfStudy() { 
     return yearOfStudy; 
    } 
    public void setYearOfStudy(int y){ 
     this.yearOfStudy = y; 
    } 
} 
+0

1) 'showStudents'は、あなたがそれを行うことはできません任意のクラスの外の方法...です。 2) '学生[] s =新しい学生[N];は**外部の**外部にあるべきです –

+0

@ Newbie1234なぜですか?それはEnumクラスであり、ここでは必要ありません –

+0

@ Newbie1234私はフォローしていません。正確に何をしますか? –

答えて

0

コード内のコメントを参照してください:

public class JavaLearning { 

    public static void main(String[] args) { 
     //code removed 
    } 

    //method should be INSIDE the class 
    public static void showStudents(int n, Student[] s) { //path Student array 
     int i; 
     for (i=0; i<n; i++) { 
       System.out.println("Student #"+i+" has "+s[i].getAge()+" and he is in "+s[i].getStudy()+" year !"); 
     } 
    } 
} 
+1

(メソッドも静的である必要があります) –

+0

ありがとう、私はそれを修正しました。私の間違い:はい、それは他の静的な(すなわち 'main')メソッドから参照されるためには静的である必要があります – c0der

+0

私はあなたが言うことをしましたが、今度は' showStudentsから 'getStudy()'に "シンボルを見つけることができませんでした" ()メソッド –

1

まず最初は、再度試して、その後、クラス定義の内部であなたのshowStudentsを移動しています。クラス定義の外にメソッドを定義することはできません。

関連する問題