Pozdrav,
jel bi mi mogao netko pomoći u vezi komunikacije između dva objekta. Imam klasu Vehicle, koja sadrži varijablu tipa SpeedMeter. Znači HAS-A je veza. Sada me muči na koji način pristupiti i koristiti metode u klasi SpeedMeter, ja sam nešto napravio Primjer2, sad nisam siguran je li to ispravno, ili je pravi način ovaj iz Primjer1? Mislim nemoguce je uraditi u konstruktoru klase SpeedMeter instanciranje klase Vehicle jer je abstract, sad ako netko zna način i ako nije problem objasniti? ako je Primjer2 pogrešan na koji način bi to trebalo raditi?
Unaprijed hvala svima!
/***Primjer1****/
class A
{
B parent;
A(B parent)
{
this.parent=parent;
}
}
class B
{
B()
{
A aref=new A(this)
}
}
/************Primjer 2***/
/**Klasa Vehicle***/
abstract public class Vehicle {
private SpeedMeter smc;
private String nameOfVehicle;
public Vehicle(String nameOfVehicle,double maxSpeed)
{
this.nameOfVehicle=nameOfVehicle;
smc=new SpeedMeter(maxSpeed);
}
public SpeedMeters getSpeedMeter()
{
return smc;
}
}
/***Klasa SpeedMeter***/
public class SpeedMeter {
private double vehicleCurSpeed;
private final int MIN_SPEED=0;
private double maxSpeed;
public SpeedMeter(double maxSpeed)
{
vehicleCurSpeed=0;
this.maxSpeed=maxSpeed;
}
/***************************************************************/
/** Getter and Setters*/
public void setVehicleCurSpeed(double vehicleCurSpeed)
{
this.vehicleCurSpeed=vehicleCurSpeed;
}
public double getVehicleCurSpeed()
{
return vehicleCurSpeed;
}
public double getVehicleMaxSpeed()
{
return maxSpeed;
}
/** Speed up or speed down *****************/
public void speedUpVehicle(int incre)
{
if((vehicleCurSpeed+incre) > maxSpeed)
vehicleCurSpeed=maxSpeed;
else
vehicleCurSpeed+=incre;
}
public void speedDownVehicle(int decr)
{
if((vehicleCurSpeed-decr)<=MIN_SPEED)
vehicleCurSpeed=MIN_SPEED;
else
vehicleCurSpeed=vehicleCurSpeed-decr;
}