※ ChatGPTを利用し、要約された質問です(原文:初心者で練習問題をしています)
初心者がJavaで練習問題をしようとしています。Carクラスの燃料の使い方について教えてください。
このQ&Aのポイント
Javaで練習問題をする初心者が、Carクラスの燃料の使い方について質問しています。
Carクラスのインスタンスを作成し、フィールドである燃料を操作している際に問題が発生しています。
car2とcar3のフィールドの値が一緒になってしまう問題があり、その解決方法を教えて欲しいとのことです。
Javaで練習問題をしています
Carというclassを作成して(public, privateを明示)
フィールドはStringでmake(型式),colour(色),intでfuel(燃料)です。
コントラクタを作成して、
car1:make(Ferarri),colour(red),intでfuel(100)
car2:make(Volvo),colour(blue),intでfuel(200)
car3 = car2、
↓
car2では色をgreenにし、car3では燃料を20使うと
car2:make(Volvo),colour(green),intでfuel(180)
car3:make(Volvo),colour(green),intでfuel(180)
両方とも180になってしまいますが、
(greenはいっしょになってかまいません)
car2の燃料を200のまま減らないようにするには
どうしたらいいでしょうか
どうぞよろしくお願いします。
Public class Car {
.
.
public void setColour(String newColour) {
colour = newColour;
}
public void useFuel(int amount) {
fuel = fuel - amount;
}
public static void main(String[] args) {
Car car2 = new Car();
car2.make = "Volvo";
car2.colour = "blue";
car2.fuel = 200;
System.out.println("car2make="+car2.make);
System.out.println("car2colour="+car2.colour);
car2.toString(car2.colour,car2.make);
Car car3 = new Car();
car3 = car2;
car2.setColour("green");
System.out.println("car2colour=blue -> green");
System.out.println("car2colour="+car2.colour);
System.out.println("car3colour="+car3.colour);
car3.useFuel(20);
System.out.println("car2fuel="+car2.fuel);
System.out.println("car3fuel="+car3.fuel);
}
.
.
お礼
ありがとうございます 助かります 読んですぐにはすべてが理解できませんが、 これからも勉強していきます