HOME»基本情報技術者試験掲示板»平成30年  春  午後問11について質問
投稿する

平成30年  春  午後問11について質問 [4794]

 ぱせりさん(No.1) 
平成30年  春  午後問11(Java)に関する質問です。
〔プログラム3〕クラスAdditionで定義されているメソッド evaluateでは
return left.evaluate() + right.evaluate()とあります。
left.evaluate()のevaluate()はどこのメソッドを示しているのでしょうか?
2023.04.14 06:28
 ぱせりさん(No.2) 
mainメソッドを実行した際、
プログラム3のleftにtwo、rightにfiveが入るためleft.evaluate()がtwo.evaluate()に変わり、
プログラム2のメソッドevaluateが呼ばれると考えております。
2023.04.14 06:33
電タックさん(No.3) 
FE ブロンズマイスター
mainを持つプログラム4の実行であれば

ご理解の通りでプログラム3で参照されるleftは
プログラム2の
Expression型のConstant実装として扱われます。

試験とはあまり関係ないですが
この手の入れ子と値の関係はファイルとディレクトリの実現などで使われたりと
デザインパターンのコンポジットパターンという名称が付いてたりします。
2023.04.14 11:40
 ぱせりさん(No.4) 
電タック様
ご回答いただきありがとうございます!
同じメソッド名が多く、どのことを指しているのか時々分からなくなってしまいますが、落ち着いて解析したいと思います!
2023.04.14 11:51
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop