もうすぐ Java クラスの最終試験があり、質問があれば助けてもらいたいと思っていました。以下のサンプルコードについてです。
package test;
public class Exam2Code
{
public static void main ( String[ ] args )
{
Lot parkingLot = new Lot();
Car chevy = new Car( );
Car camry = new Car( );
MotorCycle harley = new MotorCycle( 3 );
MotorCycle honda = new MotorCycle( );
parkingLot.park ( chevy );
parkingLot.park ( honda );
parkingLot.park ( harley );
parkingLot.park ( camry );
System.out.println( parkingLot.toString( ) );
System.out.println(chevy.getClass());
System.out.println(camry.getClass());
System.out.println(harley.getClass());
System.out.println(honda.getClass());
}
}
package test;
public class Vehicle
{
private int nrWheels;
public Vehicle( )
{ this( 4 ); }
public Vehicle ( int nrWheels )
{ setWheels( nrWheels); }
public String toString ( )
{ return "Vehicle with " + getWheels()
+ " wheels"; }
public int getWheels ( )
{ return nrWheels; }
public void setWheels ( int wheels )
{ nrWheels = wheels; }
}
package test;
public class MotorCycle extends Vehicle
{
public MotorCycle ( )
{ this( 2 ); }
public MotorCycle( int wheels )
{ super( wheels ); }
}
package test;
public class Car extends Vehicle
{
public Car ( )
{ super( 4 ); }
public String toString( )
{
return "Car with " + getWheels( ) + " wheels";
}
}
package test;
public class Lot
{
private final static int MAX_VEHICLES = 20;
private int nrVehicles;
private Vehicle [] vehicles;
public Lot ( )
{
nrVehicles = 0;
vehicles = new Vehicle[MAX_VEHICLES];
}
public int nrParked ( )
{ return nrVehicles; }
public void park ( Vehicle v )
{ vehicles[ nrVehicles++ ] = v; }
public int totalWheels ( )
{
int nrWheels = 0;
for (int v = 0; v < nrVehicles; v++ )
nrWheels += vehicles[ v ].getWheels( );
return nrWheels;
}
public String toString( )
{
String s = "";
for (Vehicle v : vehicles){
if(v != null){
s += v.toString( ) + "\n";
}
}
return s;
}
}
質問は、「ロットの公園法でよくあるコーディングの間違いを特定します。このコーディングの間違いをどのように修正しますか?」.私には何が間違いなのかわかりません。私の最初の答えは、これはコピー コンストラクターであり、 clone() メソッドを使用して修正するというものでした。しかし、それがコピーコンストラクターであるかどうかさえわかりません。getClass() を使用してクラスをチェックしたところ、すべて正しいタイプのようです。誰かがこれで私を助けてくれれば幸いです。皆さん、ありがとうございました!
編集:コードを追加しました。