B問題のリスト、オブジェクト指向について
こだまさん
(No.1)
科目B対策で「出るとこだけ!基本情報技術者科目B」を進めているのですが、リストとオブジェクト指向の範囲が理解できず困っています。合格者の方はどういった勉強や対策、参考書を用いたかをお聞きしたいです。また、コツやアドバイスなどがあればご教示願いたいです。
2026.04.14 19:42
ジャバおさん
(No.2)
私の場合、無料で動かせるJavaのツール(eclipse)を使って実際に簡単なコードを書いて動かしてみてみました。オブジェクト指向プログラミングを理解するのに一番うってつけだと思います。基本情報技術者試験は擬似言語になりましたが、Javaでも考え方は一緒です。とりあえず資格が欲しい人には向かないかも知れませんが、ご参考になれば幸いです。
2026.04.15 09:47
strumさん
(No.3)
>コツやアドバイスなどがあればご教示願いたいです。
自分の身近な事に置き換えて考えるのが最も手っ取り早いのでは。
例えば学校の授業で先頭から順にプリントを回す一連の作業は経験があると思いますがあれってリスト構造に似ていませんか?
要素番号が席順で要素が名前や出席番号等。
それを前提に入れ替えすれば割と思考しやすい気がします。
置き換えの問題点は共通認識が無ければ他の人に伝わらないことですね。
私が購入した参考書にはオブジェクト指向を鯛焼きに置き換えて説明していましたが腑に落ちませんでした。
代わりにRPGを始めとするゲームに置き換えてやっと理解した次第です。
つまりこだまさんがゲームに興味が無かった場合私は上手く伝えられる自信がありません。
2026.04.15 15:33
すぎさん
(No.4)
クラス・インスタンス・オブジェクトあたりの理解が最初は難しいです。
B試験では
インスタンス≒オブジェクトの理解でかまわないと思います。
(本来はオブジェクトのほうが概念が広い)
オブジェクトはいろんなデータ(属性)を持ったひとつの塊です。
オブジェクト「サザエさん」は
名前:サザエ
性別:女
年齢:24
職業:主婦
prev:マスオ
next:カツオ
オブジェクト「カツオ」
名前:カツオ
性別:男
年齢:11
職業:小学生
prev:サザエ
next:ワカメ
みたいな感じです。
クラスはこのオブジェクトを作るための設計図だとよく言われます。
一度に同じようなオブジェクトをたくさん作る場合、あらかじめフォーマットを用意しておいたほうがラクなんです。
CLASS Createサザエさん一家(名前、性別、年齢、職業、prev、next)みたいな定義がされており、
ワカメを作りたい場合に
New Createサザエさん一家(ワカメ、女、9、小学生、カツオ、null)とすると
オブジェクト「ワカメ」
名前:ワカメ
性別:女
年齢:9
職業:小学生
prev:カツオ
next:null
が作成されます。
それぞれのオブジェクトのデータは「オブジェクト名.属性」で呼び出すことができ、
サザエさんの年齢って何歳だっけ?→サザエ.年齢
カツオの職業って何だっけ?→カツオ.職業
となります。
リストで言えば、オブジェクト「タラちゃん」を作成したのち、
ワカメ.next←タラちゃん
とすることで連結できます。
オブジェクトの肝はもう一度言いますが、
「オブジェクトとはいろんなデータ(属性)を持ったひとつの塊」ということです。
B試験では
インスタンス≒オブジェクトの理解でかまわないと思います。
(本来はオブジェクトのほうが概念が広い)
オブジェクトはいろんなデータ(属性)を持ったひとつの塊です。
オブジェクト「サザエさん」は
名前:サザエ
性別:女
年齢:24
職業:主婦
prev:マスオ
next:カツオ
オブジェクト「カツオ」
名前:カツオ
性別:男
年齢:11
職業:小学生
prev:サザエ
next:ワカメ
みたいな感じです。
クラスはこのオブジェクトを作るための設計図だとよく言われます。
一度に同じようなオブジェクトをたくさん作る場合、あらかじめフォーマットを用意しておいたほうがラクなんです。
CLASS Createサザエさん一家(名前、性別、年齢、職業、prev、next)みたいな定義がされており、
ワカメを作りたい場合に
New Createサザエさん一家(ワカメ、女、9、小学生、カツオ、null)とすると
オブジェクト「ワカメ」
名前:ワカメ
性別:女
年齢:9
職業:小学生
prev:カツオ
next:null
が作成されます。
それぞれのオブジェクトのデータは「オブジェクト名.属性」で呼び出すことができ、
サザエさんの年齢って何歳だっけ?→サザエ.年齢
カツオの職業って何だっけ?→カツオ.職業
となります。
リストで言えば、オブジェクト「タラちゃん」を作成したのち、
ワカメ.next←タラちゃん
とすることで連結できます。
オブジェクトの肝はもう一度言いますが、
「オブジェクトとはいろんなデータ(属性)を持ったひとつの塊」ということです。
2026.04.15 15:49
まろんさん
(No.5)
自分も出るとこだけ!基本情報の参考書をやり始めてオブジェクト指向とリストの範囲に入ったとき、投稿者さんと同じで最初は読んでも全く分からずに諦めようとしてました。
でも安心してください。初学者であの参考書の書き方でオブジェクト指向を理解するのははっきりいって不可能に近いと思います。
でもそこから一週間後くらいにはオブジェクト指向やリストの問題が大分理解できるようになり、今ではリスト問題が一番得意なレベルまで成長しました。
では、どういうことをやって理解したのかというと、『オブジェクト指向のプログラムコードを一旦ノートに全部書き写して、1行1行のコードは何を表しているのかを自分の文章や図でまとめる』ということです。プログラムのコードには全て意味があるので、例えば『この行ではインスタンスを生成して、コンストラクタを呼び出している』『この行ではメンバ変数prevとcurrを定義している』などを全部書いてインスタンスの図もその都度作成しました。(少し面倒ですが)
こうすることで、オブジェクト指向のプログラムの流れが大分理解できるようになったと思います。コードが何を表しているかを人に説明できるレベルまで到達したら問題ないと思います。
ここまで長々と書きましたが、ぶっちゃけオブジェクト指向の問題はオブジェクト指向が100%理解できてなくても解けます。というのも、オブジェクト指向が関わる問題って単方向リストくらいしかないので、むしろ単方向リストの作り方が分かれば60%ほどの理解でも解けるはずです。
単方向リストの問題って実はめっちゃ単純で、インスタンス(箱)を何個か用意して、その箱の間の矢印(遷移先)をいじくってあげるだけなんです。遷移先っていうのは例えば部屋番号の鍵みたいなもんです。例えば部屋番号001に入るには001の鍵を持ってないと入れないですよね?それと同じで、各インスタンスには次の部屋番号の鍵を入れてあげることで、次のインスタンスへと矢印が繋がるわけです。これを繰り返したり消したりするのが単方向リストの問題です。
とにかく最初は誰でもつまずくのがオブジェクト指向とリストです。ただ、趣向をこらして何回もやってけば自然と理解できると思うので、諦めずに何回も理解しようと頑張ってみてください。
でも安心してください。初学者であの参考書の書き方でオブジェクト指向を理解するのははっきりいって不可能に近いと思います。
でもそこから一週間後くらいにはオブジェクト指向やリストの問題が大分理解できるようになり、今ではリスト問題が一番得意なレベルまで成長しました。
では、どういうことをやって理解したのかというと、『オブジェクト指向のプログラムコードを一旦ノートに全部書き写して、1行1行のコードは何を表しているのかを自分の文章や図でまとめる』ということです。プログラムのコードには全て意味があるので、例えば『この行ではインスタンスを生成して、コンストラクタを呼び出している』『この行ではメンバ変数prevとcurrを定義している』などを全部書いてインスタンスの図もその都度作成しました。(少し面倒ですが)
こうすることで、オブジェクト指向のプログラムの流れが大分理解できるようになったと思います。コードが何を表しているかを人に説明できるレベルまで到達したら問題ないと思います。
ここまで長々と書きましたが、ぶっちゃけオブジェクト指向の問題はオブジェクト指向が100%理解できてなくても解けます。というのも、オブジェクト指向が関わる問題って単方向リストくらいしかないので、むしろ単方向リストの作り方が分かれば60%ほどの理解でも解けるはずです。
単方向リストの問題って実はめっちゃ単純で、インスタンス(箱)を何個か用意して、その箱の間の矢印(遷移先)をいじくってあげるだけなんです。遷移先っていうのは例えば部屋番号の鍵みたいなもんです。例えば部屋番号001に入るには001の鍵を持ってないと入れないですよね?それと同じで、各インスタンスには次の部屋番号の鍵を入れてあげることで、次のインスタンスへと矢印が繋がるわけです。これを繰り返したり消したりするのが単方向リストの問題です。
とにかく最初は誰でもつまずくのがオブジェクト指向とリストです。ただ、趣向をこらして何回もやってけば自然と理解できると思うので、諦めずに何回も理解しようと頑張ってみてください。
2026.04.16 02:51
広告
返信投稿用フォーム
投稿記事削除用フォーム
広告