1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

「オブジェクト指向」の基礎を学習 Java 6/11

Posted at

Bicycleクラスの作成
①まずはBicycleクラス(自転車オブジェクトの設計図となるクラス)の作成に取り組みます。ここでは以下のことを行いましょう。
・Bicycleクラスの定義
・Bicycleクラスにインスタンスフィールドnameを定義(private)
・インスタンスを生成し、右の図のようにnameの値を出力
image.png

色をつけよう
①色を追加しよう
自転車に「色」という情報を持たせましょう。
・Bicycleクラスにインスタンスフィールドcolorを追加(private)
・printDataメソッドを定義して、右の図のようにnameとcolorの値を出力
image.png

走行距離を測ろう
①distanceフィールド
自転車に「走行距離」という情報を持たせましょう。
・インスタンスフィールドdistanceを追加(private)
・distanceフィールドの初期値は0
・右の図のように、name, color, distanceの値を出力
image.png

自転車を走らせよう
①runメソッド
自転車に「走る」機能をつけましょう。
・インスタンスメソッドrunを定義
・runメソッドは、引数にint型の値(走る距離)を受け取る
・引数で受け取った値を用いて、右の図のように「◯◯km走ります」と出力
・引数で受け取った値を、distanceフィールドに加算する
image.png

走る距離を受け取ろう
①Scanner
Scannerを使って、走る距離を受け取れるようにしましょう。
下図のように、自転車を走らせる距離を入力できるようにします。
image.png

Carクラスの作成
①Carクラス
ここからは、Carクラス(車オブジェクトの設計図となるクラス)を作成していきます。
まずはCarクラスが、Bicycleクラスと同じフィールド、同じメソッドを持つようにします。
これまでに行ったことを一気に実装してみましょう。
image.png

ガソリンの残量を表示しよう
①fuelフィールド
車にはガソリンが必要なので、「ガソリン量」という情報を持たせましょう。
・インスタンスフィールドfuelを追加(private)
・fuelフィールドの初期値は100(100Lが満タンだとします)
・右の図のように、fuelの値を出力
image.png

車を走らせよう
①runメソッドの改良
現実の車と同じように、Carクラスのインスタンスが走れば、fuelフィールドの値が減るようにしましょう。なお、この演習では便宜上、1km走れば、ガソリンを1L消費するとします。
runメソッド内で、以下のような条件分岐を行い、走る距離がガソリンの残量を超えていた場合、走行できないようにします。
image.png
②runメソッドの出力
先ほどの条件分岐を正しく行った場合、下図のような出力がされるようにします。
image.png

給油しよう
①chargeメソッド
車に「給油」機能をつけましょう。
・Carクラスにchargeメソッドを定義
・chargeメソッドは、引数にint型の値(給油する量)を受け取る
・引数の値を用いて、「◯◯L給油します」と出力
・chargeメソッドの中で、下図のような条件分岐を行う
image.png
②chargeメソッドの出力
先ほどの条件分岐を正しく行った場合、下図のような出力がされるようにします。
image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?