2012-03-06 4 views
3

私はちょっと混乱しています。これまでの私の仕事はここにあります。配列の取得と設定メソッドの書き方

public class CourseYear 
{ 
    private String courseName; 
    private int year; 
    private String tutorName; 
    private String [] moduleList; 

moduleListは6つのモジュール

public CourseYear() 
{ 
    courseName = "Default"; 
    year = 0; 
    tutorName = "Joe Bloggs"; 
    moduleList = new String [5]; 
} 

を保持することであるこれは私のどこに問題がある、私は配列の部分を行うするかどうかはわかりませんです。

public void addModule(Module newModule, int index) 
{ 
    Module = newModule[0]; 
    Module = newModule[1]; 
    Module = newModule[2]; 
    Module = newModule[3]; 
    Module = newModule[4]; 
    Module = newModule[5]; 
} 

ノー持っています方法を取得する方法

public Module getModule(int index) 
{ 
    return Module[index]; 
} 

答えて

2

インデックスを使用して配列を参照する必要があります。あなたのクラス定義では、あなたはあなたの配列がModuleのインスタンスを含むようにしたい場合は、配列は、モジュールの配列である必要があり

private Module[] modules = new Module[6]; // initialize

を必要としています。現在、あなたのクラスはStringの配列を持っています。

してからaddメソッドが

public void addModule(Module newModule, int index){ 
    this.modules[index] = newModule; // put the instance in the correct bucket 
} 

注なったいくつかのこと:

1)。配列には6つのバケットがあるため、使用できるインデックスは0〜5です。 addModuleメソッド内のインデックスが範囲外の場合、例外が発生します。

2)。 addModuleは、newModuleがモジュールインスタンスであると想定しています。だから、あなたはまた、CourseYearクラス内addModuleを使用することができます

CourseYear courseYear = new CourseYear(); // create a courseyear 
courseYear.addModule(new Module(), 0); // create a module and add it at index 0 
courseYear.addModule(new Module(), 1); // create a module and add it at index 1 
... 

のようなaddModuleを使用しています。あなたはあなたが私はあなたがmoduleListためのgetおよびsetメソッドを書きたいと仮定getModule

0

を把握することができるはず

public CourseYear(){ 
    this.addModule(new Module(), 0); // create a module and add it at index 0 
    this.addModule(new Module(), 1); // create a module and add it at index 1 
    ... 
} 

あなたのコンストラクタで初期化したいと言います。署名は

public void setModuleList(String[] module); 

public String[] getModuleList(); 

となります。リストが取得されると、リスト内の項目を取得できます。

1

2つのもの。

1. moduleListに6つの値を格納する場合は、new String[6]でインスタンス化する必要があります。

2.YouはタイプList<String>のオブジェクトを使用しての代わりに、などのインデックスとを維持するために持っていることによってあなたの人生を簡素化します:

List<String> moduleList = new ArrayList<String>(); 

それはダイナミックで使用するのは簡単です。

2
public class CourseYear 
    { 
     private String courseName; 
     private int year; 
     private String tutorName; 
     private Module[] moduleList; 

    public CourseYear() 
    { 
     courseName = "Default"; 
     year = 0; 
     tutorName = "Joe Bloggs"; 
     moduleList = new Module[6]; 
    } 

    public void addModule(Module newModule, int index) 
    { 
     moduleList[index] = newModule; 
    } 


    public Module getModule(int index) 
    { 
     return moduleList[index]; 
    }