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

Bicycleクラスの作成
①まずはBicycleクラス（自転車オブジェクトの設計図となるクラス）の作成に取り組みます。ここでは以下のことを行いましょう。
・Bicycleクラスの定義
・Bicycleクラスにインスタンスフィールドnameを定義（private）
・インスタンスを生成し、右の図のようにnameの値を出力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/a349fecd-2dba-2015-01e9-6c4237c570d6.png)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
色をつけよう
①色を追加しよう
自転車に「色」という情報を持たせましょう。
・Bicycleクラスにインスタンスフィールドcolorを追加（private）
・printDataメソッドを定義して、右の図のようにnameとcolorの値を出力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/7346f5fa-05ef-5256-6e3f-6bf4a563d152.png)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
走行距離を測ろう
①distanceフィールド
自転車に「走行距離」という情報を持たせましょう。
・インスタンスフィールドdistanceを追加（private）
・distanceフィールドの初期値は0
・右の図のように、name, color, distanceの値を出力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/1d0e7937-7aac-87e9-9117-4d2963c83379.png)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
自転車を走らせよう
①runメソッド
自転車に「走る」機能をつけましょう。
・インスタンスメソッドrunを定義
・runメソッドは、引数にint型の値（走る距離）を受け取る
・引数で受け取った値を用いて、右の図のように「◯◯km走ります」と出力
・引数で受け取った値を、distanceフィールドに加算する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/a70596a0-6ace-fc7d-0362-f75642a4a000.png)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
走る距離を受け取ろう
①Scanner
Scannerを使って、走る距離を受け取れるようにしましょう。
下図のように、自転車を走らせる距離を入力できるようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/2dba529f-4f74-f58f-563c-f2da708c6e64.png)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Carクラスの作成
①Carクラス
ここからは、Carクラス（車オブジェクトの設計図となるクラス）を作成していきます。
まずはCarクラスが、Bicycleクラスと同じフィールド、同じメソッドを持つようにします。
これまでに行ったことを一気に実装してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/3cca0816-f359-8eba-ad86-21a39cb6b9ce.png)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ガソリンの残量を表示しよう
①fuelフィールド
車にはガソリンが必要なので、「ガソリン量」という情報を持たせましょう。
・インスタンスフィールドfuelを追加（private）
・fuelフィールドの初期値は100（100Lが満タンだとします）
・右の図のように、fuelの値を出力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/20d92824-06a0-7b4d-3f8f-605e8d5558fb.png)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
車を走らせよう
①runメソッドの改良
現実の車と同じように、Carクラスのインスタンスが走れば、fuelフィールドの値が減るようにしましょう。なお、この演習では便宜上、1km走れば、ガソリンを1L消費するとします。
runメソッド内で、以下のような条件分岐を行い、走る距離がガソリンの残量を超えていた場合、走行できないようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/aad04b1b-365f-a58a-5812-7e23f440dc35.png)
②runメソッドの出力
先ほどの条件分岐を正しく行った場合、下図のような出力がされるようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/c9ae26b7-a829-02af-6131-5bb944c9534f.png)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
給油しよう
①chargeメソッド
車に「給油」機能をつけましょう。
・Carクラスにchargeメソッドを定義
・chargeメソッドは、引数にint型の値（給油する量）を受け取る
・引数の値を用いて、「◯◯L給油します」と出力
・chargeメソッドの中で、下図のような条件分岐を行う
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/1839f666-8938-7cda-7b4f-b5e680288d67.png)
②chargeメソッドの出力
先ほどの条件分岐を正しく行った場合、下図のような出力がされるようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3438361/80ed1a37-843b-285f-bda7-ed2137d407c2.png)