9日目①(2025.02.08)Innerclass②

5時20分
パソコンを起動、YouTubeとeclipsecを立ち上げる。
今日も楽しんでやっていこう!!

★Innerclass インナークラス

まずは前日の7日(8日目)に学んだ、Innerclassの復習。
Innerclassについて、動画を見ながら学んだものの、ハッキリ言って全く分からなかった、、
そもそもInnerClassってなに??(どうやって人に説明する??)
なんで1つのクラスの中にようわからんクラスを入れるの??
そんな感じで頭がショートして終わったのが8日目。

「今日は、絶対にInnerClassを理解するぞ!!」という意気込みのもと、まずは何が分からないのかを整理した。

・Innerclassは、外部のクラス内に設置して、外部クラスからメソッドを取り出せるということは分かった。

・やっているうちに、「mainclass」と「Outerclass」と「Innerclass」の違いすら分からなくなって混乱してきた。

・どっからどのデータを持ってきているのか訳がわからなくなった。

うん、とりあえず、mainclass、Outerclass、Innerclassの違いを理解しよう。

(AI先生より)

Class:家みたいなもの
mainclass:玄関みたいなもの
Outerclass:部屋みたいなもの
Innerclass:部屋の中にあるクローゼットみたいなもの

なるほど!!
なんとなくイメージが沸いてきた。

このイメージを持ちながら、再度、手本のコードと睨めっこしてみる。

(mainclass)
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.newInnerClass();
inner.display();

OuterClass.InnerClassてなんやねん、、
なんでドットがついてるねん、、
これまでもMapの時とかでちょいちょい見たけど「ドット」てなんやねん、、

これまでは「ふーん」と流していた「ドット」が気になりだした、、
AI先生に聞いてみよう!!

(AI先生より)

ドット演算子(”.”)は、
 ・オブジェクトのメンバー(パラメーター・動作)にアクセス
 ・パッケージ内のクラスへアクセス
という役割を持つ。


なるほど、、
100%理解したわけでもないけど、とにかくこの場合、「OuterClassがInnerClassにアクセスする」という理解でいいのかな、、
AI先生も「コード書いているうちに理解できるよ!!」って言ってくれてるし、ドットについてはこれでオッケーかな。
いや、もうちょいピンポイントで聞いてみるか、、

「OuteClass.InnerClassとはどういう意味ですか?」

(AI先生より)

OuterClass → 部活みたいなもの
InnerClass → 部員みたいなもの

OuteClass.InnerClass ⇒ OuterClassという部活に所属しているInnerClassという部員

なるほど!
少し理解度が上がった気がする!!!

よし、次にいこう!!

newってなんやねん

これも「ふーん」って流してたけど、よくよく考えると、newってなんやねん、、

(AI先生より)

変数=箱のようなもの←この箱にデータを入れられるようにするために「new」を使う。
おもちゃ箱にたとえると、、
おもちゃ箱 myBox ←これだけだと中身が入ってないただの箱
⇓ おもちゃの名前や値段を入れたい
おもちゃ箱 myBox = new おもちゃ箱();

これで「myBox」という名前でおもちゃの情報を入れられる「新しいおもちゃ箱」が作られたということになります。

  

なるほど、なるほど!!
なんかイメージは分かった!!

これでInnerClassについて理解できた気がする!!
よし、自分でコードを書いてみよう!!

<InnerClassを使って部員リストを出そう>


public class 部員データ

 String[]name = {“スグル”,”アタル”,”真弓”};

class 部員メソッド{
   for(String 部員名 : name){
    System.out.println(“部員名” + 部員名);

これをサブクラスにコーディング、メインクラスで実行コードを書き、実行!!!

はい、エラー。


forの中のnameが機能していないのはエラーで分かるけど、、
ほんまに分からん、、
こっからどれくらい時間が経っただろうか、、

このコードをAI先生に投げてみたところ、、
「class 部員メソッド」内のメソッドが定義されていないとのこと、、
AI先生の指示に従い、forの上に「void 部員名を抽出」と記載。

すると、、

コンソール画面に
スグル
アタル
真弓
と記載された!!

ありがとう!!
AI先生!!

本日は、この後にInterfaceについて勉強したけど、長くなるので、この記事はここらへんで終わりにします!!

さあ、引き続き楽しもう!!!

コメントを残す