間違えたところ
- scanner.nextInt()をscanner.next()にしていた
- scannerの変数を、前と同じものにしていた(とは言うものの、同じものにしていてもいけたかも)
- 変数いじくる際の「this.」付け忘れ(なんでだろうね。)
- 新たに追加した変数をインスタンスフィールドに追加し忘れ
総合演習(俺が書いたコード)
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Bicycle bicycle1=new Bicycle("ビアンキ","緑",0);
System.out.println("【自転車の情報】");
bicycle1.printData();
System.out.println("-----------------");
System.out.print("走る距離を入力してください:");
int bicycleDistance=scanner.nextInt();
bicycle1.run(bicycleDistance);
System.out.println("=================");
Car car1=new Car("フェラーリ","赤",0);
System.out.println("【車の情報】");
car1.printData();
System.out.println("-----------------");
System.out.print("走る距離を入力してください:");
int carDistance=scanner.nextInt();
car1.run(carDistance);
System.out.println("=================");
System.out.println("-----------------");
System.out.print("給油する量を入力してください:");
int chargeFuel=scanner.nextInt();
car1.charge(chargeFuel);
}
}
class Car{
private String name;
private String color;
private int distance;
private int carDistance;
private int fuel=100;
private int chargeFuel;
Car(String name,String color,int distance){
this.name=name;
this.color=color;
this.distance=distance;
}
public void printData(){
System.out.println("名前:"+this.name);
System.out.println("色:"+this.color);
System.out.println("走行距離:"+this.distance+"km");
System.out.println("ガソリン量:"+this.fuel+"L");
}
public void run(int carDistance){
this.carDistance=carDistance;
this.carDistance+=distance;
System.out.println(this.carDistance+"km走ります");
if(this.carDistance<=this.fuel){
this.fuel-=carDistance;
}else{
System.out.println("ガソリンが足りません");
this.carDistance=0;
}
System.out.println("走行距離:"+this.carDistance+"km");
System.out.println("ガソリン量:"+this.fuel+"L");
}
public void charge(int chargeFuel){
this.chargeFuel=chargeFuel;
System.out.println(this.chargeFuel+"L給油します");
if(chargeFuel<=0){
System.out.println("給油できません");
}else if(chargeFuel+this.fuel>=100){
System.out.println("満タンまで給油します");
this.fuel=100;
}else{
this.fuel+=chargeFuel;
}
System.out.println("ガソリン量:"+this.fuel+"L");
}
}
class Bicycle{
private String name;
private String color;
private int distance;
private int bicycleDistance;
Bicycle(String name,String color,int distance){
this.name=name;
this.color=color;
this.distance=distance;
}
public void printData(){
System.out.println("名前:"+this.name);
System.out.println("色:"+this.color);
System.out.println("走行距離:"+this.distance+"km");
}
public void run(int bicycleDistance){
this.bicycleDistance=bicycleDistance;
bicycleDistance+=distance;
System.out.println(this.bicycleDistance+"km走ります");
System.out.println("走行距離:"+this.bicycleDistance+"km");
}
}
総合演習(お手本のコード)
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Bicycle bicycle = new Bicycle("ビアンキ", "緑");
System.out.println("【自転車の情報】");
bicycle.printData();
System.out.println("-----------------");
System.out.print("走る距離を入力してください:");
int bicycleDistance = scanner.nextInt();
bicycle.run(bicycleDistance);
System.out.println("=================");
Car car = new Car("フェラーリ", "赤");
System.out.println("【車の情報】");
car.printData();
System.out.println("-----------------");
System.out.print("走る距離を入力してください:");
int carDistance = scanner.nextInt();
car.run(carDistance);
System.out.println("-----------------");
System.out.print("給油する量を入力してください:");
int litre = scanner.nextInt();
car.charge(litre);
}
}
class Car {
private String name;
private String color;
private int distance = 0;
private int fuel = 100;
Car(String name, String color) {
this.name = name;
this.color = color;
}
public void printData() {
System.out.println("名前:" + this.name);
System.out.println("色:" + this.color);
System.out.println("走行距離:" + this.distance + "km");
System.out.println("ガソリン量:" + this.fuel + "L");
}
public void run(int distance) {
System.out.println(distance + "km走ります");
if (distance <= this.fuel) {
this.distance += distance;
this.fuel -= distance;
} else {
System.out.println("ガソリンが足りません");
}
System.out.println("走行距離:" + this.distance + "km");
System.out.println("ガソリン量:" + this.fuel + "L");
}
public void charge(int litre) {
System.out.println(litre + "L給油します");
if (litre <= 0) {
System.out.println("給油できません");
} else if (litre + this.fuel >= 100) {
System.out.println("満タンまで給油します");
this.fuel = 100;
} else {
this.fuel += litre;
}
System.out.println("ガソリン量:" + this.fuel + "L");
}
}
class Bicycle {
private String name;
private String color;
private int distance = 0;
Bicycle(String name, String color) {
this.name = name;
this.color = color;
}
public void printData() {
System.out.println("名前:" + this.name);
System.out.println("色:" + this.color);
System.out.println("走行距離:" + this.distance + "km");
}
public void run(int distance) {
System.out.println(distance + "km走ります");
this.distance += distance;
System.out.println("走行距離:" + this.distance + "km");
}
}