オフィスブログ

クラスとインスタンス・・・て何?

クラスはね・・・小学校6年の時は3組(クラス)だった・・・などというボケをかますと怒られますね(-_-)/~~~ピシー!ピシー!

こんにちは。ディーキャリアITエキスパート名古屋丸の内オフィスの志村です。

「クラスとインスタンス」・・・う~ん、今、そういうYouTube動画を観てます。この先生、どういうことを言うのか、どう説明するのか、興味深いです。

・・・

ということで、ちょっと観たらね・・・そうか、ツイッターの投稿をサンプルにして・・・ツイッターの投稿一つ一つがインスタンスなんだということね。それでその元になっているのが、先生の言う”テンプレート”としてのクラスなんだね。

なるほど、まあそういう理解でも良いね。
(ツイッターのシステム、実際、そういう造りになっていると想像してます)

オブジェクト指向プログラミングを学ぶ時、その入口で「クラス」があります。

クラスは「オブジェクトの設計図」と言われてます。
それで実体となった時、インスタンスになる。

そういう説明でも・・・いい。というか、わたしも結構そういう説明していますね(笑)

プログラミングの世界では、いろいろな見方・考え方があります。
どういう考え方をしたら、スッキリ分かるか、理解できるか・・・ということが大事なので、ちょっとこういう考え方はどう?・・・っていうのを一つ紹介しましょう。

「クラスというのは変数の型みたいなものです。クラスとして定義した内容を持つ「変数(オブジェクト)」を、いよいよ使いたい時に(個別に)名前を付ける。名前の付いたものがインスタンスです」

分かりますか?

プログラミングをする時に変数を使うじゃないですか。
変数は型をもっている。
JavaとかCとかC++とか・・・コンパイラ型のプログラミング言語を学んだら、分かりますよね。
数値型(整数とか小数)、文字型、文字列型、論理型などがありますね。

データの形式として、配列というデータ構造があります。ハッシュとか連想配列とか、レコードとか構造体というのもある。

変数として扱う”データ”には色々な型がありいろいろな形式があって、どれを使うのか・・・プログラミングでは使う前に(決めて)、型やデータ構造を「宣言して」使います。

どの型なのかを決めることが「宣言」で、実際に使う時に変数の実体がメモリ上にとられます。
メモリ上に取る時は変数の全体を確保する場合もあるし、その変数やデータ構造の先頭部分の番地(アドレス)だけ決めるということもある。

メモリ上に(領域として)とられるタイミングが結構大事で、正に使おうとする時に領域をとる(「メモリを確保」する)場合もあれば、プログラムが動き始めた時に、最初に領域を確保してしまうものもある。

不要になったら、メモリ上の領域を棄てる(「メモリを解放」する)ものもあれば、プログラムが動いている間はずっと確保しっぱなしのものもある。

クラスは「型」で、実際にメモリ上に取る時には「名前」を付けて作ります。
それが「実体(インスタンス)」です。変数には名前を付けますよね・・・それと同じです。

「名前」をつけると・・・ようやく使えます。

そういう「クラス」をプログラムの中で決める。使うものを決めるわけです。
ちょっと複雑な構造の「型」を作っているのです。(^o^)

(これを書いたずっと後で、JavaScriptをまじめに勉強したら、JavaScriptでの変数の形に”オブジェクト型”ってあるのね・苦笑。
それです。JavaScriptの考え方だとまさにオブジェクトは変数の型の一つ。ただし、JavaScriptのオブジェクト型も、中身は自分で定義することになるから、その定義の時点ではクラスということです。)

クラスが使われる時に実体化(メモリ上に領域をとって動き始める)すると、その実体のことをインスタンスと言います。

このクラスとかインスタンスとか・・・こういうもののことを「オブジェクト」と言います。

オブジェクトはプログラムの部品です。・・・というかある種の変数ですね。配列(連想配列?)のような、構造体(レコード?)のようなものと言ってもいい。

