を継承する場合、私はこのようになりますクラスの場所を作ったコンストラクタとgetterメソッドをコピーします。混乱、
package TruckingCompany;
public class Location
{
private double x;
private double y;
private static final double xMax=1000.0;
private static final double xMin=-1000.0;
private static final double yMax=1000.0;
private static final double yMin=-1000.0;
public Location()
{
setX(0.0);
setY(0.0);
}
public Location(double x,double y)
{
setX(x);
setY(y);
}
public Location(Location location)
{
setX(location.getX());
setY(location.getY());
}
public void setX(double x)
{
if(x>=xMin && x<=xMax)
this.x=x;
}
public void setY(double y)
{
if(y>=yMin && y<=yMax)
this.y=y;
}
public void set(double x,double y)
{
setX(x);
setY(y);
}
public double getX()
{
return x;
}
public double getY()
{
return y;
}
public double getDistanceFrom(Location from)
{
double dx,dy;
dx=getX()-from.getX();
dy=getY()-from.getY();
return Math.sqrt(Math.pow(dx, 2.0)+Math.pow(dy, 2.0));
}
@Override
public String toString()
{
return "(" + x + " , " + y + ")";
}
}
したがって、このクラスに基づいて、私は継承するクラスの車両を、作りたいですロケーション。 しかし、私は他のクラスを作りたいので、私はそれをMovableというインターフェースを実装しなければなりません。そして、会社(私のプロジェクトはトラック会社をシミュレートします)はVehicleのArrayListを使うことができます。私は、タグ<T implements Movable>
でメソッドを呼び出す必要があります。そのため、私はインターフェイスを作ったのです。
だから、これはクラスの車両である:
package TruckingCompany;
public class Vehicle extends Location,implements Movable
{
public void setLocation(Location location)
{
set(location.getX(),location.getY());
}
public Location getLocation()
{
return new Location(getX(),getY());
}
}
そして、これは、インタフェースに移動可能である:
package TruckingCompany;
import java.sql.Time;
public interface Movable
{
public void setLocation(Location location);
public Location getLocation();
public void move(Time howLong);
public void setDirection(double degrees);
public Time getReachingTime(Location to);
}
だからのgetLocation getterメソッド作ることが正しいのですか?それはクローンではありませんか? また、Cloneableを実装して、それをクローンメソッドにすることもできます。 もう1つのオプションは、getterメソッドではなくコピーコンストラクタにすることです。 実際に話すと、どのオプションが正しいですか?
どのような精神的なモデルによって車両は場所ですか? –
私は同意します、車両は* Location *を持っているべきです - それは 'Location'データメンバーを含むべきです。それは全体の問題を取り除くだろう。 –