다음을 상상해보십시오.개체가 항상 List의 멤버인지 확인하십시오.
모든 단어는 문자 목록입니다. 그러나 문자 자체가있을 수 없으며 항상 단어의 일부가되어야합니다.
그래서 말씀 클래스는 다음과 같이 수 : 이제class Word extends List<MyCharacter>
, 어떻게 Word
의 일부가 아닌 MyCharacter
를 인스턴스화 할 수 없습니다 것을 적용 할 수 있을까? 어쩌면 MyCharacter
을 Word
의 개인 내부 클래스로 만들고 addCharacter(String character)
에서 Word
과 같은 메서드를 추가 할 수 있습니까? 그렇다면 은 MyCharacter
이 개인 내부 클래스 인 Word
인 반면 List 클래스를 확장 할 수 있습니까?
감사합니다.
업데이트 : 지금은 사용되는 방법을 여기
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
}
시도해 보셨습니까? –
'Character'로'java.lang.Character'를 의미합니까, 아니면 자신의 클래스 중 하나입니까? 기존 표준 클래스와 동일한 이름으로 클래스를 직접 만드는 것은 좋지 않습니다. – Jesper
다른 오브젝트에는 오브젝트가 없습니다.참고 문헌 만 있습니다. 그리고'List <>'의 그릇이나'Word'의 방법이나 전적으로 다른 곳에서 온 모든 참조는 법 앞에 평등합니다. 귀하의 질의는 언어의 관점에서 이해조차되지 않으며 문자 그대로 구현하기가 어려울 것입니다. 아마 그것이 당신의 실제 목표를 반영하도록 그것을 바꾸십시오? – delnan