オブジェクトとインスタンスの違いは何?オラクル社のテキストではどう解説してる?【Java入門講座】
【初心者向けJava入門講座】オブジェクトとインスタンスの違いや使い分けを解説しました。
(ニスコさんからのリクエスト動画です。コメントありがとうございました!)
⭐無料&楽しく勉強できる場所を作りたい!そんな想いで授業動画を作ってます😁
→チャンネル登録/高評価/周りにオススメ で応援してもらえると嬉しいです✨✨
🌸チャンネル登録はこちら!
kzread.info?su...
👀関連動画・サイトはこちら!
▼3-1 オブジェクト指向
• オブジェクト指向の必要性とメリットが理解でき...
▼3-3 オブジェクトの使い方
• インスタンス化の方法とメモリ内部の動きを解説...
▼3-6 コンストラクタ
• コンストラクタを作る3つのコツと使うメリット...
▼授業動画の一覧
• 独学でJavaプログラミングをマスター!初心...
💡チャプター
00:00 オープニング
01:02 なぜ混乱するか
02:03 説1
02:44 説2
04:06 説3
05:11 使い分け方
🙋♂️プロフィール
【せかチャン 菅原】
・東京工業大学大学院 情報理工学研究科 卒業
・大学生、大学院生のときに5年半塾講師
・IT研修講師として情報技術、プログラミングのセミナーを企画・実施
・Oracle社より「Instructor of the Year(満足度日本一)」「Java講師賞」を4年連続受賞
「分かった!」と言ってもらえる瞬間、勉強を楽しいと感じてもらえる瞬間が好きです。
フリーラーニング(無料で学べる場)を広げたいと思ってKZreadをはじめました。
一緒に楽しく勉強&成長していきましょう!
📳Twitter
/ sekachanit
🎵音源提供
DOVA-SYNDROME
dova-s.jp/
※動画によっては使用していない場合があります
#Java #プログラミング #せかチャンのJava入門講座
Пікірлер: 49
まとめ 1.オブジェクト=インスタンス 2.オブジェクト(クラス、インスタンス)は全て"モノ" 3.設計ではオブジェクト、メモリ上にnewされた時インスタンスとよぶ クラスから生成された個々のオブジェクトを特にインスタンスと呼ぶ(Oracle) つまりインスタンスもオブジェクトの言葉のうちの一つ。
@SekaChan
2 жыл бұрын
ri riさん、まとめありがとうございました!!! すごく分かりやすくて感謝です✨✨ (トップに固定させてもらいますね)
@riri2750
2 жыл бұрын
@@SekaChan いえいえ菅原先生の動画が分かりやすすぎて記憶するために自分用にまとめただけです。こちらこそ感謝です!!
@user-jx4nb6zn7y
Жыл бұрын
つまり、こうだ。 インスタンスは必ずオブジェクトであるが、オブジェクトは必ずインスタンスとは限らない。
@SS15SS13
2 ай бұрын
マック(マクド)みたいですね😄 1.オブジェクトとしてのマック(マクド) →店舗(バーガーやポテトを生み出すクラス) 2.インスタンスとしてのマック(マクド) →バーガーやポテトそのもの(実体) 例) 1.「マック(マクド)行く?」 2.「マック(マクド)食べる?」
曖昧だった両者の違いが、図を元にした解説のおかげで理解が深まりました。
@SekaChan
2 жыл бұрын
juvat911さん、コメントありがとうございました! オブジェクトとインスタンスって似てるのでややこしいですよね💦 この動画で理解が深ったようで良かったです!
丁寧な解説ありがとうございます!
@SekaChan
2 жыл бұрын
ニスコさん、こんにちは。 この動画はニスコさんに向けて作りましたが、いいね率が高いので他の人にも参考にしてもらえたのかなって感じてます✨ こちらこそ、質問コメントありがとうございました!!
とてもわかりやすかったです
@SekaChan
11 ай бұрын
コメントありがとうございました! わかりやすいって感じてもらえて嬉しいです。
newして作ったモコモコがインスタンスと頭の中で画像がされてましたw いろんな人のコメントもすごく為になります、ありがとうございます。
@SekaChan
6 ай бұрын
satou tilioさん、コメントありがとうございました! いろんな視聴者さんが意見してくれるおかげで、コメント欄もすごく参考になりますよね。 僕も皆さんとやり取りしていて勉強になります。こちらこそ感謝です😄
動画とても参考になりました。 今回のテーマについては概念の部分のためなんとか自分の中での落としどころ(正解)を探っていたところなので人によって解釈が異なるという部分は目から鱗でした。 個人的に説3で考えていたので、インスタンス化不要な「static」変数やメソッドについての考え方に悩んでいたのですが、そこで説2のすべてモノという考え方もあるのだというところで見解が広まり納得がいくようになりました。 自分のような方にこの動画が届くこと節に願っています!
@SekaChan
Жыл бұрын
ツナマヨネーズさん、コメントありがとうございました! オブジェクトとインスタンスって呼び分け方が難しいですよね。 たくさんの人が使い方を迷っていたりするので、この動画が落としどころを見つけるきっかけになれば嬉しいです😄
私は特に勉強しているわけじゃないけど ある人が「オブジェクトのインスタンスされてなくて…」と会話していた人に対して「ルー大柴さんみたいで変」と言ったシーンを思い出しました。最後のせかチャンの仰ってた相手に合わせるに符が落ちました。
@SekaChan
Жыл бұрын
深みどりさん、コメントありがとうございました! ルー大柴さんのツッコミ、良いですね!思わず笑っちゃいました。 なんとなく、IT業界にはルー大柴さんっぽい人がたくさんいる気がします💦
なんか「キリストが神そのものなのか、または神の言葉を聞くことが出来る人間なのか」が宗派によって意見が分かれている。 …という話に似ているなあ、と感じました。人によって定義が異なるなら、教わる人によって解釈が分かれてしまう現実も分かりますね。 軽い所に手が届く動画で助かりました、ありがとうございます。
@SekaChan
Жыл бұрын
オジーオズボボボボボーンさん、コメントありがとうございました! たしかに、その話に似てるかもしれませんね。 人によって考え方が違うと争いの元になりやすいので、みんながお互いの考えを受け入れられたら良いなと思います😄
@user-bx5qq6mr5e
Жыл бұрын
@@SekaChan 返信ありがとうございます。 ちなみに ×軽い所→〇痒い所でした。 打ち間違いすみませんm(_ _)m
英単語の意味から考えてみましたが、和英辞書を見ると オブジェクト(object):物、物体 インスタンス(instance):実例、事例、実証 とありましたので、オブジェクトは実体化されるもの全般(general)を指し、インスタンスはクラスで実体化されたもの(specific)を指すのかなと思いました。
@SekaChan
Жыл бұрын
ttt17さん、コメントありがとうございました! 他の視聴者さんにとっても参考になる内容を共有してくれて感謝です✨ オブジェクトが全般(general)、インスタンスが実体化されたもの(specfic)というイメージは僕も同じですね。
@ttt1758
Жыл бұрын
@@SekaChan 最近せかチャンでプログラミングを学びはじめたばかりですが、先生の雰囲気ととてもわかりやすい説明で楽しく学ぶことができ、感謝感激しております。本当にありがとうございます! これからもたくさん学ばせていただきます🙇♂️
割と漠然とした不特定なものを含むオブジェクトのうち、英語で言うところの冠詞 the が付くくらいの特定認識を持つ 具体的な何かについて触れる時、無意識にインスタンスって言い換えている感じがします。
@SekaChan
2 жыл бұрын
Pacmania100さん、コメントありがとうございました! 「冠詞 the が付く」っていう考え方はなるほど!ですね。 すごくイメージがつきやすい例えだなぁと感じました👍
先生の動画時々視聴してます🤩 その場で動画見てなるほど!って思ってもすぐ忘れちゃうので定期的に見とかないと 頭に定着しないです、、。😢 COBOLエンジニアでしたが、 今はJava扱ってます。 Javaとなるとフレームワークの使い方も出てくるので覚える事が沢山で大変です😭
@SekaChan
3 ай бұрын
Javaはいろんな用語や技術が出てくるので、慣れるまで大変ですよね… COBOLの経験があればプログラミング自体はOKだと思うので、オブジェクト指向あたりを定期的に確認してもらうと定着しやすい気がします。 僕もよくメソッド名とか忘れてAPIを調べたりしてるので、覚えるより理解できてれば大丈夫なのかなと思いますよ👍
オブジェクト=Newされなくても存在している静的な(staticな)オブジェクトと、Newでインスタンス化される動的オブジェクト(staticが付いていない)を総称したもの。 インスタンス=Newでコンストラクタを呼び出して生成されたもの=Newでインスタンス化されたもの。 静的なオブジェクトはインスタンスとは云わない という理解です。
@SekaChan
7 ай бұрын
Haru Hatanoさん、コメントありがとうございました! 静的(static)な「変数」や「メソッド」はよく聞きますが、静的な「オブジェクト」という言い方もあるんですね。勉強になりました😄 たしかに、静的なオブジェクトはインスタンスとはいわない気がします。
@naomasaki9
7 ай бұрын
@@SekaChan コメント、恐れ入ります。ご指導よろしくお願いします。インスタンスへの参照を渡す、をオブジェクトを渡す、と表現されている本が有ったりしまして、私のような初学者は
@naomasaki9
7 ай бұрын
@@SekaChan コメント、恐れ入ります。ご指導よろしくお願いします。インスタンスへの参照を渡す、をオブジェクトを渡す、と省略表現されている本が有ったりしまして、私のような初学者は分からなくなりますので 先生の解説は有りがたいです。
かなりわかりやすい説明ですね。 モジュールの使い方の動画を作るでしょうか。
@SekaChan
Жыл бұрын
益田明さん、コメントありがとうございました! わかりやすいって感じてもらえて良かったです😄 モジュールの動画は今のところ作る予定はないですね。
そもそもobjectとかいう一般的過ぎる言葉が良くないみたいなところありますよね… 元の英単語の意味が抽象的かつあまりにも広いから…😭
@SekaChan
4 ай бұрын
そうですね😄 元々はある条件下で動くいろいろなモノを全体的にシミュレーションするために生まれた考え方なので、モノを極限に抽象化したワードが「object」だったのかなと思います。
大変わかりやすいご説明で勉強になりました。ありがとうございます。 私は独学でExcelVBAを1年ほど学んでいるのですが、オブジェクト指向やクラスの考え方で躓いていたところ菅原さんのJavaの講座に出会い、プログラミングの概念や用語の理解を深めることが出来ました。 一つご質問なのですが、今後もpythonやJavaScriptなどさまざまなプログラミング言語を学びたいと考えているのですが、同時並行で勉強するのが良いか、それとも一つずつしっかりマスターして次の言語に取り組むのが良いかなど、おすすめの勉強方法があればご教示いただけると嬉しいです。
@SekaChan
2 жыл бұрын
DYさん、コメントありがとうございました! 僕の動画が参考になったようで良かったです。 いくつかの言語を同時並行で勉強するか、1つずつマスターするか、はその人の性格や状況(学ぶ目的・期間・開発経験など)によって変わりますね。 もし「3ヶ月後に初めてJavaWeb開発の案件が入った」みたいな切羽詰まった状況なら、Java一択でガンガン勉強するべきですから😄 同時並行の勉強は時間がかかりやすいのでモチベーションを保つのが難しかったりしますが、DYさんなら大丈夫だと思います。 ExcelVBAを1年学んでさらにJavaも勉強したことで、プログラミングやオブジェクト指向やの理解がより深まったわけですよね。これはグッジョブですよ👍 各言語を比べながら特徴を深く理解できたり新しい発見が多くて楽しく勉強できたりするのが、同時並行ならではの良さです。 ぜひ今のような勉強を進めていってください! (PythonやJavaScript、ExcelVBAあたりはこのチャンネルでもいつかやりたいなと思ってます)
コイツ神だろ
じゃあ、全部オブジェクトだけど、 クラスオブジェクト(設計図)からできたインスタンス(実体=オブジェクト)ってことでw
いつも楽しく拝見させていただいております。 以前別の型の開設動画を見ていた際に、public定義したclass(Data)のオブジェクトを取得しフィールドとして保持する、という解説とともに以下のような記述がみられました private Data data; public ThreadTest (Data data){ this.data=data }(コンストラクタ) この後、Dataに定義される別のクラスを呼び出す記述があるのですがこのようなnewを行わずに該当の別のファイルを操作できるケースというのはどういうことなのでしょうか。もしよろしければ教えていただけると幸いです。
@SekaChan
Жыл бұрын
いつも動画を見てくれてありがとございます! せっかくコメントしてくれたのに申し訳ないですが、質問が動画範囲外の内容であることと他の方が作ったプログラムに関するものであることから回答は控えさせてください。 (おそらくこのプログラムを解説されている方に直接質問をしたほうが、プログラムの制作意図も踏まえてより確かな回答を得られるのではないかと思います) また、下記の動画を見てもらうと解決のヒントが得られるかなと思います。 kzread.info/dash/bejne/lq6tk8upkZWWe84.html kzread.info/dash/bejne/k5mXpqxpqbGXn7w.html
@user-bq9db8zp7e
Жыл бұрын
@@SekaChan承知しました!ありがとうございます!
オブジェクトの中でインスタンスではない物は、具体的にどのような物になるのでしょうか?
@SekaChan
Жыл бұрын
H Oさん、コメントありがとうございました。 (オブジェクトとインスタンスの解釈は人や場合によって変わるので、僕自身の考え方としてお答えします) 僕はオブジェクトがメモリ上に実在していない(メモリは関係ない)場合、「インスタンス」ではなく「オブジェクト」という言葉を使うように意識しています。 例えば 『オブジェクト指向はクラスという設計図を基にして、たくさんの実物を作ることができる。この実物のことをオブジェクトという』 のように概念的な説明をするときには、「オブジェクト」を使うイメージですね😄
@FR030523
Жыл бұрын
@@SekaChan ありがとうございます。メモリ上にあるかどうかを一つの基準にすれば良いと理解できました。 人の解釈は色々あると思いますが、この基準で最初に覚えておけば、あとは人に合わせて理解しなおせば良いと思いますので助かります。
newしないでも使えるインスタンスはどういう位置付けになるんでしょうか
@SekaChan
Жыл бұрын
ミドリのカエルさん、コメントありがとうございます! 「newしないでも使えるインスタンス」って、例えばどんなものでしょう?🤔 質問を質問で返しちゃってすみませんが、教えてもらえるとより具体的な回答ができるかなと思います。
@bleebkeno
Жыл бұрын
コメントありがとうございます。 自分も詳しくないですが、例えばcalendarクラスはnewを使わないので気になりました。
@SekaChan
Жыл бұрын
返信ありがとうございました。 それはおそらく、Calendar.YEARやCalendar.DATEといった「Calendar.~」の記述のことかなと思います。 これはインスタンスではなく、static変数やstaticメソッドの呼び出しですね。 staticを使うと、インスタンスを作らなくてもクラス名から呼び出せるようになります。 (文字だけでは分かりにくいと思うので、こちらの動画を参考にしてみてください → kzread.info/dash/bejne/gm13uLNvedjXpbA.html )