
新プログラミング等専門用語解説1(プログラミング系)
REV10
ブログ投稿しています。複数画像付き等最終版は此方から、ご覧ください。
今回は既に引用している幾つかの言葉と新規の用語を先ず挙げてから、一つ一つの用語についてボリュームを確認しながら、確認・解説したいと思います。
引用済み&新規用語一覧(主にプログラミング系です)(紫色用語は取り上げ済みです)(青色用語は今回ご説明するアイテムです)
インタプリタ型/コンパイラ型
AndroidOS
iOS
オブジェクト指向
オブジェクト
インスタンス
クラス
継承
ポリモーフィズム
インターフェース
オーバーライド
コンストラクタ
カプセル化
デリゲード
イテレータ
アクセサ
ジェネリクス
アノテーション
UML
デザインパターン
TBD
手続き型プログラミング
イベント駆動型プログラミング
関数型プログラミング
変数
WEBアプリケーション
DLL
グローバル変数
ローカル変数
マルチスレッド
XML
スコープ
値型
参照型
関数
メソッド
ポインタ
例外処理
同期処理
非同期処理
フレームワーク
アルゴリズム
API
ライブラリ
データ構造
TBD
今回は、オブジェクト指向の内、サブ項目1から4番を(オブジェクト・インスタンス・クラス・継承)コメントしてみたいと思います。
オブジェクト指向:オブジェクト・インスタンス・クラス・継承
オブジェクトとは通常(オブジェクト指向プログラミング言語でない場合)は、変数・変数の確保領域(メモリ?)等の事を指すと言われています。
オブジェクト指向プログラミング言語では属性とメソッドとを合わせたものと説明されているようです。
クラスは設計図のようなもので、オブジェクト構造の記述場所・参照型変数・インスタンスを生成するともいえるようです。
インスタンスというのはメモリ上に展開する、即ちクラス:設計図を実体化するという事になると思います。
継承というのは関数の流用・活用、即ちプログラミング言語が備えた関数の再利用の方法と言えると思います。
再利用が出来るから、生産性が上がるという仕組みだと思いますが、果たして本当のそうなのでしょうか?
この継承という機能は昔から、エンジニアが使用してきた関数の共通化(同じ機能は既関数を共通化して使用する)の考え方をプログラミング言語上に実装したものだと思いますが、講師は利用には一定の制限が必要と考えています。
何故なら、親クラスに、別機能を追加して子クラスを作成するのが、継承の考え方のハズです。
従って、むやみやたらに、継承を使用して似て非なる関数を作ってしまうと、再利用誤りなどで、問題即ちバグの宝庫になってしまう危険性があると考えています。
従って、そうならない様にする一つの解決策としては、親クラスと子クラスとで何が異なっているのか、見た目ですぐにわかる様にする事で、引用間違いだらけになることを防ぐという事だと考えています。
纏めると、クラスは設計図で謂わば型式、それを実体化させる行為がインスタンスで実体化させた型がオブジェクトという事になると思います。
継承はオブジェクトを流用する為の方法という事になると思いますが、無節操な流用を行うと、後顧に憂いを残す結果となるというのが講師の考えです。
講師の現在の一つのアイデアとしては、関数名を長くなっても良いので、親と子クラスの関係がわかる様に定義し、パラメータ:引数の様な感じで子クラス側の差分がわかる様に設定・作成してはどうかと考えています。
皆さんは、プログラミングについて、どの様なご意見・イメージをお持ちでしょうか?
講師の経験が、皆様のお役に立てれば幸いです。