クラスの共通要素をまとめる

リビングのLEDシーリングライトにぼんやりした影が付いている。キッチンの同じ形のLEDライトと色合いが変わっている。奇妙に思ってLEDシーリングライトの蓋を取ってみると、LEDライトの基盤とプラスチックの透明なパーツが重なった部分が黒く変色している。キッチンの照明は、リビングに比べるとこまめに付けたり消したりしていたので、同じ部品でも変色していなかった。リビングの照明は付けたままにしておくことが多かったので、変質しやすくなっていた。棚にはメーカーの保証書があったけれど、すでに入居して1年が経っていたので、保証期間は少し過ぎている。据え付けの照明だったのでレシートなどは残っていなかった。とはいえ黒く変色したままにするのも不気味だったので、型番を控えてメーカーに問い合わせたところ、LEDライトのパーツが黒く変色する問題があることは知っているようだった。とはいえリモコンでの操作はそのまま使えるため、見た目を気にしなければ通常通り使えるとのことだった。保証期間は過ぎているが、変色しない同型のモデルと交換という形での対応になった。LEDでも基盤の発熱量が高いと変色することがあるようだ。そういった事例はLEDではなく電熱線によるヒーターの試行錯誤のときに基盤が変色することは何度か体験済みだった。ともかくメーカーに解決の手段があって良かったと考えている。

続きを読む クラスの共通要素をまとめる

プログラムの論理構造

JAVAのプログラムに、インスタンスを新たに生成する。インスタンスはデータ上に実体化しているモノ・事を指している。日本語に訳すると実体という意味になるようだ。WebデザイナーだったころにはJAVAではなく、JavaScriptのプロトタイプチェーンや、FlashのActionScriptでクラスやコンストラクタの決まり事のようなことを動きとは別に覚える機会があった。JAVAのクラスをそのまま使っている事例はかえって少ないかもしれないが、コンストラクタに単語を登録して、データとして有機的なまとまりにすることの意味合いを考えていこうと思う。変数がデータの文字列や、数値を入れる箱のようなイメージで、配列は箱がいくつか連なっているイメージ、多次元配列は配列の箱の中に、入れ子になって配列が入っているイメージになる。参照は住所のようなインスタンスのデータを読み取って値を表示することになる。継承は元のクラスが持っているデータに、独自のメソッドを追加するときにextendとして派生するクラスのことになる、例えば犬は歩くというメソッドを持っており、鳥は歩く代わりに飛ぶというメソッドを持っているとする。犬や鳥には共通で名前と体力がパラメータとして備わっており、それは継承されるもとのクラスの変数に代入して設定されている。プログラムを書くにあたって値を定義するインスタンス、それに変数の値を格納するフィールド、JavaScriptでいう関数にあたるメソッド、それらをひとまとめにしたクラスがプログラムの単位になる。こういった関係はJavaScriptやPHPなどの他のプログラムにも見られた。JavaScriptの場合はwebサイトの表示に、PHPの場合はSQLなどと連携してデータの操作と保持がプログラムの構造より先に、役割として与えられていた。JAVAではクラスを用意して、インスタンスを定義して、その構造を読み解いていく。

続きを読む プログラムの論理構造