前回に引き続き、自己紹介プログラムを作成していきましょう。
前章ではフィールド、コンストラクタ、インスタンスメソッドを作成しました。
この章では、下記の機能を作成していきます。
・クラスフィールド
・クラスメソッド
自己紹介プログラムを作成②
今回も作成する課題を記載しています。
書き方などは調べながらでも構わないので、解答を見ずに自分でプログラムを作成してみてください。調べながら色々なコードを書くことで力が付きますので、まずは自分でやり遂げましょう。
解答は章の終わりに載せています。
準備
・以下のjavaファイルを作成して下記のコードを入力してください
ファイル
・Main.java
・Person.java
Main.java
class Main{ public static void main(String[] argos){ Person person1 = new Person(“鈴木太郎”, 20, 1.7, 60); person1.print(); Person person2 = new Person(“山田花子”, 22, 1.5, 40); person2.print(); } } |
Person.java
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; } public double bmi(){ return this.weight / this.height / this.height; } public void print(){ System.out.println(“名前は” + this.name() + “です”); System.out.println(“年は” + this.age() + “です”); } |
クラスフィールド
・クラスフィールド「count」を定義してください(初期値:0,データ型:int)
・Personコンストラクタの中でクラスフィールドcountに1を足してください
・Main.javaで System.out.printlnを使い「合計〇〇人です」と出力してください。〇〇はcountの値です。
クラスメソッド
・クラスメソッド「printCount」を定義してください(データ型:void)
・クラスメソッドの中にクラスフィールド「count」を用いて「合計〇〇人です」と出力してください
・クラスメソッド「printCount」を呼び出してください
ここまでの解答
ここまで自分で手を動かしながらプログラムを作成できましたか?
クラスフィールドやクラスメソッドは様々なサンプルコードが出てきたと思います。
それらの情報を読み込むことで知識の引き出しも増えますので、必ず自分でプログラムを書き上げたうえで、下記回答を見るようにしてください。
クラスフィールド
クラスフィールドはクラス名.フィールド名でアクセスします。
Main.java
class Main { public static void main(String[] args) { Person person1 = new Person(“鈴木太郎”, 20, 1.7, 60); person1.printData(); Person person2 = new Person(“山田花子”, 22, 1.5, 40); person2.printData(); System.out.println(“合計” + Person.count + “人です”); } } |
Person.java
class Person{ // クラスフィールドを定義 public static int count = 0; // インスタンスフィールドを定義 public String name; public int age; public double height; public double weight; // コンストラクタを定義しインスタンスフィールドに値をセット Person(String name, int age, double height, double weight) { Person.count++; 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 + “です”); } } |
クラスメソッド
Main.java
クラスメソッドの呼び出しを追加しました。
class Main { public static void main(String[] args) { Person person1 = new Person(“鈴木太郎”, 20, 1.7, 60); person1.print(); Person person2 = new Person(“山田花子”, 22, 1.5, 40); person2.print(); System.out.println(“合計” + Person.count + “人です”); Person.printCount(); } } |
Person.java
printCountメソッドを追加しています。
class Person{ // クラスフィールドを定義 public static int count = 0; // インスタンスフィールドを定義 public String name; public int age; public double height; public double weight; // コンストラクタを定義しインスタンスフィールドに値をセット Person(String name, int age, double height, double weight) { Person.count++; 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 + “です”); } public static void printCount() { System.out.println(“合計” + Person.count + “人です”); } } |