質問: min; } } ``` 質問は2点あります。 まず、1点目ですが、minメソッドの中に用いられているisEmptyメソッドについてです。 このメソッドは一体どのクラスのメソッドなのでしょうか? thisとあるのですが、StackWithMinクラスにも親クラスであるStackクラスにもisEmptyメソッドはないようでした。(StackクラスにはEmptyメソッドはありました) そうすると、このメソッドはどこのメソッドなのでしょうか? 続いて、2点目です。NodeWithMinクラスではコンストラクタで 二つの引数を受け取るコンストラクタが定義されいます。 そのうち、minはthisが使われていますが、valueはthisが使われておりません。 これには一体どのような意味があるのでしょうか? コンストラクタに関しては全てthisを使うべきじゃないのかなと思っているのですが。 以上、2点回答よろしくお願いします。
回答: 1つ目 java.util.Stackの親クラスであるjava.util.Vectorクラスが持っています。 もっと言うとListなどの親インタフェースであるCollectionで定義されているので、Listなどのコレクションを扱うクラスは必ずこのisEmptyメソッドを持っています。 2つ目 minはコンストラクタの引数とNodeWithMinのフィールドで名前が衝突しています。これを区別するために、thisをつけて「フィールドのmin」であることを明示しています。名前が衝突していないvalueとvは区別できるので付けなくてもいいだけです。