部品が何かの機能とか役割を持っている。

おおよそ「処理(関数・メソッド)」が大事ですが、その機能に使うデータやデータの入れ物(プロパティ)まで一緒になっていると、まとめてあって使いやすい時がある。

まず、処理を意識する訳です。

逆に「データの入れ物」を意識して、それがオブジェクトだとして想定しておくこともあります。 データの入れ物ですから、普通の変数でも、配列でも、構造体(レコード)でも何でも入れておける。 それでちょっと考えたら、そのデータをどう扱うかも考えなくちゃいけないから・・・その処理・機能部分(関数・メソッド)も一緒にしておく。

処理、データ・・・どちらから発想してもOK。

変数の新しい型を作って、それを使うのがオブジェクト指向プログラミングです。

見方を変えると今までの既存の型の変数もね、そういう型のオブジェクトだと思えばいい。

文字列変数のね、長さを知りたい時に、文字列.length()とかってするじゃないですか。配列の場合だと、配列.lengthかな?

文字列や配列はオブジェクトだと思えば自然です。length()メソッドや、lengthプロパティがあるってことね。

ということで、オブジェクトって・・・でっかい、でっかい、いろいろつまった変数ですよ。 (ああ・・”でっかい”と言ったのは雰囲気ですから、実際にはでっかくないかもしれません)

中にはね、「処理・機能(メソッド)とデータ(プロパティ)」が入っている・・・玉手箱やぁ。(^o^)いや、宝箱かな。

まあ、どっちでもいいのですが・・・どんなメソッドやプロパティが入っているか・・・楽しみですよね。
ちょっと見にはわからないので、調べるのです。

(まあ、自分でイチから作ったモノだったら、分かってるはずですが。他人が作ったモノを使うこともありますからね)

「オブジェクト」の扱いは面白くて・・・この宝箱は「四次元ポケット」になってましてね(笑)

中の方を探ると・・・別のオブジェクトの遺伝子が入ってるのです。

入っている遺伝子は、そのオブジェクトの親のもので・・・その中にはまた親が・・・ということで、ご先祖様がたくさん入っているという・・・マトリョーシカ(注)のような構造をしてる(笑)

それでその親からの遺伝(「継承」といいます)で機能やデータを引き継いでるから、財産として使えてしまうのですよ(笑)

遺伝子の中には使えそうなんだけれど、ちょっとばかり思ったのと違うのだよ・・・と思うものは、少々上書きすれば、名前は同じままにしといて、中身が違うっていう微妙な調整もできたりする。(「オーバーライド」といいます)

同じ形質を表す遺伝子なんだけれど、ちょっと使い方(受け渡すデータ、引数の個数とか)が違うっていうものもあって、まあ、同じなんだから同じように使いたいよね・・・イイでしょ、同じように使おうよ・・・という曖昧?なことも許してくれる。(「オーバーロード」といいます)

いや、便利な財産だ。ホント、助かるね。

あとは・・・あとは・・・まあ、いろいろな性質があるので、うまく使うと便利なのです。 以下、割愛です。\(^o^)/

気がついたら、そのうちまたお話します。

ちなみにディーキャリアITエキスパート名古屋丸の内オフィスでは、機会があれば話してますね、こういうこと。

さあて・・・今日の記事は今どきのプログラミングの・・・小話・小ネタでした。

ディーキャリアITエキスパート名古屋丸の内オフィス、よろしくお願いしますね。


ディーキャリアITエキスパート名古屋丸の内オフィス 
 ・電話052-218-4877
 ・メール it-nagoyamarunouchi@dd-career.com 
 ・所在地:〒460-0002
      愛知県名古屋市中区丸の内2-17-22丸の内桜通ビル2階
 ・HP:https://dd-career.com 


(注)マトリョーシカ・・・ロシアの伝統的な人形で、大きな人形が入れ物になっていて、その中に同じようなカタチの人形が入っていて、それも入れ物になっていて、さらに小さな同じカタチの人形が入っている。ググったら、写真が出てきますので、それ見てください(笑)

