コンストラクタってなんじゃい!

こんにちはよしときです。 今回学んだことを紹介します!   一度一通りjavaを勉強したのですが、猛スピードで突っ走ってきたので今一度復習しているところです。   さて、今日は「クラスとインスタンス」という章を勉強しました。 この辺のことはオブジェクト指向を学ぶ上で一番大切なことではありますが、いまいち分かりづらいところでもあったので慎重に見ていきます。   まず、なかでも分かりづらいコンストラクタとは何か。からです。 コンストラクタとは日本語にすると「構築するもの」という意味ですが、正直それだけではさっぱり。 コンストラクタはインスタンスを作り上げるものなんだよー という記述もありますが、それでもイメージが、、、 一番分かりやすく書いてある文は 「インスタンスを生成すると同時に、インスタンスの初期化をする」 の記述でした。 つまりインスタンスの初期値の入力というところでしょうか。 コンストラクタがなかった場合、インスタンスを生成したときにいちいち初期値を設定しなければなりません。 しかしコンストラクタで指定してあった場合はインスタンスを生成するとコンストラクタに設定された値に設定されますpublic class Class{   String name; String birthday; int post; Class (){  this.name = “yoshitoki”; this.birthday = “6.16”; this.post = 1; }   このようにするとインスタンスを生成し、表示させた時 Class class = new Class(); System.out.println(“name:” + class.name); として 表示「name:yoshitoki」 となります。   だんだん分かってきました。   しかし名前がいつもyoshitokiでは困ります。 さてインスタンスを生成し初期化を行われた時、いつでも設定した初期値の値が入れられては汎用性がありません。 そこで Class(String name, String birthday){   this.name = name;   this.birthday = birthday; this.post = 1; } のようにコンストラクタに仮引数(この場合String nameとString birthday)を持たせインスタンスを生成するたびにかえられるようにします そして呼び出すときに Class class1 = new Class(“Yoshitoki”, “6.16”); Class class2 = new Class(“Usami”,”3.12″); ・・・ とすることでClassクラスを使って何人もインスタンスを生成できます。 ちなみに表示させると System.out.println(“name:” + class1.name + ”  birthday:” + class1.birthday + “post:” + class1.post) System.out.println(“name:” + class1.name + ”  birthday:” + class1.birthday + “post:” + class1.post)   が 「name:Yoshitoki  birthday:6.16  post:1」 「name:Usami  birthday:3.12  post:1」 となります。   つまりオブジェクト指向をオブジェクト指向として使う為に必要なんですね!もちろん初期値が決まっている者は仮引数を作る必要はありません。この場合postのところです。   これがコンストラクタの基本的な使い方です。   おっと、忘れていましたがコンストラクタの決まりとして
  1. コンストラクタには戻り値の型がない
  2. コンストラクタの名前はクラス名と同じ
という決まりがあります。   どうでしょうか。自分はこの辺がすごく苦手でちょくちょく確認しないと分からなくなってしまいます。 これからはどこがコンストラクタでどこがインスタンスでどこがメソッドなのかをちゃんと考えて作っていきたいです!

id-entity.jp

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です