Java初心者のためのスレッドです。
※前スレ
Java入門・初心者質問スレ Part.7
http://mevius.5ch.net/test/read.cgi/tech/1515549964/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
探検
Java入門・初心者質問スレ Part.8
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ eff7-9jZM [175.28.184.198])
2018/06/07(木) 20:17:08.87ID:N8MsK2gr0332デフォルトの名無しさん (アウアウウー Sab7-9fpp [106.161.149.253])
2018/08/14(火) 23:13:33.44ID:w7/teWcla なるほどkotlinのmain ()関数のようにエントリポイントになっているんですね
コンストラクタもメソッドですか?
コンストラクタもメソッドですか?
333デフォルトの名無しさん (ワッチョイ 239f-2km2 [118.152.82.239])
2018/08/15(水) 00:49:57.59ID:BN2igdfy0 >>331
クラス名は Main じゃなくてもいいんだよ。
クラス名は Main じゃなくてもいいんだよ。
334デフォルトの名無しさん (アウアウカー Sa73-r0y0 [182.251.253.12])
2018/08/15(水) 05:08:46.27ID:JGyCTF+Aa >>332
どちらもその理解で合ってる
どちらもその理解で合ってる
335デフォルトの名無しさん (アウアウカー Sa73-r0y0 [182.251.253.12])
2018/08/15(水) 05:10:31.45ID:JGyCTF+Aa >>333
あ、はい
あ、はい
336デフォルトの名無しさん (ワッチョイ 9fd2-QxOT [27.139.213.198])
2018/08/16(木) 08:36:03.18ID:nBIOAicW0 すいません教えてもらってjdkは何とか導入成功したんですが
eclipseってやつと日本語化のを導入してコードを実行しようとしたら
選択は起動できず最近の起動もありません。とエラーが出て実行できません。何度か再インストールしましたが結果変わらず。
何が原因なのでしょうか?導入で参考になるサイトあれば教えてほしいです
後JDKだけじゃjavaのコードを実行とか出来ませんよね?eclipseってやつを導入して初めて意味があるものって認識で大丈夫ですか・
そこら辺もかなり曖昧なのですが…
eclipseってやつと日本語化のを導入してコードを実行しようとしたら
選択は起動できず最近の起動もありません。とエラーが出て実行できません。何度か再インストールしましたが結果変わらず。
何が原因なのでしょうか?導入で参考になるサイトあれば教えてほしいです
後JDKだけじゃjavaのコードを実行とか出来ませんよね?eclipseってやつを導入して初めて意味があるものって認識で大丈夫ですか・
そこら辺もかなり曖昧なのですが…
337デフォルトの名無しさん (アウアウカー Saab-HXAC [182.251.253.4])
2018/08/16(木) 09:15:49.93ID:z0v/PTWta >>336
間違ってる。JDKが入っていればあとはメモ帳でjavaのプログラムを書いて実行できる。
eclipseはあくまで超高機能なメモ帳だと思ってればいい。
で、そのeclipseなんだけど、そもそも古くて昔から使ってる人以外はもうほとんど誰も使ってない。
理由は今まさに君が直面しているように、自分の期待する動きをさせるのがとても大変だから。あと重い。
今からプログラムを始めるならIntelliJ IDEAの無料版か、Android Studio (無料)を使うことをお勧めする。
どちらも基本的には同じメーカーが作ってるほぼ同じものだけど、ただjavaを書くだけならIntelliJの方が余計なものが入ってなくていいかもしれない。
間違ってる。JDKが入っていればあとはメモ帳でjavaのプログラムを書いて実行できる。
eclipseはあくまで超高機能なメモ帳だと思ってればいい。
で、そのeclipseなんだけど、そもそも古くて昔から使ってる人以外はもうほとんど誰も使ってない。
理由は今まさに君が直面しているように、自分の期待する動きをさせるのがとても大変だから。あと重い。
今からプログラムを始めるならIntelliJ IDEAの無料版か、Android Studio (無料)を使うことをお勧めする。
どちらも基本的には同じメーカーが作ってるほぼ同じものだけど、ただjavaを書くだけならIntelliJの方が余計なものが入ってなくていいかもしれない。
338デフォルトの名無しさん (アウアウカー Saab-HXAC [182.251.253.4])
2018/08/16(木) 09:18:39.00ID:z0v/PTWta >>336
IntelliJの無料版のインストールをしてる記事も見つけたから貼っとくね。
https://qiita.com/syu_chan_1005/items/46f94412f7493d6e60eb
IntelliJの無料版のインストールをしてる記事も見つけたから貼っとくね。
https://qiita.com/syu_chan_1005/items/46f94412f7493d6e60eb
339デフォルトの名無しさん (ワッチョイ 9fd2-QxOT [27.139.213.198])
2018/08/16(木) 11:06:42.84ID:nBIOAicW0 >>337
レスありがとうございます
メモ帳でもプログラムの実行って出来るんですか。テキストドキュメントですよね?
コンパイルとかも勝手にしてくれるなら一番軽くて楽そうですね
>>今からプログラムを始めるならIntelliJ IDEAの無料版か、Android Studio (無料)を使うことをお勧めする
こちらの方も特性まで教えていただきありがとうございます。調べてみます
後、C++やろうと想ってvisualstudio入れてあるんですけど、これはjavaでは使えないですよね
レスありがとうございます
メモ帳でもプログラムの実行って出来るんですか。テキストドキュメントですよね?
コンパイルとかも勝手にしてくれるなら一番軽くて楽そうですね
>>今からプログラムを始めるならIntelliJ IDEAの無料版か、Android Studio (無料)を使うことをお勧めする
こちらの方も特性まで教えていただきありがとうございます。調べてみます
後、C++やろうと想ってvisualstudio入れてあるんですけど、これはjavaでは使えないですよね
340デフォルトの名無しさん (ワッチョイ 9fd2-QxOT [27.139.213.198])
2018/08/16(木) 11:54:47.10ID:nBIOAicW0 https://gyazo.com/e3fe0cd9ac22553f62241cbe9285f1d1
手順IntelliJ IDEAの構成のここまで出来たんですが説明にある(Project name)のついたフォルダの横にある▶を押して見ましょう。
というのが見当たらず詰みました;どこにあるのでしょうか
手順IntelliJ IDEAの構成のここまで出来たんですが説明にある(Project name)のついたフォルダの横にある▶を押して見ましょう。
というのが見当たらず詰みました;どこにあるのでしょうか
341デフォルトの名無しさん (アウアウカー Saab-Iyvk [182.251.240.3])
2018/08/16(木) 13:00:59.59ID:yLNqa6vha342デフォルトの名無しさん (ワッチョイ 9fd2-QxOT [27.139.213.198])
2018/08/16(木) 13:39:19.41ID:nBIOAicW0 >>341
おかげさまで見つかりました。ありがとうございます!
フォントもdokojavaよりかっこよくモチベーション上がりそうです
Run押したら下に結果表示されたので全て導入うまくいってそうです
本当にありがとうございます
おかげさまで見つかりました。ありがとうございます!
フォントもdokojavaよりかっこよくモチベーション上がりそうです
Run押したら下に結果表示されたので全て導入うまくいってそうです
本当にありがとうございます
343デフォルトの名無しさん (アウアウカー Saab-HXAC [182.251.253.16])
2018/08/16(木) 16:06:09.21ID:OpTecYpPa うまくできたようで良かった。
IntelliJは本当に素晴らしくて、入力補完も神がかってるから勉強にはちょうど良いと思う。
IntelliJは本当に素晴らしくて、入力補完も神がかってるから勉強にはちょうど良いと思う。
344デフォルトの名無しさん (ワンミングク MM7f-dm9Q [153.157.232.145])
2018/08/17(金) 13:27:44.81ID:GpawSU9CM aかbかどちらか値が入ってる方を使いたく
defaultIfEmptyという便利なものを見つけたのですが
aもbもどちらも初期値というわけではないんですよね
初期値設定以外で使うのは変ですか?
defaultIfEmptyという便利なものを見つけたのですが
aもbもどちらも初期値というわけではないんですよね
初期値設定以外で使うのは変ですか?
345デフォルトの名無しさん (ワッチョイ bf8a-QxOT [223.216.119.127])
2018/08/18(土) 00:59:17.77ID:jNUruXDd0 言語そのものじゃない質問ですが、IDE(Android Studio とか IntelliJ IDEA)使ってても、ビルドツールって必要なんでしょうか?
もしくは有用なんでしょうか?
もしくは有用なんでしょうか?
346デフォルトの名無しさん (ワッチョイ d765-ipLS [222.15.235.177])
2018/08/19(日) 16:56:22.20ID:ouPv64vz0 今まで Eclipse からしかプログラムを走らせたことがなかったのですが、昨日プログラムをエクスポートしてノートPCに持って行ったら、
A JNI error has occurred, please check your installation and try again
というエラーが出ました。色々試行錯誤しているうちに、「実行環境JREの使用」の問題らしいと分かりました。
JavaSE-9だとエラーになって、JavaSE-1.8だと大丈夫です。
他の人にプログラムを使ってもらう時とか、どうすればいいんでしょうか?
プロジェクト固有のJREの使用という項目もありますが、このあたりは何を意味してるんでしょうか?
A JNI error has occurred, please check your installation and try again
というエラーが出ました。色々試行錯誤しているうちに、「実行環境JREの使用」の問題らしいと分かりました。
JavaSE-9だとエラーになって、JavaSE-1.8だと大丈夫です。
他の人にプログラムを使ってもらう時とか、どうすればいいんでしょうか?
プロジェクト固有のJREの使用という項目もありますが、このあたりは何を意味してるんでしょうか?
347デフォルトの名無しさん (ワッチョイ bfb6-bA/g [111.90.16.38])
2018/08/19(日) 17:23:49.79ID:Kq0ObHsK0348デフォルトの名無しさん (アウウィフ FFdb-o90/ [106.171.87.65])
2018/08/19(日) 17:41:46.22ID:KG8+gtiYF JREが9ならJDKも9
でコンパイルしなければね
でコンパイルしなければね
349デフォルトの名無しさん (ワッチョイ d765-ipLS [222.15.235.177])
2018/08/20(月) 19:57:08.28ID:4jiZ931E0 >>347
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: handymanPackage/HandymanBMain has been compiled by a more recent
version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
ノートPCがwindowsアップデートでクラッシュし、再インストールという惨事に見舞われてしまってレスが遅くなってしまいました。
JREは昨日初めてインストールしたのに、何でこんなことになるんでしょうか?最新版じゃないんでしょうか?
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: handymanPackage/HandymanBMain has been compiled by a more recent
version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
ノートPCがwindowsアップデートでクラッシュし、再インストールという惨事に見舞われてしまってレスが遅くなってしまいました。
JREは昨日初めてインストールしたのに、何でこんなことになるんでしょうか?最新版じゃないんでしょうか?
350デフォルトの名無しさん (ワッチョイ bfb6-bA/g [111.90.3.55])
2018/08/20(月) 20:20:40.35ID:7cywDiIN0 >>349
翻訳
| handymanPackage / HandymanBMainはJava Runtime(クラスファイルバージョン53.0)
| のより新しいバージョンでコンパイルされていますが、このバージョンのJava Runtimeは
| クラスファイルバージョンを52.0までしか認識しません
バージョン53.0はJava9
バージョン52.0はJava8
Java9以上のJDKでコンパイルしたものを
Java8のJREで実行しようとしてるんじゃないかな
対応策は、実行環境にJava9を入れるか
もしくは、Java8でコンパイルするかってところ
他の人にプログラムを作ってもらう時は実行環境のバージョンと
同じかそれよりも古いバージョンでコンパイルしてもらえば良い
翻訳
| handymanPackage / HandymanBMainはJava Runtime(クラスファイルバージョン53.0)
| のより新しいバージョンでコンパイルされていますが、このバージョンのJava Runtimeは
| クラスファイルバージョンを52.0までしか認識しません
バージョン53.0はJava9
バージョン52.0はJava8
Java9以上のJDKでコンパイルしたものを
Java8のJREで実行しようとしてるんじゃないかな
対応策は、実行環境にJava9を入れるか
もしくは、Java8でコンパイルするかってところ
他の人にプログラムを作ってもらう時は実行環境のバージョンと
同じかそれよりも古いバージョンでコンパイルしてもらえば良い
351デフォルトの名無しさん (ワッチョイ d765-ipLS [222.15.235.177])
2018/08/20(月) 20:41:39.99ID:4jiZ931E0352デフォルトの名無しさん (ワッチョイ bfb6-bA/g [111.90.3.55])
2018/08/20(月) 21:53:30.11ID:7cywDiIN0353デフォルトの名無しさん (ワッチョイ d7b3-EY6Q [126.51.115.95])
2018/08/20(月) 23:26:30.62ID:D6aa3xEz0 ソースコード読むときにインスタンスなのかメソッドなのかがすぐに分からないんだけど、
ソースコードを読むときのコツみたいなものってありますか?
ソースコードを読むときのコツみたいなものってありますか?
354デフォルトの名無しさん (ワッチョイ ff80-JHtc [153.177.171.243])
2018/08/21(火) 00:31:47.69ID:kxzeRRBS0 VSCode などでマウスホバーすれば、宣言が表示されるのでは?
355デフォルトの名無しさん (アウアウカー Saab-dbX5 [182.251.242.6])
2018/08/21(火) 12:02:11.35ID:5hCHO/+ya java本格入門って本を勧められたのですが読んだことある方います?感想が聞きたいです
356デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/23(木) 08:02:55.21ID:9OhLuljd0 すいませんスッキリわかるjava入門をやってるのですがファイルの分割の項が
環境が本と違うので分かりません;
intelli IDEAを使ってるのですがどのようにすればいいのでしょうか?
環境が本と違うので分かりません;
intelli IDEAを使ってるのですがどのようにすればいいのでしょうか?
357デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/23(木) 08:20:12.87ID:9OhLuljd0 今までずっと閉じるを使って来たので保存方法も分かりません
ググっても自動保存をオフにするとかそういう記事しか出てきません;
どこをいじればいいのでしょうか
https://gyazo.com/62228b87ec37fdce11d0b0ebfae7626d
ググっても自動保存をオフにするとかそういう記事しか出てきません;
どこをいじればいいのでしょうか
https://gyazo.com/62228b87ec37fdce11d0b0ebfae7626d
358デフォルトの名無しさん (ブーイモ MMff-7HHy [49.239.66.154])
2018/08/23(木) 09:28:06.86ID:Q+aoBvc3M Javaはビルド周りが腐っててファイルの配置やパスの設定に対してかなりセンシティブなんだよ
そのへんで嵌るとJavaに慣れてる人でも結構厄介だから、諦めて本の通りの環境を用意したほうが結果的に時間の節約になる
今の君の経験値で取り組むべき優先度の高い問題ではないし、ましてファイルの保存方法すら類推できないレベルでは、
今目の前の問題だけ付け焼き刃で解決できたところで今後同様の問題にぶち当たったときに自分で解決できるとは思えない
そのへんで嵌るとJavaに慣れてる人でも結構厄介だから、諦めて本の通りの環境を用意したほうが結果的に時間の節約になる
今の君の経験値で取り組むべき優先度の高い問題ではないし、ましてファイルの保存方法すら類推できないレベルでは、
今目の前の問題だけ付け焼き刃で解決できたところで今後同様の問題にぶち当たったときに自分で解決できるとは思えない
359デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/23(木) 20:01:02.13ID:9OhLuljd0 多分自己解決しました
save allを押したのにPCから何も応答がないので出来てないのかと思ってました
save allを押したのにPCから何も応答がないので出来てないのかと思ってました
360デフォルトの名無しさん (ワッチョイ 5b76-BXIx [14.3.57.9])
2018/08/23(木) 20:16:08.41ID:jFi7Ee350 普通に左側にProjectペインを出してファイルを作りたい場所の上で右クリックするだけでしょ。
そもそもパソコンをあまり使ったことがない?
そもそもパソコンをあまり使ったことがない?
361デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/23(木) 21:51:35.73ID:9OhLuljd0 いえ、3年使ってます
ただゲームくらいでしか使ってなかったのであまり分かりません;
ただゲームくらいでしか使ってなかったのであまり分かりません;
362デフォルトの名無しさん (ワッチョイ 5b76-BXIx [14.3.57.9])
2018/08/23(木) 22:36:06.37ID:jFi7Ee350 ああ、まあそれじゃあしょうがない
とりあえず大抵のことをやっても壊れはしないから、調べたり聞いたりする前に適当にいじってみるのも大事だよ
それで勘みたいなものを覚えていくものだから
とりあえず大抵のことをやっても壊れはしないから、調べたり聞いたりする前に適当にいじってみるのも大事だよ
それで勘みたいなものを覚えていくものだから
363デフォルトの名無しさん (ワッチョイ df9b-eAyz [219.107.215.132])
2018/08/24(金) 03:33:02.64ID:5X50Ptai0 パソコンは壊れないけど環境はよく壊れる
364デフォルトの名無しさん (アウアウカー Saff-BXIx [182.251.253.1])
2018/08/24(金) 07:43:07.07ID:sP/ywaCGa そうしたらそれを直すのもまた勉強
365デフォルトの名無しさん (ブーイモ MMff-fKB3 [49.239.67.167])
2018/08/24(金) 08:23:38.59ID:0hzqlpOdM 説教臭いスレだな
366デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/24(金) 13:36:26.24ID:J3AVJGwl0 スッキリ分かるjava入門の多態性の説明がよくわからないんですが
親クラス型の配列を作って派生先クラスのインスタンスを代入して配列を回して一気に似たような処理を簡単に記述する
のが多態性って認識であってますか?
もうちょっと分かりやすく説明してる所あったらお願い致します
親クラス型の配列を作って派生先クラスのインスタンスを代入して配列を回して一気に似たような処理を簡単に記述する
のが多態性って認識であってますか?
もうちょっと分かりやすく説明してる所あったらお願い致します
367デフォルトの名無しさん (アウアウカー Saff-2xWw [182.251.240.48])
2018/08/24(金) 13:45:30.50ID:MEArwTdwa368デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/24(金) 14:33:37.18ID:J3AVJGwl0 >>367
ありがとうございます
abstract,interfaceのクラス型でインスタンスを作れないから、このやり方を使って
インスタンスを扱えるようにするってことですかね?
親の所にないメソッドは使えないみたいなので利便性がよくわかりませんが・・
ありがとうございます
abstract,interfaceのクラス型でインスタンスを作れないから、このやり方を使って
インスタンスを扱えるようにするってことですかね?
親の所にないメソッドは使えないみたいなので利便性がよくわかりませんが・・
369デフォルトの名無しさん (ワッチョイ 0f80-jqYf [153.177.171.243])
2018/08/24(金) 14:41:49.42ID:ZgK6e0Tb0 cat.cry
dog.cry
猫は猫のように鳴き、犬は犬のように鳴く。
親は親のように泣き、子は子のように泣く
自動的に実体に応じた、動作をする
dog.cry
猫は猫のように鳴き、犬は犬のように鳴く。
親は親のように泣き、子は子のように泣く
自動的に実体に応じた、動作をする
370デフォルトの名無しさん (スプッッ Sdff-vFYg [49.98.17.176])
2018/08/24(金) 14:59:55.60ID:l959lfiYd371デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/25(土) 06:57:20.11ID:b/emt3jR0372デフォルトの名無しさん (アウアウカー Saff-BXIx [182.251.253.5])
2018/08/25(土) 07:56:40.41ID:BMpD23L5a373デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/25(土) 08:03:03.50ID:b/emt3jR0 すいませんフィールドにnullなんて入れてないのにnullって表示されるんですけど
どこ直せば正常に名前が呼び出されますか?
https://ideone.com/lfTf9n
やっぱりあまり理解できてなかったかもです;
どこ直せば正常に名前が呼び出されますか?
https://ideone.com/lfTf9n
やっぱりあまり理解できてなかったかもです;
374デフォルトの名無しさん (ワッチョイ bbb3-hLn2 [60.113.15.161])
2018/08/25(土) 09:19:55.50ID:EHvwSMrp0 >>373
これの見方がよくわからんのだけど何がnullになってるの?
これの見方がよくわからんのだけど何がnullになってるの?
375374 (ワッチョイ bbb3-wF79 [60.113.15.161])
2018/08/25(土) 10:26:08.92ID:EHvwSMrp0 自分もjava勉強中なので試しに作ってみた
これで動いたよ
違うところだけ書いてみる
public class Hero extends Caractor {
Hero(String name){
this.name = name;
}
public void attack(Caractor m){
System.out.println(this.name + "のこうげき!");
System.out.println(m.name + "に10のダメージを与えた!");
m.hp -=10;
}
}
public class Slime extends Caractor {
Slime(String name, int hp){
this.name = name;
this.hp = hp;
}
public void run(){
System.out.println(this.name+"は逃げ出した!");
}
}
あとはだいたい同じです。
これで動いたよ
違うところだけ書いてみる
public class Hero extends Caractor {
Hero(String name){
this.name = name;
}
public void attack(Caractor m){
System.out.println(this.name + "のこうげき!");
System.out.println(m.name + "に10のダメージを与えた!");
m.hp -=10;
}
}
public class Slime extends Caractor {
Slime(String name, int hp){
this.name = name;
this.hp = hp;
}
public void run(){
System.out.println(this.name+"は逃げ出した!");
}
}
あとはだいたい同じです。
376デフォルトの名無しさん (ワッチョイ bbb3-hLn2 [60.113.15.161])
2018/08/25(土) 10:36:53.08ID:EHvwSMrp0 あ、あとキャラクターのフィールドがprivateになってるからprotectedにしたら動いたよ
これが綺麗なコードかはわからないけどとりあえずどうでしょうか
これが綺麗なコードかはわからないけどとりあえずどうでしょうか
377デフォルトの名無しさん (ワッチョイ 3ba1-vFYg [220.156.92.204])
2018/08/25(土) 11:33:36.67ID:ldpy0bgQ0 >>373
継承先のクラスで同じ名前でフィールドを定義しても別のフィールドになる
attackメソッドにSlimeのインスタンスを入れているけど
Monsterクラスのnameを見てるのでSlimeに設定したnameは表示されないでnullが表示される
継承先のクラスで同じ名前でフィールドを定義しても別のフィールドになる
attackメソッドにSlimeのインスタンスを入れているけど
Monsterクラスのnameを見てるのでSlimeに設定したnameは表示されないでnullが表示される
378デフォルトの名無しさん (ワッチョイ 0f80-jqYf [153.177.171.243])
2018/08/25(土) 12:54:17.01ID:gxBSyOuw0 子クラスで、親クラスと同じ名前のフィールドを定義したら、ダメ!
オブジェクト指向としては、明らかな間違い!
同名のメソッドは、上書き(オーバーライド)するけど、フィールドはしない
オブジェクト指向としては、明らかな間違い!
同名のメソッドは、上書き(オーバーライド)するけど、フィールドはしない
379デフォルトの名無しさん (ワッチョイ 0f80-jqYf [153.177.171.243])
2018/08/25(土) 13:14:33.12ID:gxBSyOuw0 for (Character c : list) { c.attack( ); }
list に、モンスターや勇者などを混ぜて入れて、
その親クラスのCharacter として、抽象化して扱えば、
if 文で、モンスターや勇者の処理を、場合分けせずにすむ
モンスターや勇者は、それぞれ実体に基づき、自動的に攻撃する。
見かけの型は親クラスだが、攻撃は子クラスのメソッドを呼ぶ
つまり、抽象化する事によって、型による分岐がなくなる!
逆に言えば、型によって分岐していたら、オブジェクト指向ではない
if モンスター型なら
if プレイヤー型なら
list に、モンスターや勇者などを混ぜて入れて、
その親クラスのCharacter として、抽象化して扱えば、
if 文で、モンスターや勇者の処理を、場合分けせずにすむ
モンスターや勇者は、それぞれ実体に基づき、自動的に攻撃する。
見かけの型は親クラスだが、攻撃は子クラスのメソッドを呼ぶ
つまり、抽象化する事によって、型による分岐がなくなる!
逆に言えば、型によって分岐していたら、オブジェクト指向ではない
if モンスター型なら
if プレイヤー型なら
380デフォルトの名無しさん (ワッチョイ 6fb6-m5ma [111.90.3.249])
2018/08/25(土) 13:24:39.80ID:KMExyDFm0 >>379
オブジェクト指向ではポリモーフィズムが大事なんだって考えだね
オブジェクト指向ではポリモーフィズムが大事なんだって考えだね
381デフォルトの名無しさん (ブーイモ MMff-7HHy [210.138.178.39])
2018/08/25(土) 13:51:30.74ID:QXNuAaPsM 時代遅れな考えだよね
最近は関数型の影響によって型による分岐が市民権を得つつある
C#もついにパターンマッチを導入して型による分岐を積極的に推奨するようになった
Javaも10年くらいしたらそうなるよ
最近は関数型の影響によって型による分岐が市民権を得つつある
C#もついにパターンマッチを導入して型による分岐を積極的に推奨するようになった
Javaも10年くらいしたらそうなるよ
382デフォルトの名無しさん (アウアウウー Saff-cqQg [106.180.4.234])
2018/08/25(土) 14:36:23.71ID:t7aLMQyua 推奨はしてない
ポリモーより型スイッチの方が書きやすい場合も存在するよね
全否定しないでそういうのもサポートしていこうよってだけ
型スイッチがポリモーを置き換えるかというと全くそんなことはなくて
せいぜいデータドリブンのアプローチで書かれた僅かな部分の記述が綺麗になる程度
ポリモーより型スイッチの方が書きやすい場合も存在するよね
全否定しないでそういうのもサポートしていこうよってだけ
型スイッチがポリモーを置き換えるかというと全くそんなことはなくて
せいぜいデータドリブンのアプローチで書かれた僅かな部分の記述が綺麗になる程度
383デフォルトの名無しさん (ワッチョイ 6fb6-m5ma [111.90.3.249])
2018/08/25(土) 14:53:44.82ID:KMExyDFm0 >>382
なるほど、それなら分かる
なるほど、それなら分かる
384379 (ワッチョイ 0f80-jqYf [153.177.171.243])
2018/08/25(土) 15:45:54.17ID:gxBSyOuw0 >>379
のやり方では、新たにモンスターを追加しても、ソースコードを修正しなくてよい
もし型によって分岐していたら、大変。
すべての分岐箇所を修正して、テストしないといけない!
項目が追加された際の、分岐箇所の修正をなくすために、オブジェクト指向が作られた
のやり方では、新たにモンスターを追加しても、ソースコードを修正しなくてよい
もし型によって分岐していたら、大変。
すべての分岐箇所を修正して、テストしないといけない!
項目が追加された際の、分岐箇所の修正をなくすために、オブジェクト指向が作られた
385デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/25(土) 18:14:08.91ID:b/emt3jR0 >>375
ありがとうございます。いけました
この本該当ページにHeroクラスしか書いてないから
コンパイル失敗したら手詰まりで;
attack(Caractor m){ ←ここがattack(Monster m)だったから動かなかったんですかね?
Slimeと同じ親持ってないと出来ないんですね。本はMonsterとなってたので本が間違えてるんですね
ありがとうございます。いけました
この本該当ページにHeroクラスしか書いてないから
コンパイル失敗したら手詰まりで;
attack(Caractor m){ ←ここがattack(Monster m)だったから動かなかったんですかね?
Slimeと同じ親持ってないと出来ないんですね。本はMonsterとなってたので本が間違えてるんですね
386デフォルトの名無しさん (スップ Sdff-vFYg [1.66.105.243])
2018/08/25(土) 18:30:25.41ID:RUz16HRCd387デフォルトの名無しさん (スップ Sdff-vFYg [1.66.105.243])
2018/08/25(土) 18:37:44.34ID:RUz16HRCd まぁとはいえ細かい部分の理解は後で修正は効くから先に進んでも別に良い
388デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/25(土) 18:47:47.60ID:b/emt3jR0 >>377-378
フィールドはオーバーライドしないんですね。408-409ページにて普通に継承先で同じフィールドを定義してたので
いいのかなって思ってました。
同じフィールドを使いたい場合は親にあるメンバを使えばいいんですね。タメになります
ありがとうございます
フィールドはオーバーライドしないんですね。408-409ページにて普通に継承先で同じフィールドを定義してたので
いいのかなって思ってました。
同じフィールドを使いたい場合は親にあるメンバを使えばいいんですね。タメになります
ありがとうございます
389デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/25(土) 19:35:13.69ID:b/emt3jR0 >>386
フィールド直したら仮引数がMonsterの元々あったコードでもいけました
SlimeとHeroが同じ親だとis-aの関係がおかしいと思ってたので助かりました
ありがとうございます
…もっかい読み直してみます^^;
フィールド直したら仮引数がMonsterの元々あったコードでもいけました
SlimeとHeroが同じ親だとis-aの関係がおかしいと思ってたので助かりました
ありがとうございます
…もっかい読み直してみます^^;
390デフォルトの名無しさん (ワッチョイ 4feb-axIE [113.197.216.195])
2018/08/26(日) 02:02:46.21ID:UC7Cb0Ac0 文字列比較containsで正規表現は使えますか?
とあるサイトで使えるとあったので試してみましたが使えませんでした
とあるサイトで使えるとあったので試してみましたが使えませんでした
391デフォルトの名無しさん (ワッチョイ 6fb6-m5ma [111.90.3.249])
2018/08/26(日) 02:12:09.19ID:IHxJX3F+0 >>390
使えないよ、そのサイトが間違ってる
使えないよ、そのサイトが間違ってる
392デフォルトの名無しさん (ワッチョイ 4feb-axIE [113.197.216.195])
2018/08/26(日) 03:16:41.69ID:UC7Cb0Ac0 ありがとうございました
393デフォルトの名無しさん (アウアウカー Saff-BXIx [182.251.253.16])
2018/08/26(日) 10:30:20.29ID:iIRyt0Moa Kotlinは使えた気がするから、そのサイトはKotlinと混同してるのかもね
394デフォルトの名無しさん (ワッチョイ 7b9f-PcWx [118.152.82.239])
2018/08/26(日) 13:23:38.37ID:HHP/3bjy0 Kotlin の場合は Regex のインスタンス渡すやつがあるからそれで使える。
Regex ではなく String のインスタンス渡した場合は Java と同じ動作。
Regex ではなく String のインスタンス渡した場合は Java と同じ動作。
395デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/27(月) 11:05:42.24ID:efjEsUrt0 サイトの質問で申し訳ないんですが
paizaって入力を受け付ける関数とかは使えないんですか?
int abc=new java.util.Scanner(System.in)nextInt();って打っても実行はできるんですが
入力まち画面は出ません
paizaって入力を受け付ける関数とかは使えないんですか?
int abc=new java.util.Scanner(System.in)nextInt();って打っても実行はできるんですが
入力まち画面は出ません
396デフォルトの名無しさん (ワッチョイ 0f80-jqYf [153.177.171.243])
2018/08/27(月) 11:37:43.51ID:ba8BcfX30 出力が標準出力で、入力は標準入力。
入力の所に書けば?
ファイルから読み込みたいのなら、
ファイル名の右横にある、+ を押して、入力ファイルを作る
入力の所に書けば?
ファイルから読み込みたいのなら、
ファイル名の右横にある、+ を押して、入力ファイルを作る
397デフォルトの名無しさん (ワッチョイ dfd2-wF79 [27.139.213.198])
2018/08/27(月) 12:01:59.11ID:efjEsUrt0398デフォルトの名無しさん (ワッチョイ 1bb3-t5+t [126.205.0.187])
2018/08/27(月) 12:32:02.03ID:dQ3pJlXI0 EntityクラスにDBのデータを入れて加工してDAOクラスに突っ込んでViewに投げるという処理を流れ作業としてやっているのですが、クエリで絞っていきなりDAOに入れたら早いかもと感じています。Entityクラスを省くのはjava開発的にどうなのでしょうか。
もう別の新しい概念があるのかもしれませんが
もう別の新しい概念があるのかもしれませんが
399デフォルトの名無しさん (アウアウウー Saff-7HHy [106.181.127.130])
2018/08/27(月) 12:54:00.84ID:HPy1/YKZa DAOに突っ込むってどういう意味?ViewってDBのViewなのかMVCのViewなのかどっち?
java開発的にどうとか以前に曖昧な言葉遣いに注意せよ
java開発的にどうとか以前に曖昧な言葉遣いに注意せよ
400デフォルトの名無しさん (オイコラミネオ MMff-37TB [61.205.98.87])
2018/08/27(月) 21:17:09.10ID:VnEVG+oDM こちらで質問していいのか分かりませんが…
プログラミングは全く勉強したことがありません。
仕事でジェノグラム(家族図的なもの)をよく作成するので、家族歴(結婚、離婚、出生、死亡)の時間軸に合わせてその時期にどんな家族状況だったかを図示できるようなプログラミングを作ってみたいなと思ってます。
こういうものを作るのに最適なアプリケーションってどんなものなんでしょうか。
エクセルが好きで関数いじったりするのは苦になりません。
よろしくお願いします。
プログラミングは全く勉強したことがありません。
仕事でジェノグラム(家族図的なもの)をよく作成するので、家族歴(結婚、離婚、出生、死亡)の時間軸に合わせてその時期にどんな家族状況だったかを図示できるようなプログラミングを作ってみたいなと思ってます。
こういうものを作るのに最適なアプリケーションってどんなものなんでしょうか。
エクセルが好きで関数いじったりするのは苦になりません。
よろしくお願いします。
401デフォルトの名無しさん (ブーイモ MMff-7HHy [49.239.71.193])
2018/08/27(月) 21:31:24.25ID:dJeCT78qM402デフォルトの名無しさん (アウアウカー Saff-2xWw [182.251.240.5])
2018/08/27(月) 21:31:31.57ID:l2rfNjjda403398 (ワッチョイ 6f76-t5+t [183.77.8.228])
2018/08/27(月) 21:36:06.38ID:Psg4p/SV0 最近クラスとメソッドを覚えたような素人で言葉が足らずすみません
Entityクラスを作らずDAOクラスから直接DTOクラスを作ってしまうのは良くない事なのかご意見を聞きたかった次第です
Entityクラスを作らずDAOクラスから直接DTOクラスを作ってしまうのは良くない事なのかご意見を聞きたかった次第です
404デフォルトの名無しさん (ブーイモ MMff-7HHy [49.239.71.193])
2018/08/27(月) 22:10:38.71ID:dJeCT78qM >>403
Javaドカタワールドで一般的にいうentityってのはDBとアプリケーションコードとの間のデータの受け渡しに使われるDTOの一種にすぎない
最終的にViewに渡すものと同じなら省略するなり好きにしたらいい
エンティティは本来ドメインモデル上の登場人物であり、ビジネスロジックで主役として振る舞うべきもので、
DAOの中でデータアクセスのためだけにEntityを使うってのは本来はおかしな話
Javaドカタワールドで一般的にいうentityってのはDBとアプリケーションコードとの間のデータの受け渡しに使われるDTOの一種にすぎない
最終的にViewに渡すものと同じなら省略するなり好きにしたらいい
エンティティは本来ドメインモデル上の登場人物であり、ビジネスロジックで主役として振る舞うべきもので、
DAOの中でデータアクセスのためだけにEntityを使うってのは本来はおかしな話
405デフォルトの名無しさん (ワッチョイ 0f80-jqYf [153.177.171.243])
2018/08/28(火) 00:26:20.98ID:TEJeUOom0 プログラム(Java) ←→ entity ←→ DB
Rails が、migration で自動的に作るのを、手作業で作っているだけだろ
Rails が、migration で自動的に作るのを、手作業で作っているだけだろ
406デフォルトの名無しさん (ワッチョイ 1bb3-t5+t [126.205.0.187])
2018/08/28(火) 06:59:33.13ID:CaCX57FK0407デフォルトの名無しさん (ワッチョイ 1bb3-t5+t [126.205.0.187])
2018/08/28(火) 07:01:25.66ID:CaCX57FK0 >>405
Entityぶち込みの概念はRailsのが後じゃ
Entityぶち込みの概念はRailsのが後じゃ
408デフォルトの名無しさん (アウアウウー Saff-7HHy [106.181.126.167])
2018/08/28(火) 08:52:02.52ID:oX5PU4jWa [DB] -- DTO(399の会社ではentity) -- [DAO(ドメインモデルではrepository)] -- DTO(ドメインモデルではentity) -- [サービス/ユースケース/トランザクション(たぶん399の会社にはない)] -- [コントローラ] -- DTO/ViewBag -- [ビュー]
こうか?
こうか?
409デフォルトの名無しさん (アウアウウー Saff-7HHy [106.181.126.167])
2018/08/28(火) 09:13:22.39ID:oX5PU4jWa 書いてて思ったけど、一番左のDTOはDTOというよりActive Recordかなあ
そこらへんはDAOを主軸にして見るならあくまでDAOの実装の詳細だからアーキテクチャ的にはどうでもよい部分
DAOの中でSQL書いて左から2番目のDTOに直接詰めるのももちろんアリ、というかORM使わないなら普通はそうする
そこらへんはDAOを主軸にして見るならあくまでDAOの実装の詳細だからアーキテクチャ的にはどうでもよい部分
DAOの中でSQL書いて左から2番目のDTOに直接詰めるのももちろんアリ、というかORM使わないなら普通はそうする
410デフォルトの名無しさん (ワッチョイ 1bb3-t5+t [126.205.0.187])
2018/08/28(火) 12:36:39.57ID:CaCX57FK0411デフォルトの名無しさん (ワッチョイ 1bb3-t5+t [126.205.0.187])
2018/08/28(火) 12:39:50.34ID:CaCX57FK0 つかEntityとDTOを分けない所多いんですか?
未経験で世界が狭いので興味あります
未経験で世界が狭いので興味あります
412デフォルトの名無しさん (ブーイモ MMff-7HHy [49.239.66.239])
2018/08/28(火) 13:35:17.88ID:psOOFlweM DBの詳細を吸収するのは一般的にはDAOの仕事
更にドメイン寄りの論理的な型とシリアライズ用の型を区別したいんなら、
(DDDでいう)エンティティを返すリポジトリクラスがあって、
リポジトリが中でDAOを使ってDBからデータ引っ張ってきて行オブジェクトをエンティティに変換するのが今風だと思う
更にドメイン寄りの論理的な型とシリアライズ用の型を区別したいんなら、
(DDDでいう)エンティティを返すリポジトリクラスがあって、
リポジトリが中でDAOを使ってDBからデータ引っ張ってきて行オブジェクトをエンティティに変換するのが今風だと思う
413デフォルトの名無しさん (ワッチョイ 1bb3-bOqL [126.163.191.165])
2018/08/29(水) 06:50:26.78ID:Q2YQokuo0 javaを勉強中の学生です。
画像の問題が全くわからなく、空欄の答えとできればその理由を簡単にでいいので教えて頂きたいです、、
どうかよろしくお願いします。
https://i.imgur.com/TAKEWJX.jpg
画像の問題が全くわからなく、空欄の答えとできればその理由を簡単にでいいので教えて頂きたいです、、
どうかよろしくお願いします。
https://i.imgur.com/TAKEWJX.jpg
414デフォルトの名無しさん (アウアウカー Saff-BXIx [182.251.253.6])
2018/08/29(水) 09:00:37.32ID:ZDG8YYaGa ヒント
Int型のiを他の型にキャストしてみよう
Int型のiを他の型にキャストしてみよう
415デフォルトの名無しさん (シャチーク 0Cff-fHzT [202.32.14.23])
2018/08/29(水) 09:18:55.27ID:nm+82+J6C >>413
String.format()を駆使する
String.format()を駆使する
416デフォルトの名無しさん (オッペケ Srff-Qvmn [126.34.37.82])
2018/08/29(水) 09:22:36.45ID:9k/VMyPqr >>413
「Java String 空白埋め」とかでググろう
「Java String 空白埋め」とかでググろう
417デフォルトの名無しさん (アウアウカー Saff-bOqL [182.251.251.14])
2018/08/29(水) 10:56:03.84ID:g0t1qxJja ヒントありがとうございます!
自分なりに考えた結果
String.format(‘‘%.’’+i+‘‘f’’,i)
で合ってますかね?
帰って打ち込めば分かる話なのですがw
自分なりに考えた結果
String.format(‘‘%.’’+i+‘‘f’’,i)
で合ってますかね?
帰って打ち込めば分かる話なのですがw
418デフォルトの名無しさん (アウーイモ MMff-QdkD [106.139.6.174])
2018/08/29(水) 11:00:53.34ID:LhfUpRDDM それにしても問題のための問題という感じだな。
解ける人向けのなぞなぞみたいなもんで、出題者に意味や知性を感じられない。
解ける人向けのなぞなぞみたいなもんで、出題者に意味や知性を感じられない。
419デフォルトの名無しさん (ブーイモ MMff-fKB3 [210.149.253.199])
2018/08/29(水) 12:05:33.04ID:wxHokPsyM420デフォルトの名無しさん (ワントンキン MMff-hLn2 [153.154.41.132])
2018/08/29(水) 12:26:12.61ID:agelIibQM Utilクラスをstaticにしない意味って何かあるのでしょうか?
今の現場の仕様がUtilのメソッドをいちいちnewしなきゃならなくて
とてもいらつくのですが…
今の現場の仕様がUtilのメソッドをいちいちnewしなきゃならなくて
とてもいらつくのですが…
421デフォルトの名無しさん (シャチーク 0Cff-fHzT [202.32.14.23])
2018/08/29(水) 12:30:28.52ID:nm+82+J6C >>417
キャストしないとエラーになる
キャストしないとエラーになる
422デフォルトの名無しさん (アウアウカー Saff-BXIx [182.251.253.16])
2018/08/29(水) 13:00:25.63ID:wZaD4gXBa 実際formatの書式なんて覚えてる必要ないんだけどな
うろ覚えであーでもないこーでもないとやってる暇があったら、そんなことに時間使わずに即ググって欲しい
うろ覚えであーでもないこーでもないとやってる暇があったら、そんなことに時間使わずに即ググって欲しい
423デフォルトの名無しさん (アウアウカー Saff-2xWw [182.251.240.49])
2018/08/29(水) 18:52:47.00ID:bZ2D0xRLa >>417
引数の側のiは (double) i という具合にキャストする必要がある。
しかしそれでは完全に一致する出力にならない。0だけスペースが一つ多くなる。
もうほとんど出題ミスのような感じがしてならないのだが、更に捻ると全てが完全一致する出力を作れる。
引数の側のiは (double) i という具合にキャストする必要がある。
しかしそれでは完全に一致する出力にならない。0だけスペースが一つ多くなる。
もうほとんど出題ミスのような感じがしてならないのだが、更に捻ると全てが完全一致する出力を作れる。
424デフォルトの名無しさん (アウアウカー Saff-2xWw [182.251.240.49])
2018/08/29(水) 18:54:57.86ID:bZ2D0xRLa あ、ごめん。まだ左側スペース入れるformatになってなかったか。
ま、やってる内にどういうことかわかる。
ま、やってる内にどういうことかわかる。
425デフォルトの名無しさん (ワッチョイ 6f3a-fHzT [175.177.3.75])
2018/08/29(水) 19:39:49.84ID:b/VcLTdm0426デフォルトの名無しさん (ワッチョイ 7bba-m5ma [118.86.92.10])
2018/08/29(水) 21:18:05.63ID:tTgGQU3y0 >>425
それだとこうなっちゃうんよ
https://paiza.io/projects/vMm1SEA-ycs531bGbqQjHg?language=java
_____0
___1.0
__2.00
_3.000
こやればいんだけど、こんなの問題にするかねと
https://paiza.io/projects/2mz6h5nNUYd_KrDUo3klNg?language=java
それだとこうなっちゃうんよ
https://paiza.io/projects/vMm1SEA-ycs531bGbqQjHg?language=java
_____0
___1.0
__2.00
_3.000
こやればいんだけど、こんなの問題にするかねと
https://paiza.io/projects/2mz6h5nNUYd_KrDUo3klNg?language=java
427デフォルトの名無しさん (ワッチョイ 6f3a-fHzT [175.177.3.75])
2018/08/29(水) 22:01:21.61ID:b/VcLTdm0 for (int i = 0; i < 4; i++) {
System.out.println(String.format("%" + ((i == 0) ? 5 : 6) + "." + i + "f", (float)i));
}
System.out.println(String.format("%" + ((i == 0) ? 5 : 6) + "." + i + "f", (float)i));
}
428デフォルトの名無しさん (ワッチョイ 5b76-BXIx [14.3.57.9])
2018/08/29(水) 22:04:24.07ID:n9AQAOMs0 こんなのソラで書けても実務ではほぼ無意味だ
この問題が本当に問題のための問題だな
この問題が本当に問題のための問題だな
429デフォルトの名無しさん (ワッチョイ 6f3a-fHzT [175.177.3.75])
2018/08/29(水) 22:12:26.61ID:b/VcLTdm0 でも >>426 が言ってる方が自然かもね
for (int i = 0; i < 4; i++) {
System.out.println(String.format("%" + (4 - i) + "s%." + i + "f", "", (float)i));
}
for (int i = 0; i < 4; i++) {
System.out.println(String.format("%" + (4 - i) + "s%." + i + "f", "", (float)i));
}
430デフォルトの名無しさん (アウアウカー Sa5d-EkB7 [182.251.240.44])
2018/08/30(木) 09:37:14.90ID:Le3eFjina 出題ミスか引っかけ問題かな。
またはミスと気づいたけど引っかけ問題として丁度良いからミスではなかったことにして放置か。
しかし初心者に出すにはどうかという感じもする。実際にこんなのが必要とされることもなさそうだし。
もはやパズルだよなあ。
またはミスと気づいたけど引っかけ問題として丁度良いからミスではなかったことにして放置か。
しかし初心者に出すにはどうかという感じもする。実際にこんなのが必要とされることもなさそうだし。
もはやパズルだよなあ。
431デフォルトの名無しさん (ワントンキン MM8a-3a+O [153.248.66.50])
2018/08/31(金) 12:31:48.30ID:N1CziDiXM もう古いと言われてるデザインパターンを何度も身につけようとしては挫折
写経だけじゃ理解するのは難しいですか?
写経だけじゃ理解するのは難しいですか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
