★★Java質問・相談スレッド184★★ (371レス)
★★Java質問・相談スレッド184★★ http://mevius.5ch.net/test/read.cgi/tech/1632019965/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
86: デフォルトの名無しさん (ワッチョイ ea55-ZR1D) [] 2022/12/22(木) 10:26:05.26 ID:tmbBFS3W0 class A { ■■int m1() { ■■■■return 100; ■■} ■■int m2() { ■■■■return m1(); ■■} } class B extends A { @Override ■■int m1() { ■■■■return super.m1() + 20; ■■} ■■int m2() { ■■■■return super.m2() + 10; ■■} } http://mevius.5ch.net/test/read.cgi/tech/1632019965/86
87: デフォルトの名無しさん (ワッチョイ ea55-ZR1D) [] 2022/12/22(木) 10:34:49.73 ID:tmbBFS3W0 >>86 訂正します: class A { ■■int m1() { ■■■■return 100; ■■} ■■int m2() { ■■■■return 2 * m1(); ■■} } class B extends A { @Override ■■int m1() { ■■■■return super.m1() + 20; ■■} ■■int m2() { ■■■■return super.m2() + 10; ■■} } http://mevius.5ch.net/test/read.cgi/tech/1632019965/87
88: デフォルトの名無しさん (ワッチョイ ea55-ZR1D) [] 2022/12/22(木) 10:35:00.31 ID:tmbBFS3W0 >>85 のように親クラス A を変更した場合、クラス B の m2 メソッドを実行すると、 250 がリターンされると本に書いてあります。 A の変更前は、 210 が返されていたので、リターンされる値が変わってしまったことになります。 A の変更後、このあたりの仕組み、ルールがよく分かりません。 B の m2() を実行すると、 A の m2() のリターン結果に 10 足した値がリターンされる。 A の m2() が実行されると、 B の m1() のリターン結果を2倍した値がリターンされる。 ようですが、どういうルールに従っている結果でしょうか? http://mevius.5ch.net/test/read.cgi/tech/1632019965/88
89: デフォルトの名無しさん (ワッチョイ ea55-ZR1D) [] 2022/12/22(木) 10:36:14.86 ID:tmbBFS3W0 訂正します: >>87 のように親クラス A を変更した場合、クラス B の m2 メソッドを実行すると、 250 がリターンされると本に書いてあります。 A の変更前は、 210 が返されていたので、リターンされる値が変わってしまったことになります。 A の変更後、このあたりの仕組み、ルールがよく分かりません。 B の m2() を実行すると、 A の m2() のリターン結果に 10 足した値がリターンされる。 A の m2() が実行されると、 B の m1() のリターン結果を2倍した値がリターンされる。 ようですが、どういうルールに従っている結果でしょうか? http://mevius.5ch.net/test/read.cgi/tech/1632019965/89
90: デフォルトの名無しさん (テテンテンテン MMe6-WNmf) [sage] 2022/12/22(木) 12:07:43.69 ID:syRoAR41M 各メソッドを int m1() { // class A System.out.println("A.m1()"); return 100; } の様にして、実行してみれば一目瞭然 System.out.println(new A().m2()); -> A.m2() A.m1() 200 System.out.println(new B().m2()); -> B.m2() A.m2() B.m1() A.m1() 250 http://mevius.5ch.net/test/read.cgi/tech/1632019965/90
91: デフォルトの名無しさん (テテンテンテン MMe6-WNmf) [sage] 2022/12/22(木) 12:25:33.69 ID:syRoAR41M まあ少し分かりにくいんだけど、 クラスBのインスタンスを生成してメソッドB.m2()からクラスAのメソッドA.m2()が"super.method名()"で呼ばれたとして、 その時、クラスAのメソッド(A.m2())中でもthisはやっぱり、当然に、クラスBのインスタンスのままなんですよ(勝手にインスタンスが生まれ変わったりはしない) で、クラスBのインスタンスに対してm1()呼び出しをするので、B.m1()が呼ばれます 先ほどの様に、各メソッドに System.out.println(this.getClass().getName()); でも追加してみればわかるかと http://mevius.5ch.net/test/read.cgi/tech/1632019965/91
92: デフォルトの名無しさん (ワッチョイ be10-e5AJ) [sage] 2022/12/23(金) 18:47:10.59 ID:TsC3S0cB0 >90 0点の回答。馬鹿。二度と書き込まないように。 >91 30点の回答。アホ。二度と書き込まないように。 http://mevius.5ch.net/test/read.cgi/tech/1632019965/92
93: デフォルトの名無しさん (ワッチョイ aa7c-e5AJ) [sage] 2022/12/23(金) 18:51:33.36 ID:o+ONuUnd0 >>92が100点の回答しろよw 無能なんだろうけどw http://mevius.5ch.net/test/read.cgi/tech/1632019965/93
94: デフォルトの名無しさん (ワッチョイ 3bad-s0Sd) [] 2022/12/25(日) 21:24:32.33 ID:fbG5Klx70 >>92にはこれは無理だな http://mevius.5ch.net/test/read.cgi/tech/1632019965/94
95: デフォルトの名無しさん (ワッチョイ b310-dxp0) [sage] 2022/12/25(日) 21:35:06.90 ID:xTMUZmUe0 100点の回答教えて欲しいならもっとへりくだらないと 煽って回答引き出そうとか幼稚園児か?アホ http://mevius.5ch.net/test/read.cgi/tech/1632019965/95
96: デフォルトの名無しさん (アウアウウー Sa1f-MkkF) [sage] 2022/12/25(日) 23:40:35.90 ID:8AzSKsIAa >>87 B.m2() を呼ぶと、super で、A.m2()が呼ばれる この時、this が、B インスタンスから、 その中のA インスタンス部分を指すように変わる だから、A.m2()を呼ぶと、 B.m1()ではなく、A.m1()が呼ばれる http://mevius.5ch.net/test/read.cgi/tech/1632019965/96
97: デフォルトの名無しさん (ワッチョイ b310-dxp0) [sage] 2022/12/26(月) 00:11:57.51 ID:bZAU6rX30 0点。逝ってよし! http://mevius.5ch.net/test/read.cgi/tech/1632019965/97
98: デフォルトの名無しさん (ワッチョイ b310-dxp0) [sage] 2022/12/26(月) 00:52:55.31 ID:bZAU6rX30 0点どころかおもっくそ嘘教えてるしw マイナス1億点 アホバカ http://mevius.5ch.net/test/read.cgi/tech/1632019965/98
99: デフォルトの名無しさん (ワッチョイ cf9c-azuO) [] 2022/12/26(月) 08:09:56.37 ID:aUjbdkr90 そういえば某大手SIerのコーディング規約で「親クラスのメソッドを呼ぶときはsuperを明示すること」ってあったなあ メソッド定義が自クラスでは親クラスに書かれていることが分かりやすくなるとかなんとか 案の定、子クラスでメソッドをオーバーライドしても呼ばれないというトラブルが続発した 本当に親クラスのメソッド呼び出しに固定したいとき以外は super 書かないほうがいいね http://mevius.5ch.net/test/read.cgi/tech/1632019965/99
100: デフォルトの名無しさん (ワッチョイ 637c-dxp0) [sage] 2022/12/26(月) 11:12:13.07 ID:bU1T9eUn0 そもそも親クラスのメソッドを使いたいのにオーバーライドするって 設計がおかしいのでは・・・ http://mevius.5ch.net/test/read.cgi/tech/1632019965/100
101: デフォルトの名無しさん (ワッチョイ cf9c-azuO) [] 2022/12/26(月) 13:59:53.17 ID:aUjbdkr90 >>100 親クラスのメソッドを使いたいわけではない 開発初期に子クラスでオーバーライドしない場合は super を付けろという規約だった 当然、後から子クラスでオーバーライドしなければならないような変更が発生することもある そうなったときに、super を明示するという規約が仇になったという話 http://mevius.5ch.net/test/read.cgi/tech/1632019965/101
102: デフォルトの名無しさん (ワッチョイ 3bad-s0Sd) [] 2022/12/30(金) 16:12:33.88 ID:ykNPeaas0 >>98 荒すな http://mevius.5ch.net/test/read.cgi/tech/1632019965/102
103: デフォルトの名無しさん (ワッチョイ 4e10-TwI4) [sage] 2022/12/31(土) 04:30:32.97 ID:4GRHpUZV0 インスタンスの意味もわからんようなのが回答側に回っちゃいかんな http://mevius.5ch.net/test/read.cgi/tech/1632019965/103
104: デフォルトの名無しさん (ワッチョイ 0eba-9yt5) [] 2022/12/31(土) 15:56:15.97 ID:S9Nh4wgt0 列挙型で整数を宣言したんだけどエラーになる。 コード public enum Sample { A(10), B(20); } エラーメッセージ Sample.java:2: エラー: 列挙 Sampleのコンストラクタ Sampleは指定された型に適用できません。 A(10), B(20); ^ 期待値: 引数がありません 検出値: int 理由: 実引数リストと仮引数リストの長さが異なります Sample.java:2: エラー: 列挙 Sampleのコンストラクタ Sampleは指定された型に適用できません。 A(10), B(20); ^ 期待値: 引数がありません 検出値: int 理由: 実引数リストと仮引数リストの長さが異なります エラー2個 直し方教えてください http://mevius.5ch.net/test/read.cgi/tech/1632019965/104
105: デフォルトの名無しさん (オッペケ Srbb-EOKO) [sage] 2022/12/31(土) 16:41:17.52 ID:ThgnqEFxr まず java enum でググります http://mevius.5ch.net/test/read.cgi/tech/1632019965/105
106: デフォルトの名無しさん (ワッチョイ db4b-MNVA) [sage] 2022/12/31(土) 21:06:42.50 ID:XIUc7tAE0 ここはKotlinの質問はダメなの? http://mevius.5ch.net/test/read.cgi/tech/1632019965/106
107: デフォルトの名無しさん (ワッチョイ a3f0-sdJO) [sage] 2022/12/31(土) 21:23:42.19 ID:G/ER4sv/0 Kotlinスレあるし基本はそっちでしょ JVMやバイトコード関連質問とかだと微妙だけど、 それもKotlin使ってる場合の質問なら基本Kotlinスレじゃね? http://mevius.5ch.net/test/read.cgi/tech/1632019965/107
108: デフォルトの名無しさん (ワッチョイ db4b-MNVA) [sage] 2022/12/31(土) 21:31:08.90 ID:XIUc7tAE0 >>107 わかりました ありがとう http://mevius.5ch.net/test/read.cgi/tech/1632019965/108
109: デフォルトの名無しさん (ワッチョイ 9aad-TwI4) [] 2023/01/01(日) 01:15:54.77 ID:k0DSm/Wv0 >>104 それコンストラクタが書いてないじゃん。 入門書をもっとよく読むかネットで java enum とかで検索して調べた方が良い。 http://mevius.5ch.net/test/read.cgi/tech/1632019965/109
110: デフォルトの名無しさん (ワッチョイ b6ad-9yt5) [] 2023/01/01(日) 13:35:25.48 ID:RCDNye7r0 public enum Sample { A(10), B(20); Sample(int n) { } } これでおk http://mevius.5ch.net/test/read.cgi/tech/1632019965/110
111: デフォルトの名無しさん (ワッチョイ 8b01-gKiU) [sage] 2023/01/02(月) 13:21:36.86 ID:l4/Jezsd0 >>107 kotlinスレ完走しても立たない😭 http://mevius.5ch.net/test/read.cgi/tech/1632019965/111
112: デフォルトの名無しさん (ワッチョイ db4b-MNVA) [sage] 2023/01/02(月) 13:55:45.23 ID:8T2JCaCm0 >>111 立てたよ http://mevius.5ch.net/test/read.cgi/tech/1632019965/112
113: デフォルトの名無しさん (オイコラミネオ MMe5-NK77) [sage] 2023/01/20(金) 00:55:10.53 ID:ZdjsiCX8M 勉強を開始して3週間、優しいJavaを1周もしてないです 章末の練習問題を初見で解ける章と、初めてみるパターンで 解けない章があります 読めば理解はできるのですが、センスが無い?それとも勉強を進めて引き出しを増やしていくもの? 同じ時間で解けたという友人もいて、少し悩んでいます http://mevius.5ch.net/test/read.cgi/tech/1632019965/113
114: デフォルトの名無しさん (ワッチョイ 299c-4c6f) [] 2023/01/20(金) 02:37:54.38 ID:8hijXP6L0 がんば! http://mevius.5ch.net/test/read.cgi/tech/1632019965/114
115: デフォルトの名無しさん (オイコラミネオ MMe5-NK77) [] 2023/01/20(金) 15:38:06.11 ID:ZdjsiCX8M >>114 有難うございます! 取り敢えず継続していきます、、 http://mevius.5ch.net/test/read.cgi/tech/1632019965/115
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 256 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s