この章からは、これまで学んだ知識を使って自己紹介プログラムを作成していきます。必要な機能を記載しているのでそれに沿ってプログラムを作成しましょう。
この章では、下記の機能を作成していきます。
・フィールド
・コンストラクタ
・インスタンスメソッド
自己紹介プログラムを作成①
今回も作成する課題を記載しています。
書き方などは調べながらでも構わないので、解答を見ずに自分でプログラムを作成してみてください。調べながら色々なコードを書くことで力が付きますので、まずは自分でやり遂げましょう。
解答は章の終わりに載せています。
完成物の確認
今回作成するプログラムは自己紹介をコンソールに表示するプログラムです。
作成するクラスは下記の2クラスです。
・Mainクラス
・Personクラス
完成プログラムの実行結果は下記のとおりです。
準備
・以下のjavaファイルを作成して下記のコードを入力してください
ファイル
・Main.java
・Person.java
Main.java
class Main { public static void main(String[] args) { Person person1 = new Person(“鈴木太郎”, 20, 1.7); System.out.println(person1.name); System.out.println(person1.age); System.out.println(person1.height); } } |
Person.java
class Person{ // インスタンスフィールドを定義 // コンストラクタを定義しインスタンスフィールドに値をセット Person(){ } } |
フィールドとコンストラクタ
・インスタンスフィールドを定義してください
フィールド名 | データ型 |
name | string |
age | int |
height | double |
・コンストラクタを定義してください(下記それぞれの引数)
name,age,height
・コンストラクタの中で各インスタンスフィールドに値をセットしてください
インスタンスメソッド
・インスタンスフィールド「weight」を定義し、コンストラクタの中で値をセットしてください(double型)
・Main.javaの引数にweightの60を入れてください
・インスタンスメソッド「bmi」を定義してください(戻り値:double)
・bmiメソッドでインスタンスのBMIを返すようにしてください
・インスタンスメソッド「print」を定義してください(戻り値:void)
・printメソッドの中でthisを用いて「名前は〇〇です」,「年は〇〇です」と出力してください
ここまでの解答
ここまで自分で手を動かしながらプログラムを作成しましたか?
調べながら自分で書くことでこれまでの知識が確かなものになるので、一度書き上げたうえで以下の解答を見るようにしてください。
準備
今回はintroductionというパッケージにクラスを作成しています。
コンストラクタやフィールドはこの時点では未定義なので、eclipse上ではエラーが出ている状態です。
フィールドとコンストラクタ
Mainクラス内でPersonインスタンスを作成する際、引数を渡しています。この時に動くコンストラクタはこの引数を受け取る形で記述します。
Main.java
class Main { public static void main(String[] args) { Person person1 = new Person(“鈴木太郎”, 20, 1.7); System.out.println(person1.name); System.out.println(person1.age); System.out.println(person1.height); } } |
Person.java
class Person { // インスタンスフィールドを定義 public String name; public int age; public double height; // コンストラクタを定義しインスタンスフィールドに値をセット Person(String name, int age, double height) { this.name = name; this.age = age; this.height = height; } } |
インスタンスメソッド
Main.java
インスタンス生成時の引数を追加しています。
class Main { public static void main(String[] args) { Person person1 = new Person(“鈴木太郎”, 20, 1.7, 60); System.out.println(person1.name); System.out.println(person1.age); System.out.println(person1.height); } } |
Person.java
フィールドとコンストラクタにweightを追加しています。
bmiメソッドとprintメソッドを追加しています。
class Person{ // インスタンスフィールドを定義 public String name; public int age; public double height; public double weight; // コンストラクタを定義しインスタンスフィールドに値をセット Person(String name, int age, double height, double weight) { this.name = name; this.age = age; this.height = height; this.weight = weight; } // インスタンスメソッドbmiを定義 public double bmi() { return this.weight / this.height / this.height; } // インスタンスメソッドprintを定義 public void print() { System.out.println(“名前は” + this.name + “です”); System.out.println(“年は” + this.age + “です”); } } |
bmiメソッドは下記のような処理でも可能です。
public double bmi() { double bmi = this.weight / (this.height * this.height); return bmi; } |