ITエキスパート名古屋丸の内のブログ一覧

  1. 冬のセルフケア

  2. 「IT人材」になって就職する②

  3. 「IT人材」になって就職する①

  4. 思考・姿勢・考え方における基盤を作る

  5. 「夢」は…かないました。

  6. 毎日が気付きの宝庫

  7. 安定した勤務の下地作り・・・大事です

  8. 思考の癖

  9. なりたい姿について考える

  10. 価値に表方と裏方あり

  11. SESとはどういうものなの?

  12. ペースとサイクル

  13. う~ん、どうしよう。chatGPT4.0

  14. コントロールできる、できない

  15. オブジェクト「指向」って何よ?(笑)

  16. 回り道しても、安定した就労の近道に

  17. プログラムの中にプログラム?(3)

  18. プログラムの中にプログラム?(2)

  19. プログラムの中にプログラム?(1)

  20. 梅雨時期のネガティブを切り替える

  21. ざっくり言うと、プログラミングは・・・

  22. 少しずつ少しずつ

  23. プログラミング(学習)”以前”

  24. 一度で解決しなくても、大丈夫♪♪

  25. 長年の勘・・・ですけどね(苦笑)

  26. 心の余裕と健康

  27. 仮想と現実・・・マトリックス?アバター?・笑

  28. 安定して働きつづけるために、大切なこと

  29. ディーキャリア卒業におけるプレゼンテーション

  30. 地味にスゴイ・・

  31. 入口と出口が問題なんですよ。

  32. OSのお話(その2)

  33. 生活リズムを整える=安定した就労への近道

  34. OS(オペレーティングシステム)のお話

  35. チャンスは何度かやってくる

  36. 大事なのは変わっていく事…変わらずにいること

  37. 気付きと活かしの宝庫、ライフスキル訓練

  38. 発達障害のある方におすすめの引っ越し先1選+α

  39. 2024年のディーキャリアITエキスパート名古屋丸の内オフィス

  40. 自分について想う

  41. 派遣の話・・・IT業界ではね・・

  42. 2023年を振り返って

  43. コミュニケーションにおける態度や心構え

  44. IT企業から見た時、何が目につくのか・・・

  45. 問題解決 ~勤怠の安定~

  46. ライフスキル訓練における意識 

  47. Windows前と後でプログラムは変わったんです・・・

  48. 時間

  49. COBOLをどう思います?

  50. 特性や診断と向き合う自己理解

  51. ポートフォリオ? ああ、作品集・実績ですね

  52. ポートフォリオはできました・・で、どうする?

  53. 全体訓練=ライフスキル訓練の利点

  54. たまには・・・意味のない?お話も、実は意味がある・・(^_-)-☆かもね

  55. やりっぱなしにはご注意を!

  56. プログラミング「技術」って・・・

  57. プログラミング学習するにはどの言語?

  58. 発達障害の診断は自分に正直なしるし

  59. 短期回復と長期回復

  60. ごほうび効果

  61. プログラミング、はじめの一歩・・・

  62. 「業務アプリ」を使う理由(ワケ)

  63. 仕事ができるようになるには

  64. 就職する、がゴールではないですよね??

  65. パソコンなんか、何に使うの・・・

  66. chatGPT(チャット君)ありがとね〜

  67. ファイルシステムのお話

  68. どんなライフスキル訓練も自己理解に繋がっていますね?

  69. それでも、受かること、あるからねぇ・・・

  70. 今度は疑似言語ですよ・・おお、構造化プログラミングだね

  71. まず、やってみよう・・・それからだよ

  72. 設計するって何する?

  73. 派遣、SES、請負・・え?出向なの?

  74. ゆる〜い関係もまあ良しか・笑

  75. 就職では「人となり>技術力」かな・・・

  76. 想い続ける・・・いいね

  77. クラウド(雲)時代を生きる

  78. 今や、インターネットは一般用語ですね。

  79. この夏にやってみたいこと

  80. 水で通信しよう・・・

  81. 夏のセルフケア ~水分摂取の巻~

  82. (世の中の)歯車なんだよね・・・

  83. 「知っている」と「活用する」ことの違いについて

  84. フリーは、い〜な

  85. ITを活用する人になろう

  86. システムエンジニアなんですけど・・・

  87. 大きなシステムだって・・・分かってる?

  88. ある利用者からの質問

  89. 天気と気分・視点の変え方

  90. 自己肯定感を取り戻す

  91. 夢が叶う時…

  92. 何が大事って、安定した勤務です

  93. 梅雨時期の乗り越え方

  94. オタクですが・・・なにか(笑)

  95. IT人材は不足しているそうです

  96. 感情とその気付き

  97. ライブラリィ・・・ん?

  98. 3分間スピーチと自己開示

  99. 暗号化ってどうよ・・・

  100. 宣言効果と目標設定

  101. chatGPTは社会を変える?

  102. ネモフィラとセルフケア

  103. はなまる

  104. 報連相について

  105. ショックとのおつきあい

  106. 体調管理

  107. 発達障害のある方にお勧めするお金の管理法3選

  108. Iメッセージ

  109. 就職活動

  110. 負ける強さ

  111. 発達障害とお片付け

  112. ADHDのリスクとリターン

  113. しだれ桜

  114. スティーブ・ジョブズに学ぶ、もののとらえかた

  115. やすむこと

  116. “今、ここ”を意識することの大切さ

  117. 春の訪れ

  118. おかげ

  119. 心の防寒

  120. 立春

  121. 自己理解について

  122. アロマテラピーと自己理解

  123. 大寒波

  124. ホッと温かい寒さ対策

  125. 遅くなりましたが

  126. 自己理解、一歩踏み込んで

  127. 2023年は卯年

  128. 2022年を振り返って

  129. 年末にすること

  130. あっという間の1年

  131. ディーキャリアITエキスパート名古屋丸の内オフィス、配置変えの巻

  132. 冬の早朝

  133. 寒い中で気付けること、感謝できること

  134. 逃げること、回避すること

  135. 寒い季節の悩み

  136. 目的を持って取り組むこと

  137. ものの見方は自分次第、捉え方は2つ以上ある

  138. 最近のセルフケアと癒し時間

  139. 切り替えて別の案を考えること、満喫すること

  140. 毎月の目標設定

  141. 生活リズムを整えるには・・・

  142. コツコツと、ささやかな習慣化

  143. 秋の楽しみ、そして、セルフケア

  144. 楽しみ方

  145. 働く上で大切にしていること

  146. 睡眠の質

  147. 衣替え

  148. 雑談について

  149. 色とセルフケア

  150. 季節の変わり目

  151. アサーティブとは、しずかちゃん!

  152. 5分間のホッとする時間

  153. ライフスキルコースについて

  154. ビジネスマナー 右手を隠す編

  155. BGMの活用

  156. 仕事を楽しむには

  157. 雨の日の気分転換

  158. 開所4か月目

  159. セルフケアって何だろう?②

  160. ビジネスマナー

  161. セルフケアって何だろう?

  162. ITエキスパート名古屋丸の内スタッフ紹介! ②イケメンカリスマ営業マン(^_-)-☆

  163. ITエキスパート名古屋丸の内スタッフ紹介! ①システムエンジニア サービス管理責任者

  164. 発達障害特化とは(^_-)-☆

  165. オフィスのおすすめポイント② (^_-)-☆

  166. ITエキスパート名古屋丸の内オフィス 4月1日開所しました(^^)/

オフィス情報

ITエキスパート名古屋丸の内オフィス

アクセス
名古屋市営地下鉄 桜通線/鶴舞線「丸の内駅」3番出口すぐ
電話番号
052-218-4877