前回振り返り
オブジェクト指向の考え方では、オブジェクトは内部(実装)がどうなっているのかを隠蔽し、 可能な操作と属性(仕様)のみを公開すべきとされています 。これはカプセル化という考えに基づいています。この可能な操作のことをメソッド(method)といい、属性のことをプロパティ(property)といいます。クラスはメソッドとプロパティから成り、適切なアクセス修飾子の付与が必要です。
前回演習問題の解答 例
問題1
問題文
あなたの趣味(好きなもの)をクラスで表現してください。思い浮かばなければ、車で作成してみてください。
解答例
public class Game {
private String title;
private String device;
private int price;
public Game() { // コンストラクタ
System.out.println("コンストラクタが呼ばれる");
}
public Game(String title, String device, int price) { //コンストラクタ
this.title = title;
this.device = device;
this.price = price;
}
public String getTitle() {
return title;
}
public String getDevice() {
return device;
}
public int getPrice() {
return price;
}
}
問題2
問題文
問題1で作成したクラスをインスタンス化してください。それぞれ別のフィールドを持つ3つのインスタンスを作成してみましょう。
解答例
public class Sample1 {
public static void main(String[] args) {
Game metal = new Game("メタルギア","PS5",5000);
Game mario = new Game("マリオ","Wii",3000);
Game line = new Game("LINE","スマホ",0);
System.out.println(metal.getTitle()
+ "のデバイスは"
+ metal.getDevice()
+ "となり、"
+ metal.getPrice()
+ "円となります");
System.out.println(mario.getTitle()
+ "のデバイスは"
+ mario.getDevice()
+ "となり、"
+ mario.getPrice()
+ "円となります");
System.out.println(line.getTitle()
+ "のデバイスは"
+ line.getDevice()
+ "となり、"
+ line.getPrice()
+ "円となります");
}
}
今回の演習問題
問題1
問題文
前回、作成したクラスにメソッドを作成してみましょう。
問題2
問題文
基底クラスと継承したクラスを3つ作成してみましょう。
コメント