@InstalatorP

Как присвоить значение объекту класса в конструкторе другого класса?

Ситуация такова:
1) есть класс родитель
public class RGBColor {
	private int _red;
	private int _green;
	private int _blue;
	
	public RGBColor(){
		this._red= 0;
		this._green=0;
		this._blue=0;
		
	}
	
	public RGBColor(int red, int green, int blue){
		if ((red < 0 || red > 255) | (green < 0 || green > 255) | (blue < 0 || blue > 255)){
			this._red= 0;
			this._green=0;
			this._blue=0;
			
		}else{
			this._red= red;
			this._green=green;
			this._blue=blue;
			
		}

2) есть класс потомок
public class LightBlub extends RGBColor{
	private RGBColor _color = new RGBColor();
	private boolean _switchedOn;
	
	public LightBlub(int red, int green, int blue) {
		
		this._color.setRed(red);
		this._color.setGreen(green);
		this._color.setBlue(blue);
		
		_switchedOn = false;
	}
}//end class


По задумке, конструктор класса потомка принимает 3 числа, что бы на их основе в том же конструкторе присвоить его полю _color в качестве инстанса

как сделать так, что бы инстанс инициализировался по параметрам конструктора, а то при создании инстанса он получает значения дефолтного конструктора, то есть поле _color имеет нулевые значения.

вопрос: что я делаю не так?

примечание: если вручную с помощью сетеров присвоить значения, они присваиваются как нужно.
  • Вопрос задан
  • 2788 просмотров
Пригласить эксперта
Ответы на вопрос 1
@bimeg
public class LightBulb
{
        private RGBColor colorOff;
        private RGBColor colorOn;
        private boolean on;
	
        public LightBulb(int redOn, int greenOn, int blueOn, int redOff, int greenOff, int blueOff)
        {
                colorOff = new RGBColor(redOff, greenOff, blueOff);
                colorOn = new RGBColor(redOn, greenOn, blueOn);
                //...
        }
        //...
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы