Я новичок в ООП, и я пытаюсь создать два объекта одновременно с отношениями HAS-A. У меня есть объект Box, у которого есть объект Contents внутри него, и я борюсь с тем, как конструктор должен иметь дело с этим разумно. Мои исследования в основном выкопали вещи о цепочке конструкторов в рамках одного класса. Содержимое объекта также выбирает ContentsType из перечисления:Создание объекта переменной экземпляра
Box:
public class Box {
double volume;
Contents contents;
public Box(int inputVolume, String inputContInfo, ContentsType inputContType){
this.volume = inputVolume;
contents = new Contents(inputContInfo, inputContType);
}
}
Содержание:
class Contents {
ContentsType contType;
String contInfo;
Contents(String inputContInfo, ContentsType inputContType){
this.contInfo = inputContInfo;
this.contType = inputContType;
}
}
ContentsType:
public enum ContentsType {
CARGO,
GIFT,
OTHER;
}
выше конструктор работ Box, но это разрушение инкапсуляции классов? Это кажется неправильным, и я хотел бы найти то, что принятый способ сделать это. Любые предложения будут ценны!
редактировать: Я просто пытаюсь создать окно из своего конструктора, например:
Box aBox = new Box(2, "Something", ContentsType.CARGO);
как вы пытаетесь создать экземпляр, пожалуйста, предоставьте это. – YoungHobbit