BNBのプログラミング勉強記録

ガチのプログラミング初心者が駆け上がっていくブログ

メモ(Java道場 II)

間違えたところ

  • 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");
  }
}