次のことを想像してください。
すべての単語は文字のリストです。ただし、文字自体は存在できず、常に単語の一部である必要があります。
したがって、Word クラスは次のようになります。
class Word extends List<MyCharacter>
MyCharacter
では、の一部ではないをインスタンス化できないようにするにはどうすればよいWord
でしょうか。MyCharacter
のプライベート内部クラスを作成して、のようなWord
メソッドを追加することはできますか? しかし、それでは、がのプライベート内部クラスである間に List クラスを拡張することは可能でしょうか?addCharacter(String character)
Word
Word
MyCharacter
Word
これに関するヒントをありがとう!
アップデート:
私は今終わった
import java.util.ArrayList;
public final class Word extends ArrayList<Word.MyCharacter> {
protected final class MyCharacter
{
private String character;
public String getCharacter() {
return character;
}
public MyCharacter(String character)
{
this.character=character;
}
}
public void addCharacter(String character) {
add(new MyCharacter(character));
}
}
そして、これがどのように使用されるかです:
public static void main(String[] args) {
Word word = new Word();
// word.add(new MyCharacter("a")); // as intended: not possible, because MyCharacter class can't be accessed
word.addCharacter("a"); // ok
}