科目B オブジェクト指向 が難しい

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
サクサクさん  
(No.1)
現在科目B オブジェクト指向を勉強しているのですが、これだけ全然理解できず、
特に「参照」という概念が理解出来ずに、正直心が折れかけています。
科目Aで出題される分については理解出来ているつもりでいるのですが。。。

皆さんはどのように科目B オブジェクト指向を学習・理解しておりますでしょうか。
私は「出るところだけ! 基本情報 科目B」を使って勉強しております。

お手数をおかけしますが、何卒宜しくお願い致します。
2023.09.29 16:26
まーぼさん 
FE ブロンズマイスター
(No.2)
“プリミティブ型と参照型”などのワードで一度検索してみることをおすすめします。クラス型は参照型に分類されます。

ListElement listHead = new ListElement();

とした時点で、変数listHeadにはあるListElement型のオブジェクトの参照が格納されることになります。変数listHeadという箱の中にListElement型のオブジェクトが入っているわけではなく、listHeadの中にはListElement型のオブジェクトが格納されているアドレス(住所のようなもの)が入っています。あたかも変数listHeadの中にListElement型のオブジェクトが入っているように扱えますが、実際はアドレスを見てListElement型のオブジェクトを参照しています。
2023.09.29 17:37
tesraさん 
(No.3)
うーん実際に何かプログラミング言語を使ってクラスを作ってみるとわかりやすいと思いますよ
ただ、あんまりオブジェクト指向についてつっこんで聞かれることはたぶんないと思いますよ
サンプル問題8、10でオブジェクト指向が出てきますが
これはどちらかというとオブジェクト指向の問題というよりキューと単方向リストの問題ですからね
2023.09.29 18:03
herixさん 
(No.4)
参照=変数
オブジェクト指向=値とnextを持つ箱

listheadやfirst=変数
curr,prev=変数

オブジェクト指向で
1,2,3(参照先)
A,B,C
2,3,null(next=2ならB,3ならC)
という
配列的な箱を作ったとします。

Bをcurrとした場合
listhead.val=A
prev.val=A
curr.val=B
prev.next.val=B
curr.next.val=C
curr.next.next=null

となります。

参考になれば幸いです。
2023.09.29 21:36
電タックさん 
FE ブロンズマイスター
(No.5)
本格的にプログラミングをはじめないのであればですが
基本情報(おそらく応用情報の午後プログラミングでも)の擬似言語でオブジェクト指向や参照の動作を100%理解出来ていなくても良いと思っています。

たとえ擬似言語でキューやリスト等のクラスが出てきても、数値しか扱えない整数型変数よりちょっとリッチな操作が出来るスーパー変数だなーぐらいの理解で良いと思っています。
・タダの整数型であれば値をボコボコ突っ込んで溜め込めないですが、キューというクラスであればいくつも値を溜め込める。
・タダの整数型では前の要素、後ろの要素なんて器用な覚え方は出来ないですが、リストというクラスであればそういう仕組みを変数に持たせることが出来る。
※ちなみに整数型は単純な操作しか出来ない。ですが整数型配列は要素数を知ることが出来ています。つまりリッチな操作が出来ているもの=クラスと考えられます。

科目Bを解く上で重要なのは
ある変数(参照?)に対して何処のポイントが代入されていたか?(先頭or末尾or一つ前等)や
どういった順序で突っ込まれていったか?等が見れれば十分だと思います。

合格頑張ってください。
2023.09.29 22:51
サクサクさん  
(No.6)
皆さん、ありがとうございます!
もう一度挑戦してみたいと思います!!
2023.09.30 08:08

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop