データ構造プロジェクトのためのソートデータベースを実装しています。クラスコンストラクタを使用して2つの異なるタイプのオブジェクト配列を作成する
Student
とInstructor
の2つの子クラスを持つ抽象スーパークラスPerson
があります。
最後に、UniversityPeople
と呼ばれる別のクラスがあり、アプリケーションによって使用されるときにStudent
オブジェクトとInstructor
オブジェクトの両方の配列への参照が作成されます。 UniversityPeople
のコンストラクタが呼び出されると、sizeをパラメータとして指定されたオブジェクトの配列が作成されます。作成時にコンストラクタ内の2つのオブジェクトをどのように区別するかを考えることができません。私が最初に考えたのは2つのコンストラクタた:
Instructor[] instArray;
Student[] stuArray;
public UniversityPeople(int size)
{
Student[] stuArray = new Student[size];
}
public UniversityPeople(int size)
{
Instructor[] instArray = new Instructor[size];
}
しかし、それについて考える(といくつかの読書をしている)した後、私はこれを行うことはできません知っています。 私の次の考えは、UniversityPeople
コンストラクタで一種のオブジェクト検証メソッドを使用することでしたが、実装には苦労しています。
基本的に、クラスはStudent
オブジェクトの配列を作成するタイミングと整数サイズを引数としてInstructor
オブジェクトの配列を作成するタイミングを知る必要があります。
誰かが正しい方向に私を指すことができたら、私は本当にそれを感謝します。私は主にC言語でコーディングしていましたので、OOPへの復帰は非常に時間の経過してちょっと変わってきました。ありがとう!
なぜPersonの配列を作成しないのですか? –
'UniversityPeople'に静的ファクトリメソッドを作成することができます。これは、コンストラクタと異なり、名前で区別することができます。しかし、私はあなたの要件をよく理解していません。なぜあなたのクラスはメンバーとして2つの配列を持ちますが、初期化するだけですか? –
その抽象的なので、私は正しく読んで覚えている場合、サブクラスは抽象スーパークラスのそれらのメソッドにアクセスすることはできませんでした。私は間違っている可能性がありますか? – FuegoJohnson