クラスをもっと掘り下げる! (5/5)
作成:2011-01-07 09:39
更新:2011-01-07 09:39
更新:2011-01-07 09:39
■コンストラクタを作ろう
さて、これでSyohizeiクラスを作って利用する基本的なことはわかりました。ただ、クラスの利用って、けっこう面倒くさいものですね。まず、newでインスタンスを作って、それからsetPriceで金額を設定して……なんてやらないといけません。
もし、setPriceを呼び出すのを忘れてしまったら、ちゃんと計算できなくなってしまいます。priceフィールドは、このクラスでは必ず用意しないといけないものです。もっと何か便利なやり方はないんでしょうか?
こういうときに便利なのが「コンストラクタ」です。コンストラクタというのは、newでインスタンスを作るときに自動的に呼び出される特別なメソッドです。これは、以下のような形で書く決まりになっています。
1.コンストラクタは、必ずクラス名と同じ名前でないといけません。大文字小文字まできっちり同じにしておく必要があります。
2.コンストラクタは、返値の指定を書きません。返値というのは、setPriceの「void」とか、getZeikomiの「double」のことですね。この返値を指定してしまうと、普通のメソッドとみなされ、newで呼び出されなくなります。
このコンストラクタを用意することで、newするときに必要な値や手続きを用意することができるようになります。例えば、下のサンプルを見てください。ここでは、
コンストラクタは、インスタンスを作るときの初期化処理(最初に実行する処理)を行うものとして、とても大切な役割を果たします。ここであわせて覚えておきましょう。
もし、setPriceを呼び出すのを忘れてしまったら、ちゃんと計算できなくなってしまいます。priceフィールドは、このクラスでは必ず用意しないといけないものです。もっと何か便利なやり方はないんでしょうか?
こういうときに便利なのが「コンストラクタ」です。コンストラクタというのは、newでインスタンスを作るときに自動的に呼び出される特別なメソッドです。これは、以下のような形で書く決まりになっています。
1.コンストラクタは、必ずクラス名と同じ名前でないといけません。大文字小文字まできっちり同じにしておく必要があります。
2.コンストラクタは、返値の指定を書きません。返値というのは、setPriceの「void」とか、getZeikomiの「double」のことですね。この返値を指定してしまうと、普通のメソッドとみなされ、newで呼び出されなくなります。
このコンストラクタを用意することで、newするときに必要な値や手続きを用意することができるようになります。例えば、下のサンプルを見てください。ここでは、
public Syohizei(int n){……こんな具合にコンストラクタを用意してみました。引数にint型の値を1つ受け渡すようにしてあります。こうすると、mainでインスタンスを作るところが、
Syohizei obj = new Syohizei(12300);こんな具合に変わります。newするときに必要な値を渡しますから、後で「値を設定するの忘れた」なんてこともなくなります。
コンストラクタは、インスタンスを作るときの初期化処理(最初に実行する処理)を行うものとして、とても大切な役割を果たします。ここであわせて覚えておきましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
public class Syohizei { public int price; public Syohizei(int n){ price = n; } public void setPrice(int n){ price = n; } public double getZeikomi(){ double kekka = price * 1.05; return kekka; } public static void main(String[] args){ Syohizei obj = new Syohizei(12300); double kekka = obj.getZeikomi(); System.out.println(kekka); } }
※関連コンテンツ