ポリモフィズムとは何か、使い方やメリットをコードで解説【Java入門講座】4-7 抽象クラスとポリモーフィズム

Поделиться
HTML-код
  • Опубликовано: 8 янв 2025

Комментарии • 90

  • @にゃのもー
    @にゃのもー Год назад +6

    文字だけを読み上げる教授の授業よりイメージがしやすくてちゅき

    • @SekaChan
      @SekaChan  Год назад +3

      にゃのもーさん、コメントありがとうございました!
      ここは特に難しいところなので、イメージをつかんでもらえてたら嬉しいです😄

  • @HitoshiSHIMURA
    @HitoshiSHIMURA 8 месяцев назад +5

    菅原先生の説明はいつもとても分かりやすい。2年前の動画が今でもとても役立ちます。素晴らしい。いつもありがとうございます。

    • @SekaChan
      @SekaChan  8 месяцев назад +2

      ありがとうございます😄
      この動画を公開したとき、チャンネル登録者が50人くらいしかいなかったんですよね。
      ここまで続けてこられたのはみんなのおかげです!

    • @HitoshiSHIMURA
      @HitoshiSHIMURA 8 месяцев назад +1

      @@SekaChan わたしはIT業界を定年リタイヤした後、就労支援事業でIT担当の職業指導員をしていますが、Javaの学習するなら菅原先生の動画が素晴らしいから観るようにと勧めています。私自身がとても勉強になります。これから更に勉強させてもらいます。

  • @内田翔太-h9d
    @内田翔太-h9d 2 дня назад

    動画もわかりやすいのに、視聴者の質問も質が高くて、さらに菅原先生がその質問に対して詳しく解説してくださるので、コメント欄を見るだけでもかなり勉強&復習になる。本当にいいチャンネルだ。
    独学でJava勉強したときはこのあたりの概念が難しすぎて挫折したけど、何とか理解できてきた。
    ただ、未だにどの順番で処理の流れを読み解いていくといいのかがわからない。
    メインメソッドから呼び出されたクラスを順に追っていくとよいのだろうか。
    それとも、一番下の階層にあたるクラスからメインメソッドに向かって読み進めていくとよいのだろうか?
    4章から、クラスの処理の追い方が複雑で、もっと大きなプログラムになったときの読み進め方のコツみたいなものがあるのだろうか。

    • @SekaChan
      @SekaChan  16 часов назад

      そうですね!みなさんがコメントしてくれるおかげで、動画ごとに「悩みどころ」がまとまってきました。
      特にこのあたりは概念が難しいですよね‥。理解が深まって良かったです。
      処理の流れをどのように読み解くかは、プログラムの規模によりますね。
      4章くらいの規模あれば、メインメソッドから読み解いていっても良いと思います。
      提供されているクラスを利用する場合は、そのクラスの情報を読み取る必要が出てきます(6章を参照)。

    • @内田翔太-h9d
      @内田翔太-h9d 10 часов назад +1

      @ まさか返信をいただけるとは思っておりませんでした…🙏
      ここまで丁寧に、熱意のある講師の動画で勉強させて頂いて感謝しかありません。
      読み解き方は規模によって違うんですね。
      これまで(4章まで)のプログラムはメインメソッドからがむしゃらに読み解いて来ましたが、的外れなやり方じゃなかったようで安心しました。
      動画がわかりやすくて、今まで分からなかったことが分かっていって本当に楽しいです
      ノートとりながら毎日ちょっとずつ進めていて、今日4章の演習が終わるので、5章に入るかと思います。
      提供されているクラスの読み解き方については6章参照とのこだったので、そこまで行き着くのを楽しみに進めていきます。

  • @aaacc8775
    @aaacc8775 Год назад +5

    毎回とてもわかりやすくてありがたいです。
    字もとても綺麗ですね!

    • @SekaChan
      @SekaChan  Год назад

      aaa ccさん、コメントありがとうございました!
      ここは難しい内容なので、わかりやすいって感じてもらえて良かったです。
      字は気持ちを込めて書いてます!

  • @veele5114
    @veele5114 2 года назад +4

    面白い!
    プログラミングの世界が広がっていく感覚にワクワクします。

    • @SekaChan
      @SekaChan  2 года назад +2

      Ve Eleさん、コメントありがとうございました!
      抽象クラスやポリモフィズムは、入門講座の中でトップクラスに難しい内容です。
      この動画を観て面白いと感じられる人は、きっとプログラミングの素質があると思いますよ👍
      これからもその調子で楽しく勉強していってください!

  • @BUMP_OF_CHICKEN_TV
    @BUMP_OF_CHICKEN_TV 2 года назад +9

    4章入ってからずっと難しい(汗)
    モコモコの登場人物が多すぎて、頭の中のイメージがモコモコだらけになってます。

    • @SekaChan
      @SekaChan  2 года назад +2

      ニコルさん、コメントありがとうございました!
      たしかに、4章は難しい内容ばかりですね💦
      5・6章は比較的理解しやすいので、復習などをしながら無理せず理解を深めていってください!

  • @ああああ-z5y2w
    @ああああ-z5y2w 8 месяцев назад +4

    自分用メモ
    継承では スーパークラスを元にサブクラスを作る
    サブクラスを元にスーパークラスを作る

  • @佐々木敬-x2b
    @佐々木敬-x2b Год назад +3

    clasの機能追加より私は中小クラスの方が理解しやすいです。トップダウンよりボトムアップするプログラムの作り方はとても面白い考え方です。

    • @SekaChan
      @SekaChan  Год назад +1

      佐々木さん、コメントありがとうございました!
      たしかに、ボトムアップの考え方は面白いですよね。特に開発するシステムの規模が大きくなるとよくみられる考え方です。

  • @reina_akagi
    @reina_akagi 3 месяца назад +1

    いままで業務でplsqlしか経験がなく、いろいろなサイトを見てjavaの勉強をしようと試みていたのですが、大体このあたりの話になると理解が難しくなっていました。メリットなどを含めて話してくださるので、どういう場面でどの技術を使うべきなのかがイメージしやすく助かります。ありがとうございます。

    • @SekaChan
      @SekaChan  3 месяца назад

      PL/SQLからJavaだと、たぶんオブジェクト指向に入ってから難しく感じますよね。
      オブジェクト指向の中でも、とくにつまづきやすいのが4-6~4-8の内容です。
      ここを乗り越えればこの先は理解しやすいので、焦らずその調子で勉強していってください!

  • @にーに-d7v
    @にーに-d7v 2 года назад +5

    いつも勉強させて頂いております。(^^♪今後、Java Silverの傾向と対策動画もお願い致します。

    • @SekaChan
      @SekaChan  2 года назад +1

      にーにさん、コメントありがとうございました!
      Java Silverの対策動画ですね。シリーズ化も含めて、動画にできそうかを検討してみます🍀

  • @堀内喬太-d3k
    @堀内喬太-d3k 2 года назад +7

    いつもわかりやすい動画ありがとうございます!
    もし可能でしたら
    ポリモーフィズムを使わないと今回の場合は
    どのような煩雑?なコードになるのかということを知りたいです!
    お忙しいところ申し訳ございません

    • @SekaChan
      @SekaChan  2 года назад +12

      堀内喬太さん、コメントありがとうございます。
      ポリモフィズムには、参照型の型変換が深く関わっています。
      そのため、「ポリモフィズムを使わない」という条件を「参照型の型変換ができない」に置き換えると、Student6クラスのコンストラクタは引数としてClubのサブクラスのオブジェクトを受け取れなくなります。
      つまり、コンストラクタが次の1つだけで良かったのが‥
      ---
      public Student6(String name, Club club){
      this.name = name;
      this.club = club;
      }
      ---
      次のようにClubのサブクラス分だけ作成する必要があります。
      ---
      public Student6(String name, TandF club){
      this.name = name;
      this.club = club;
      }
      public Student6(String name, Football club){
      this.name = name;
      this.club = club;
      }
      ---
      将来的に、サブクラスが増えたら新しくコンストラクタを作らなければならないし、コンストラクタ内の処理を変更したいときも全部のコンストラクタを修正する必要が出てきます。
      このように「呼び出されるメソッドを1つにまとめられる」のは、ポリモフィズムの大きなメリットですね。

    • @nokonokonokonokonoko
      @nokonokonokonokonoko Год назад +2

      @@SekaChan 横からコメント失礼します。こちらの先生のご回答で長らく理解できなかったポリモフィズムが理解できました。ありがとうございます!!

  • @にゃにゃ-p6m
    @にゃにゃ-p6m Год назад +3

    いつも感謝しながら動画を見ています!
    19:36で質問なのですが、 StudentクラスのスーパークラスがClubクラスなのは何故でしょうか?extendsが入ってなかったので、どうやって継承関係にしたのか気になりました。

    • @SekaChan
      @SekaChan  Год назад +2

      にゃにゃさん、コメントありがとうございました!
      19:36のところ、テロップだけをみるとStudentクラスとClubクラスが継承関係にあるように読み取れてしまいますね‥。勘違いさせてしまってすみません🙏
      たしかに、StudentクラスとClubクラスは継承関係にないですね。
      19:36過ぎで「そのスーパークラスである」と話している「その」というのは、少し前に話した「Baseballクラス」を指していると考えてもらえたらと思います。

    • @にゃにゃ-p6m
      @にゃにゃ-p6m Год назад +2

      @@SekaChan ありがとうございます!これからも菅原様の作った素晴らしい動画で勉強していきます!いつもありがとうございます!

  • @ヤーコン-f5i
    @ヤーコン-f5i Год назад +10

    いつも分かりやすい動画ありがとうこざいます。他の方も質問されているように、「Club club」の部分がイマイチ分かりません。
    Club club はオブジェクトの位置情報が空欄の変数ということなのでしょうか?
    (Club club = new Club();の左側だけだから)

    • @SekaChan
      @SekaChan  Год назад +7

      ヤーコンさん、コメントありがとうございました。
      その通りですね👍
      Club club; は String name; のように、中身がからっぽの変数を定義している記述です。
      Studentクラスのコンストラクタが呼び出されたときに、(this.club = club; で)オブジェクトが代入されることになります。

    • @ヤーコン-f5i
      @ヤーコン-f5i Год назад +3

      ご返信ありがとうございます!
      実行クラスにて生成されたオブジェクトを入れる箱がClub club(Student6クラスの3行目や5行目)ということが分かりました😊
      Club clubだとClubクラスのオブジェクトを入れる箱だと思うのですが、その中にtafが入ってもいいのでしょうか?
      (Club club = new TandF(陸上部);)

  • @シュ-f7x
    @シュ-f7x 2 года назад +14

    いつも動画ありがとうございます。
    他の方の質問にもあったんですが、 
    Club club;  の記述の部分がわかりません・・
    (変数のデータ型をクラス名にも替えることができる) →ここの部分はどの動画で説明があったか
    教えてもらえないでしょうか。また、
    (Club clubの場合、変数clubの中にはClubクラスを継承したサブクラスのオブジェクトを入れられます。)
    → ここの部分がどうしても理解できずとまってしまっています。
    club.display( );
    の club はどのような働きをするのかがわかりません。 インスタンス化ができないということは、Club club = new Club( );  は
    不可ですしコードにも無いですよね・・?
    stu1.display( );
    の stu1 とは違う意味をもったモノであるとは思うのですが、、すみませんが教えていただけると助かります。

    • @SekaChan
      @SekaChan  2 года назад +11

      シュウヤさん、コメントありがとうございました。
      初めてデータ型のところにクラス名を記述したのは、こちらの動画です!
      → ruclips.net/video/HalozHg1LMM/видео.html
      たしかに、ここはものすごくややこしいですよね💦
      Club club の club は、【Clubクラスの設計図に基づいて利用できる(=Clubクラスが持つメンバ変数やメソッドを呼び出せる)オブジェクト】という意味合いを持ちます。
      コンパイラはコード内の各変数が適切にメンバ変数やメソッドを利用しているかをチェックしていますが、clubに対してはClubクラスに定義されている情報のみを使っているかを調べているわけです。
      「Clubクラスを継承したサブクラスのオブジェクト」は、必ずClubクラスのメンバ変数とメソッドを保持します。
      よって、サブクラスのオブジェクトをclubに代入しても、clubからClubクラスのメンバ変数やメソッドを呼び出すことができます。
      (ただし、サブクラス独自のメソッドを呼び出すと、Clubクラスには定義されていないためコンパイルエラーになります)

    • @シュ-f7x
      @シュ-f7x 2 года назад +5

      @@SekaChan
      ご返信ありがとうございます!
      Club club; と宣言だけしておくのはOK ということですね
      考え方は、
      Student6 クラスに、型がClus のフィールド変数club を持たせる
      public Student6(String name, Club club){
      this.name = name;
      this.club = club;
      とあって、
      stu1  の場合、 name には菅原  club には taf が入り
      club.display( ); は taf.display( ); と同じ。
      TandFクラス は Clubクラス がextend されて(Club をextendして?) いるので
      taf.display( ); 
      はClubクラスにある
      System.out.println("部活動 :" + name);
      が実行される
      という感じでよろしいでしょうか?
      おいそがしいところすみません

    • @SekaChan
      @SekaChan  2 года назад +9

      そうですね👍
      Club club; と宣言だけするのはOKです。
      taf.display() はTandFクラスのdiplay()メソッドを呼び出しますが、実際には継承(extends)しているClubクラスのdiplay()メソッドを実行することになります。
      (TandFクラスでdiplay()メソッドがオーバーライドされている場合は、オーバーライド後のメソッドを実行します)

    • @シュ-f7x
      @シュ-f7x 2 года назад +3

      ありがとうございます!
      使いこなせるようがんばります!

    • @みや-l8r
      @みや-l8r 11 месяцев назад

      @@SekaChanpractice();はサブクラスでオーバーライドしているという認識であっていますか?

  • @パトラ-t3i
    @パトラ-t3i 6 месяцев назад

    いつも丁寧な動画を提供していただきありがとうございます。難しく感じてきたので、また質問させてください!動画内の14:34の箇所です。
    ①Student6クラスの3行目のPrivate Club clubというのはClubクラス型のclubという名前の変数と認識しておりますが正しいでしょうか。
    ② Student6クラス9行目以降のclub.displayメソッドを呼び出した際に、Clubクラス型を継承しているから、TF,FBクラスのdisplayメソッドを呼び出してもコンパイルエラーが発生しないということでしょうか?
    ※実行用クラス7行目
    stu1.display();の処理の部分です。

  • @たける-z2t
    @たける-z2t Год назад +6

    Student6(String name, Club club)の部分でClub clubにtafオブジェクトが引数として渡されていますが、サブクラスだから引数で渡されるという認識で良いですか?また、tafオブジェクトが渡されたということは変数名clubが指すアドレス先がtafオブジェクトになったということでしょうか?

    • @SekaChan
      @SekaChan  Год назад +2

      たけるさん、コメントありがとうございました!
      サブクラスだから引数として渡せる、変数clubが指すアドレスの先にはtafオブジェクトがある、という認識は両方とも正しいですよ👍

    • @たける-z2t
      @たける-z2t Год назад +3

      @@SekaChan ありがとうございます!めちゃくちゃ分かりやすいです!

  • @megane4942
    @megane4942 2 года назад +6

    いつも勉強させていただいております。
    Student6クラスに関して質問させてください。
    ①String nameのStringはシステム側で用意されているクラスで
     Club clubのClubは自身で定義した抽象クラス、
     clubは陸上やサッカーのクラスをいれるための変数という認識であってますでしょうか?
    ②①の認識であっている場合、Clubのimportは行わなくてよいのでしょうか?
     (StudentクラスではClubを継承もしておらず、importもしていないのに記述してもよいのでしょうか)

    • @SekaChan
      @SekaChan  2 года назад +7

      meganeさん、コメントありがとうございました。
      ①→その認識でほぼ正しいですね🍀
      厳密にいうと、clubは陸上やサッカーの(クラスではなく)オブジェクトをいれるための変数です。
      ②→Clubのimportは行わなくて大丈夫です。
      ClubクラスはStudent6クラスと同じフォルダ内に入れているので、importをしなくても利用することができますね。

    • @megane4942
      @megane4942 2 года назад +4

      @@SekaChan丁寧なご回答ありがとうございます。
      同階層にあれば、importはしなくてよいのですね!
      そこらへんの認識があいまいだったので大変助かりました!

  • @agusamu1
    @agusamu1 2 года назад +9

    いつもわかりやすい動画をありがとうございます!
    動画でも出てきております「①機能追加」「②共通点まとめ」に関して抽象クラスの利用意図についていまいち腹落ちしていないため、確認させてください。
    Q1:抽象クラスで定義する意図はオーバーライドを前提にするか、しないかという意図と理解しました。
    抽象クラスでなくてもオーバーライドはできるので、抽象メソッド・クラスを作る、使う必要になってくるポイントがわからなくなりました。具体的にはどういう目的で抽象メソッド・クラスを使うべきなのでしょうか。(オーバーライド前提となることで処理をサブクラス側で分けさせたい場合のオーバーライド漏れ(作りこみ漏れ)を防ぐという目的でしょうか。)
    Q2:共通点まとめが発生する場合のユースケースと開発の流れを知りたいのですが、動画のクラス例でいうとTandFクラス、footballクラスを最初につくっていた状態でその後要件追加が発生し、同じ機能を持つ複数のクラスを作る必要性が出てきたら、サブクラスの機能を共通化したClubクラス(抽象クラス)を作り、抽象クラスを継承するようTandFクラス、footballクラスを直すというように工程を踏むのでしょうか。

    • @SekaChan
      @SekaChan  2 года назад +7

      agusamu1さん、コメントありがとうございました。
      まずQ1については、オーバーライド漏れを防ぐ目的という認識で正しいです。
      通常のクラスを継承してオーバーライドすることもできますが、この場合はオーバーライドをしなくてもコンパイラは何も伝えてくれません。
      それに対して、抽象クラスを継承した場合は抽象メソッドの中身を実装しないとコンパイルが通らないため、オーバーライド漏れを必ず防ぐことができます。
      Q2はそのような工程を踏む“ことも”ある、という感じですね。
      最初から要件追加の可能性を踏まえてClubクラスを作っておけたら理想です。
      ただ、システムが稼働した後で要件追加が発生したら、書いてくれたような工程を踏むこともあります。
      追加クラスが1つしかない場合なら、わざわざClubクラスを作らないケースもあるでしょう。
      機能追加の規模や開発現場(人や時間、資金など)の余裕度にもよって、どのような対応をとるかは変わりますね😄

    • @agusamu1
      @agusamu1 2 года назад +3

      @@SekaChan
      丁寧に回答頂き誠にありがとうございます!理解出来ました!
      これからも本チャンネル応援してます!

  • @icantspeakenglish10
    @icantspeakenglish10 Год назад +3

    4章大事

  • @丸山雅士-v7b
    @丸山雅士-v7b Год назад +3

    動画を見ながら勉強させていただいています。
    前回の動画内容に続きかなり混乱しています。
    club class は抽象クラスでありスーパークラスだという認識をしているのですが、Student classもfinalではないためTandF classとfootball classのスーパークラスであるという認識であっていますでしょうか?

    • @SekaChan
      @SekaChan  Год назад +3

      丸山雅士さん、コメントありがとうございました。
      たしかに、このあたりは入門講座の中で一番難しいところですね。
      「Clubクラスは抽象クラスでありスーパークラス」という認識は正しいですが、「StudentクラスもTandFクラスとFootballクラスのスーパークラス」という認識は誤りです。
      TandFクラスもFootballクラスもクラス定義に「extends Club」とあるため、これらのスーパークラスはClubクラスですね。

  • @ふくぽん-y2m
    @ふくぽん-y2m Год назад +10

    きちんと概念を教えて下さる解説が他にないので、初学者の自分としては非常に助かっております。本当にありがとうございます。急がば回れと思いながら、動画を何度も見直しながら自分の中に落とし込む作業をしています。
    ただ、どうしてもわからないのでご教授下さい。( ゚Д゚)
    Student6クラスでクラブオブジェクトが出てくるのですが、これが何で、どこから出てくるのかがわかりません。Clubオブジェクトのclub変数???こんなのやったっけ?って感じです。さかのぼって参照型の型変換も何度も視聴していますが、何か見落としていると思うので、どの動画を見たらよいのか、ヒントを頂けないでしょうか???

    • @masarich12
      @masarich12 Год назад +5

      すみません。先生ではありませんが、ちょうど私も同じ質問をしようと思ったら、他のコメントでもたくさん先生が回答されてるようなので、それを読まれてみてはいかがでしょうか。←自分も今読んでます。

    • @ふくぽん-y2m
      @ふくぽん-y2m Год назад +3

      @@masarich12
      ありがとうございます!!
      すぐに確認してみます。
      ご親切に教えて頂き感謝でございます。🙇‍♂️

    • @masarich12
      @masarich12 Год назад +4

      @@ふくぽん-y2m 自分のコメント編集しちゃいましたが、下にも同じ質問&回答がいくつかあるので、先生のコメント見てみてください。私も今読んで勉強中です。

    • @ふくぽん-y2m
      @ふくぽん-y2m Год назад +3

      @@masarich12 そうですね。まずは、コメント読んでから質問するようにいたします!!

    • @ふくぽん-y2m
      @ふくぽん-y2m Год назад +3

      追記 コメント読みました。
      他の皆さんも同じような事で疑問をもっていたのですね。パニクって質問をしてしまいました。
      諸々スッキリしつつあります!!

  • @基本情報学習中君
    @基本情報学習中君 2 года назад +6

    いつもありがとうございます。質問なのですが、public class student6のメンバ変数でCulbオブジェクトを定義していますが、オブジェクトをメンバ変数にすうというのがイメージができないのですが教えていただけますでしょうか。

    • @SekaChan
      @SekaChan  2 года назад +3

      基本情報学習中君さん、コメントありがとうございました。
      「オブジェクトをメンバ変数にする」というのは、例えば3-3の動画でStudentオブジェクトの図を書きました( ruclips.net/video/HalozHg1LMM/видео.html )が、この変数nameがclubにかわるイメージですね。
      "菅原"の文字列のところが、Clubオブジェクトのモコモコにかわると思ってください👍

    • @たかしさいとう-h9g
      @たかしさいとう-h9g 2 года назад +3

      @@SekaChan 承知しました。本当にありがとうございます!!😭

  • @ユリンゴ-g3n
    @ユリンゴ-g3n Год назад

    抽象メソッドが無い場合でも、「abstract class クラス名」は使えますか?

  • @sanrushieru
    @sanrushieru 2 года назад +7

    Club clubの書き方が理解できません。Club club = new Club( )とかになるようにかんじてしまいます。難しいです

    • @SekaChan
      @SekaChan  2 года назад +3

      Yoshida Sanさん、コメントありがとうございました。
      たしかに、4-6~4-8は基礎講座の中で一番難しい内容ですね💦
      「Club clubの書き方」がどんなことを指しているのかが分からないのですが、オブジェクト生成時のメモリ上の動き(newで何が起こって、変数clubの中に何が入るのか)が分かれば、もしかしたら解決につながるかもしれません。
      よければこちらの動画も参考にしてみてください→ruclips.net/video/HalozHg1LMM/видео.html

  • @minghuhe199
    @minghuhe199 Год назад +1

    ソースファイルはどこでしょうか。

    • @SekaChan
      @SekaChan  Год назад

      概要欄のリンクからダウンロードしてもらうことができます。
      念のため、こちらにも掲載しておきますね。
      bit.ly/3GMTkxX

  • @ted9622
    @ted9622 7 месяцев назад

    eclipceでプログラムを開いていつも授業を見るのですが日本語だけ文字化けしてしまいます
    なにか解決策はありますでしょうか

  • @nisemonar12
    @nisemonar12 8 месяцев назад

    Clubクラスにおいて抽象メソッドのpracticeメソッドを書くメリットが分かりません。これを書かずにTandFクラスやFootballクラスにpracticeメソッドを書くとエラーが起こるのでしょうか?
    お忙しい中申し訳ないですが、教えて貰えると助かります🙏

    • @SekaChan
      @SekaChan  8 месяцев назад +1

      Clubクラスで抽象メソッドを定義せずにTandFクラスやFootballクラスにpracticeメソッドを書いてもエラーにはならないですね😄
      抽象メソッドを書くメリットについては、17:54以降を見てみてください。

    • @nisemonar12
      @nisemonar12 8 месяцев назад +1

      @@SekaChan お忙しい中返信ありがとうございます🙏
      とりあえずメリットはコードの書き方を統一できるということですね!
      今の簡単なコードではあまりメリットは感じられないけど、開発などをしていく上でもっと大規模になると大きなメリットになるのかなと考えました🤔

  • @su-xo8io
    @su-xo8io 2 года назад +5

    Club club; の書き方についてですが、変数のデータ型をクラス名にも替えることができるという認識で大丈夫でしょうか。

    • @SekaChan
      @SekaChan  2 года назад +4

      s uさん、コメントありがとうございました。
      その認識で大丈夫ですよ👍
      Club clubの場合、変数clubの中にはClubクラスを継承したサブクラスのオブジェクトを入れられます。

  • @masuyou6587
    @masuyou6587 2 года назад +4

    知らない単語がでたとき、その本来の意味を知ると、その意味がわかります。
    ポリモーフィズムpolymorphism
    1 〘生物〙 多形性.
    2 〘結晶〙 同質異像.
    JAVAコンパイラを設計した人がこの名称にした。
    語源の意味の説明も合わせてしてください。

  • @コバヤシトウマ
    @コバヤシトウマ Год назад

    クラブクラブって何??

    • @ああ-n3o7y
      @ああ-n3o7y 9 месяцев назад

      Club型の変数club。
      アドレス値が入る空の箱を用意してます。

  • @JJ-gk9cv
    @JJ-gk9cv 2 года назад +4

    素晴らしい解説動画をご提供いただき、大変ありがとうございます。
    お陰様で、今度こそJavaに慣れることができそうな手ごたえを感じています。
    ひとつだけ質問させていただけますでしょうか。
    Lesson10の3(最後の例題)のコンパイルを行う際に、設計クラスおよびインターフェイスのjavaファイルをパッケージのフォルダに
    移動させて再コンパイルを行うことでエラーを回避する以外に方法はございますでしょうか。
    当方で調べてみたところ、javacには-classpathオプションがあるようですが、以下のように記述しても同様のエラーになります。
    javac -d . -classpath . *.java
    ご都合が良い時にアドバイスを頂けますと幸いです。

    • @SekaChan
      @SekaChan  2 года назад +1

      JJさん、コメントありがとうございました。
      僕の動画がJavaの勉強に役立っているようで良かったです😄
      4-10の問題3について、-classpathオプションを使うと下記の記述でコンパイルできますね。
      javac -d . -classpath mypack *.java
      (-classpath mypackとすると、UseVehicle.javaのコンパイル時にmypackフォルダ内の情報も見にいきます)
      ※コメント欄での質問回答は、視聴者さん全員に参考にしてもらいたいと考えています。
       お手数ですが、次回は該当動画のコメント欄で質問してもらえると嬉しいです🙏

    • @JJ-gk9cv
      @JJ-gk9cv 2 года назад +2

      お返事をいただき、ありがとうございます!コメントさせていただく動画を間違えてしまい、大変申し訳ございません。総集編のビデオを拝聴させていただいてますが、コメントを記入するときに対象の動画を間違えたようです。
      周りの知人や友人、職場の同僚などに「せかチャン」を薦めていて、これからみんなで勉強してゆきたいと思います。どうぞよろしくお願いいたします。🙂

    • @SekaChan
      @SekaChan  2 года назад +1

      @@JJ-gk9cv さん、返信ありがとうございました!
      総集編の動画を見てくれてたんですね。どのコメント欄で質問すれば良いかが分かりにくいこともあると思うので、可能な範囲で意識してもらえたら大丈夫です👍
      周りの方たちに薦めてくれてありがとうございます!!このチャンネルで勉強しようっていう仲間が集まってくれるおかげで、僕も動画づくりにすごくやりがいを感じてます。これからもよろしくお願いします✨

  • @marikoko3919
    @marikoko3919 Год назад +1

    あけましておめでとうございます。先月知り合いに教えてもらって、動画拝見させていただいています。還暦の手習いです(苦笑)。とても分かりやすくて助かります。ずいぶん日が経っているのですが、質問させていただいてよいでしょうか。やはりClub clubで引っかかっていて、皆さんのコメントと先生の返答を読ませていただいて、何となく理解できたと思うのですが、もしかしたら 『private Club bukatsu;』 でも良いのでしょうか。で、『public Student6(String name, Club bukatsu){』、『this.bukatsu=bukatsu; 』 クラス名Clubと変数名 clubは同じclubである必要はありますか?ご返答いただけると嬉しいです。よろしくお願いします。

    • @SekaChan
      @SekaChan  Год назад

      mariko koさん、明けましておめでとうございます!
      > private Club club;
      のところは、
      > private Club bukatsu;
      でも大丈夫ですよ😄
      (コンストラクタの記述も書いてもらった通りでOKです)
      実際の開発現場ではクラス名とオブジェクト変数名を合わせることも多いため、今回のサンプルでも「Club club」としました。
      ただ、分かりにくくなっちゃったかなと反省しています‥

    • @marikoko3919
      @marikoko3919 Год назад +1

      早速のご返信感激です
      これでスッキリしました
      ありがとうございます
      先に進んでみたら、まだまだ難しい事が盛り沢山ですが、何とかしがみついて理解をして、アプリを作ってみたいと思ってます
      章の終了時に掲載される応援メッセージにも励まされてます
      これから、過去の講座も拝見しに行きます
      心より応援してます
      ありがとうございました