評価 0 銀行口座クラスのequals()をオーバーライド 2つ質問があります。参考書の例題ですが、等価判定で、なぜ否定形になっているのかがわかりません。否定形でなくてもいいのではと思いますが、その理由をお願いします。if (this.accountNo.trim() equals r.accountNo.trim()) { return true;}return false;それと、if文の中の感嘆符とequalsの演算順位はequalsが優先だと思いますが、あってますか?if(!this.accountNo.trim() equals (r.accontNo.trim()))例題public class Account { String accountNo; public boolean equals(Object o) { if(o==this) return true; if(o==null) return false; if(!(o instanceof Account) return false; Account r=(Account)o; if(!this.accountNo.trim() equals (r.accountNo.trim())) { return false; } return true; }} 4件の回答 評価 0 >なぜ否定形になっているのかがわかりません。それはクラスを書いた人による。単に「falseを優先に返したかった」という気がするが、どちらかが正解というところではない。極端に判りづらかったり効率が悪かったりでなければ、「どれでも良い」ことは結構多いものだ。私の場合はreturn this.accountNo.trim().equals(r.accountNo.trim());という書き方が多いし、この程度ならreturn o == this || o != null && o instanceof Account && this.accountNo.trim().equals(((Account) o).accountNo.trim());などと全部まとめることも多い。>if文の中の感嘆符とequalsの演算順位はequalsが優先だと思いますが「優先でない」とすると感嘆符はどこに掛かっているか。そこだけ取り出して成り立つのか。 評価 0 回答をありがとうございました。否定形に大きな意味があるのかと思っていたので安心しました。感嘆符のほうは、優先でないと式が破綻しますので、はっきりしました。とにかく自信がないものですからお聞きしてみました。感謝します。 評価 0 自信は一朝一夕に作られるものじゃないし、気にする必要はない。肝心なことは、曖昧な点を曖昧なままにしない、ということだ。結局その積み重ねだと思う。むしろ、「自信がある」と言っている人は中途半端な人だ、くらいに思っていても良いだろう。参考書を読む、質問する、だけでなく、そのコードを思いつくままにいじってみよう。実際にコードを書き、動かしてみることが、経験になる。よほどのことをしない限りPCが壊れるなんてことはまずないから、怖がる必要なんてない。 評価 0 激励していただいてありがとうございます。あまりコードをいじるのは、やってませんでした。アドバイスを参考に頑張ってみます。 質問から6ヶ月以上経過しているので、回答を書き込むことはできません。 質問一覧にもどる
評価 0 >なぜ否定形になっているのかがわかりません。それはクラスを書いた人による。単に「falseを優先に返したかった」という気がするが、どちらかが正解というところではない。極端に判りづらかったり効率が悪かったりでなければ、「どれでも良い」ことは結構多いものだ。私の場合はreturn this.accountNo.trim().equals(r.accountNo.trim());という書き方が多いし、この程度ならreturn o == this || o != null && o instanceof Account && this.accountNo.trim().equals(((Account) o).accountNo.trim());などと全部まとめることも多い。>if文の中の感嘆符とequalsの演算順位はequalsが優先だと思いますが「優先でない」とすると感嘆符はどこに掛かっているか。そこだけ取り出して成り立つのか。
評価 0 回答をありがとうございました。否定形に大きな意味があるのかと思っていたので安心しました。感嘆符のほうは、優先でないと式が破綻しますので、はっきりしました。とにかく自信がないものですからお聞きしてみました。感謝します。
評価 0 自信は一朝一夕に作られるものじゃないし、気にする必要はない。肝心なことは、曖昧な点を曖昧なままにしない、ということだ。結局その積み重ねだと思う。むしろ、「自信がある」と言っている人は中途半端な人だ、くらいに思っていても良いだろう。参考書を読む、質問する、だけでなく、そのコードを思いつくままにいじってみよう。実際にコードを書き、動かしてみることが、経験になる。よほどのことをしない限りPCが壊れるなんてことはまずないから、怖がる必要なんてない。