Java入門・初心者質問スレ Part.8at TECH
Java入門・初心者質問スレ Part.8 - 暇つぶし2ch200:デフォルトの名無しさん
18/07/23 08:22:33.03 SFDDqZpg0.net
GUI作るとき普通にswing使ってる・・・

201:デフォルトの名無しさん
18/07/23 12:29:05.74 dqTrBb4Wa.net
Swingみたいにawtから


202:継承して色々なのを作れなくはない。 ようするに絵を描いてしまえば良いだけなので。 まあしかし自作するのは面倒くさいのと、そのソフト配布する時に必ずそのライブラリも付加しなければいけなくなり、それにバクがあったらまた自分で配布するとか、色々と面倒なので作る人は少ない。



203:デフォルトの名無しさん
18/07/23 12:51:10.39 52m4LxuYM.net
そもそも醜悪なSwingの見た目を良くしようと思ったらIntelliJレベルまでフルカスタマイズする必要があるから、
どうしてもJavaクライアントでやるなら最初から見た目は諦めるのが一般的だね

204:デフォルトの名無しさん
18/07/23 15:31:25.10 2v0YBmtd0.net
>>50
あわびを股間に当ててやらないと・・・

205:デフォルトの名無しさん
18/07/23 16:38:51.36 VODOn8B/a.net
中々斬新な誤爆

206:デフォルトの名無しさん
18/07/23 16:53:31.52 2v0YBmtd0.net
だろ?

207:デフォルトの名無しさん
18/07/23 20:20:16.10 SeSwW+Qt0.net
>>191
ありがとうござます。
javaでcssを使えるようになりたいのですが、おすすめサイトや本を教えてくださいませんか?

208:デフォルトの名無しさん
18/07/23 22:09:51.35 /85lFAZQ0.net
CSS は、JavaScript のjQuery か、Ruby のNokogiri
Selenium WebDriver なら、数言語から使える

209:デフォルトの名無しさん
18/07/23 22:28:13.38 AIVQMcWf0.net
>>199
javaでgui作りたいのにjsやrubyが必要なのか?

210:デフォルトの名無しさん
18/07/24 06:04:42.11 vufwpevU0.net
>>200
違うやろ、お前が本当にやりたいのはRubyや!

211:デフォルトの名無しさん
18/07/24 10:23:56.20 swVduOaV0.net
昨今は、Java, Ruby, Go など、どの言語でも、
画面は、HTML, CSS, JavaScript になる

212:デフォルトの名無しさん
18/07/24 19:15:31.93 xvO2H0Wx0.net
皆様ありがとうございました。
ジャバのビューをcssでデザインしようとしたら
レイアウトでCSSタグを使えばいいのでしょうか?
そういうサンプルが豊富なテキストとかありませんでしょうか?

213:デフォルトの名無しさん
18/07/24 20:22:59.08 UCXwOjul0.net
JavaFXはスタイルシートっぽいの使えた気がするが現在微妙な立ち位置…

214:デフォルトの名無しさん
18/07/25 09:06:39.89 85zzKATD0.net
Javaに書いたhtmlだとformタグの子要素からeventを取得すると思いますが、どのようにしますか?

215:デフォルトの名無しさん
18/07/25 09:26:35.97 GNtg4sP8a.net
>>205
> Javaに書いたhtmlだと
これはどういう状態の事を言っているのかがわからない。

216:デフォルトの名無しさん
18/07/25 09:43:33.31 85zzKATD0.net
>>206
Jlabelのインスタンス宣言時に、引数にhtmlを含んだStringを渡した時のことです

217:デフォルトの名無しさん
18/07/28 12:20:25.55 AyAWko9L0.net
二ヶ月前に初めて、やっとJAVAと一緒に、JSP、SQL等つかえるようになってきたものです。
ただここから何作ればいいかわからず、途方にくれています。
JAVA覚えたてになにかいいプロジェクトなどありますか?

218:デフォルトの名無しさん
18/07/28 13:30:04.22 Z2VlFyTVa.net
>>208
そこまでできれば最底辺奴隷PGとしては十分だから、普通にとりあえずどっかのブラック企業に就職して現場に投入してもらえばいい
仕事でやるつもりじゃないんならJavaは無用
NodeやRailsにでも行ったほうがいい

219:デフォルトの名無しさん
18/07/28 13:42:18.06 XhNeQ3HeM.net
JavaのWebシステムって基本的に金のために作るのがわけだからオープンソースプロジェクトなんかほとんど無いし、
独学で習得できるノウハウも極めて限られてる
仕事して覚えるのが一番手っ取り早いよ
独学で頑張ったところで人材としての世間の評価は「未経験」だから、はっきり言って時間の無駄

220:デフォルトの名無しさん
18/07/28 14:06:23.60 C+3FbN1g0.net
不条理だよな
実務経験あってC++とかほかの手続き型言語の経験あったら
JavaやらC#やらごときできないわけないだろ!
そのへんのフレームワークも
業務経験でそこまで変わるとおもえん
趣味で使えるなら業務だからってそんな難しくなるか?

221:デフォルトの名無しさん
18/07/28 14:19:30.77 CQV9Y2aY0.net
むしろ趣味でやってるやつの方が洗練されたプログラムを書く

222:デフォルトの名無しさん
18/07/28 14:35:08.40 AyAWko9L0.net
<209-210
そうなんですね。。
自分の前職の内容洗い出してなにか作れないか考え直してみます。
面談受って早く現場いきたいなぁ・・

223:デフォルトの名無しさん
18/07/28 14:51:31.24 XhNeQ3HeM.net
>>213
暇ならインフラやれば?
サンプルをAWS上に立てたサーバーへデプロイするくらいまでやってみたらいい
インフラに強いと一山いくらのPGの中ではかなりの差別化になるよ

224:デフォルトの名無しさん
18/07/28 17:04:41.65 s8FQvaoRM.net
>>213
レスもまともに出来ないなら辞めとけ‥

225:デフォルトの名無しさん
18/07/28 19:21:35.28 K/0n2MBX0.net
>>208
2か月でそんなできるようになるなんて凄いです
勉強方法を教えてもらえませんか?

226:デフォルトの名無しさん
18/07/28 19:41:34.26 x9KNF6950.net
>>216
うちも実務でできるようになったぞ
まあ、GUI絡むと死ぬけど

227:デフォルトの名無しさん
18/07/28 21:03:39.83 K/0n2MBX0.net
いきなり実務って無理じゃないですか?
実務に入る前に前提知識を身に付けるとしたらどんな学習方法があるのでしょうか?

228:デフォルトの名無しさん
18/07/28 21:57:47.44 kQ5RCDb7a.net
>>218
言語がだいたいわかってれば十分いきなり実務できるよ
心配しなくても未経験の最低単価のPGなんて使う方も大した期待はしていない
業務の開発なんてほとんどコピペだから、似たような処理をコピペしてきてちょっと弄るくらいできれば上出来

229:デフォルトの名無しさん
18/07/28 22:05:47.35 kQ5RCDb7a.net
ついでにいうと、低級のPGに限らず、SI案件の実務なんて君が想像してるほどレベル高くないよ
初心者に毛が生えた程度の人達がひたすら右から左へデータを書き写す単純作業をしてるだけ

230:デフォルトの名無しさん
18/07/28 22:12:50.83 C+3FbN1g0.net
失敬な
上流の人にゴマすったり
他人のコードにケチつけたり
書類の誤植をひたすらなおしたり
いっぱいやることはあるぞ!

231:デフォルトの名無しさん
18/07/29 01:44:24.96 pFjYaTQt0.net
「スッキリわかる Java入門 第2版」で、オブジェクト指向を学んだのなら、
「たのしいRuby 第5版、2016」を読んで、
無料のRails チュートリアルをやれば?
これをやれば、すべてのフレームワークに応用できるし、製品の全工程がわかる。
作品も、Railsで作るのが楽
その後、掌田津耶乃のフレームワークの本を読めば?
Spring Framework 4 プログラミング入門、2014
Spring Boot プログラミング入門、2016
Node.js超入門、2017
Python Django 超入門、2018
それか、Java 土方になるか。
土方の欠点は、製品の一部分しか作らないから、全工程がわからない事。
土方なら、以下の本
実践Javaコーディング作法 プロが知るべき、112の規約と21の心得、2014
Java 最強リファレンス、2014
EFFECTIVE JAVA 第2版、2014

232:デフォルトの名無しさん
18/07/29 05:01:52.49 ROz5wbxP0.net
+=
これと
=
の使い分けが分からないので教えてほしいです
a +=2
a = 2

233:デフォルトの名無しさん
18/07/29 06:27:19.95 bwtbjTxx0.net
>>223
「a +=2」 == 「a = a + 2」

234:デフォルトの名無しさん
18/07/29 07:10:46.32 ROz5wbxP0.net
>>224
ありがとうございます
それが同じ意味だとは分かるのですが、使い分け方が分かりません
全く同じ意味なんですか?+=と=は

235:デフォルトの名無しさん
18/07/29 07:44:12.01 HY6JPPPD0.net
演算と同時に代入

236:デフォルトの名無しさん
18/07/29 07:49:27.01 HY6JPPPD0.net
a +=2は「aの元の値に2を足してaに代入」
a = 2は「aの元の値が何であろうが2を代入」だ
全然違う

237:デフォルトの名無しさん
18/07/29 08:07:00.83 ROz5wbxP0.net
>>227
ごめんなさい;
理解できました。ありがとうございます

238:デフォルトの名無しさん
18/07/29 10:06:49.41 LcT2Y+8B0.net
>>219
自分は本業は違う業界なのでPGは独学です
有料のネット学習も考えてみましたがどうなのでしょう?
 

239:デフォルトの名無しさん
18/07/29 12:25:27.18 7lOBGcOb0.net
完璧に使えるようになるまで実務では使わないという事にすると一生実務で使わない事になりかねないと思う。
言語そのものはすぐに覚えられるだろうが、あらゆる分野のあらゆるライブラリが次々と湧いて出てきて尚且つその一つ一つが日々バージョンアップして行くわけで、そんなの全部覚えられるわけがない。

240:デフォルトの名無しさん
18/07/29 13:11:24.87 lzRBxehAa.net
業務システムに必要な技術要素はこれだけ
・画面に情報を表示する&ユーザーの入力を取得する
・現在の状態を更新または取得する
・作ったものをユーザーが使える状態にする
あとはそれぞれについて一つ道具を覚えたら一通りモノは作れる
できる奴は本当にこれだけでできるし、できない奴はどれだけ独学で頑張っても仕事しない限り無理

241:222
18/07/29 13:30:36.71 pFjYaTQt0.net
>>229
プロゲートで、Ruby をやって、
無料のRails チュートリアルをやるのが定番
YouTube で、セレブエンジニアの小松和貴という人が、
フリーエンジニアになる方法など、よく転職動画を挙げている

242:デフォルトの名無しさん
18/07/29 19:06:08.84 LcT2Y+8B0.net
>>232
javaを身に付けたいのですが、rubyから入った方がいいのでしょうか?
今はスッキリjavaを呼んで、androidアプリ開発の教科書(斎藤)を読み終えようとしてるところです。

243:デフォルトの名無しさん
18/07/29 19:48:23.27 g2ZFpFJd0.net
>>233
辞めたほうがいい
JavaからRubyやるならわかるが、RubyからJavaはいろんな意味で混乱するぞ

244:222
18/07/29 20:34:57.81 pFjYaTQt0.net
たのしいRuby 第5版、2016
時間効率では、この本を3回読んでも20時間で、得られるものも多い。
Rubyでしばらく遊んで、正規表現・配列のメソッドを覚えれば、
JavaScript, jQuery へ移行できる
JavaScript, Kotlin などは、Rubyに似せてくるから、
Rubyのプログラミングのやり方の多くが使える
それに、ファイル・テキスト処理では無敵だし、
他の言語の基礎になるから、やって損はしないのでお勧め!

245:デフォルトの名無しさん
18/07/29 20:41:48.46 LcT2Y+8B0.net
>>235
ありがとうございます。
初学者なので教えていただけると嬉しいのですが
RubyとPythonは同じような位置づけの印象がありますが
PythonよりRubyの方がいいのでしょうか?

246:デフォルトの名無しさん
18/07/29 20:45:44.14 ZNkzy5HU0.net
これを一番の参考にすべきでしょう。
プログラマー年収ランキング2017!言語別、第1位はScalaの626万円
URLリンク(jp.stanby.com)

247:デフォルトの名無しさん
18/07/30 06:36:07.38 jE1kRg0J0.net
できれば、個人的にandoroidアプリを開発できるようになりたいと考えて�


248:ワす その場合の学習進路として、、java→SQL→サーバーサイドって感じになりますか?



249:デフォルトの名無しさん
18/07/30 06:39:30.81 HJqNjAI+0.net
>>238
android勉強しなよ

250:デフォルトの名無しさん
18/07/30 06:48:22.59 rPrBkWVy0.net
>>238
koltin

251:デフォルトの名無しさん
18/07/30 06:50:55.04 HJqNjAI+0.net
プログラムは、順次、選択、繰返しで実装できることがわかってるんだから
if文とwhile文がわかったら十分
SQLもサーバサイドも必要になってから調べれば良い
androidの開発がしたいならandroidの実装の仕方を勉強しないと

252:デフォルトの名無しさん
18/07/30 07:04:17.38 EYjHLRR70.net
論理演算子の または~って縦棒と変換して使うとエラー出るんですけど
なんて変換すればいいですか?
かつ(&&)は出るんですけど・・・

253:デフォルトの名無しさん
18/07/30 07:07:38.43 EYjHLRR70.net
すみません。逆でした
且(&&)はエラーでないんですけど
または(‖)と打つとエラーが出ます。

254:デフォルトの名無しさん
18/07/30 07:09:46.37 HJqNjAI+0.net
&&
||

255:デフォルトの名無しさん
18/07/30 07:12:39.54 HJqNjAI+0.net
文字が違う

256:デフォルトの名無しさん
18/07/30 07:15:16.17 EYjHLRR70.net
>>244
ありがとうございます。
コピーしたら使えるんですけど、なんて変換したら出るか教えて下さい
自分のパソコンだと’縦’で変換しても同じのが出ません><;

257:デフォルトの名無しさん
18/07/30 07:26:14.47 HJqNjAI+0.net
>>246
キー配列がJapaneseなら
Shift+\
で出るよ

258:デフォルトの名無しさん
18/07/30 07:29:21.70 EYjHLRR70.net
>>247
おかげさまでいけました!
ありがとうございます。

259:デフォルトの名無しさん
18/07/30 08:40:16.78 qnQc5JETM.net
>>241
Androidアプリ一個もリリースしたことなさそう

260:デフォルトの名無しさん
18/07/30 08:48:15.71 EokvRzKZ0.net
なんで記号を変換で打ってるんだろ?
そのもののキーあるのに

261:デフォルトの名無しさん
18/07/30 11:52:06.89 +mfJwdNa0.net
夏休み

262:デフォルトの名無しさん
18/07/30 11:56:24.86 kNimcJUea.net
スマホならわかるがPCは滅多に触らないので勝手がわからないのかも知れない

263:デフォルトの名無しさん
18/07/30 13:50:18.67 s9CMcrrz0.net
プログラミングの勉強について
制御や配列などの基本的な部分を理解したら
・ 深く考えずサンプルプログラムを打ちまくる
・ 時間をかけてサンプルプログラムをしっかり理解しながら進める
どっちが正解なのでしょうか?
javaの勉強の進め方は
クラスやオブジェクトを総覧しておいて
何を作るにはどのクラス、メソッドを組み合わせるか
という視点を中心として進めればいいのでしょうか?

264:デフォルトの名無しさん
18/07/30 13:59:05.70 EokvRzKZ0.net
優れたコードを沢山読んで理解

265:デフォルトの名無しさん
18/07/30 14:11:11.18 kNimcJUea.net
>>253
> ・ 時間をかけてサンプルプログラムをしっかり理解しながら進める
こっちだろうなやはり。
> javaの勉強の進め方は
> クラスやオブジェクトを総覧しておいて
> 何を作るにはどのクラス、メソッドを組み合わせるか
> という視点を中心として進めればいいのでしょうか?
そうだな。
それと逆引き辞典みたいな本があるといいかも。ネットで検索してもいいけどね。

266:デフォルトの名無しさん
18/07/30 15:27:50.75 s9CMcrrz0.net
ありがとうございます!

267:デフォルトの名無しさん
18/07/30 17:31:28.20 s9CMcrrz0.net
インスタンスの取得に関してなのですが、
自分で作成したクラスや、Overrideしたクラスは、インスタンスをnewで取得し
importして使うクラスに関しては、戻り値でインスタンスを取得するという感じなのでしょうか?

268:デフォルトの名無しさん
18/07/30 18:40:50.03 xHVHgAPAa.net
>>257
いやそれはどういう設計なのかによる。
まあしかしだいたいは new してインスタンス作ると思ってて良い。

269:デフォルトの名無しさん
18/07/30 18:41:40.34 xHVHgAPAa.net
import するかどうかは関係ない。

270:デフォルトの名無しさん
18/07/30 18:43:18.75 s9CMcrrz0.net
そうなのですね、ありがとうございます。
newしていないのに戻り値でオブジェクトが返


271:されたりすると コードを読んでいて混乱してきてしまってます newされていない時に、リファレンスで戻り値を確認しながら読んでいきます。 いつもありがとうございます。



272:デフォルトの名無しさん
18/07/30 19:52:51.96 oxH0veC50.net
>>249
話は変わるけど服部栄養専門学校の服部先生は調理師免許持ってないんだって

273:デフォルトの名無しさん
18/07/30 20:35:26.48 r0zEs9EBa.net
>>261
え?俺は情報関係の資格一つも持たずに学校でC言語教えてたよ。
もちろん学校って言っても大学なので教員免許みたいなものもなしだよ。

274:デフォルトの名無しさん
18/07/31 07:08:54.24 0WPHgBA60.net
<<250
BUFFALOの安いキーボードだと'め'と\がどっちもスラッシュで印刷されてて・・・
全く気づきませんでした

275:デフォルトの名無しさん
18/07/31 08:59:47.57 2hPyQPU6a.net
旧石器時代に作られたjavaのコードを調べてたら、
javax.swingみたいな組み込みのパッケージに直接オリジナルのクラスを追加している(そしてそのせいで最大にバグを引き起こしている)実装を見たんだけども、
こういう手法ってかつては一般的だったの?
どう考えてもアンチパターンな気がするんだけども

276:デフォルトの名無しさん
18/07/31 10:22:26.10 +/oTEV5Ja.net
>>263
よくわからんが日本語キーボードは「め」が「/」で「ろ」が「\」ではないか?

277:デフォルトの名無しさん
18/07/31 10:33:30.64 hozPgbYqa.net
日本語変換でコード打つなら欧米人はどうやって打つんだろうか?
基本プログラミング時は日本語変換はOFFだ
コメントや出力文字列で使うくらい

278:デフォルトの名無しさん
18/07/31 10:36:07.86 hozPgbYqa.net
>>264
いや、普通の思考ならパッケージ分けると思う
ズボラし過ぎだろう

279:デフォルトの名無しさん
18/07/31 11:20:13.29 DldqvCwIa.net
>>267
だよね。最終更新が2001年らしいから、その時代には普通だったのかもしれないと思った。
そうじゃないなら遠慮なく怒れるわ。ふざけんなナメた実装してんじゃねえよ無能。

280:デフォルトの名無しさん
18/07/31 11:28:34.08 DldqvCwIa.net
ちなみにおそらく意図としてはpackage privateなクラスやプロパティを直接触りたかったんだろうな、と。
publicになってないものを直接触らなくちゃいけなくなった時点で根本的に設計間違えてるって気づけよ、、

281:デフォルトの名無しさん
18/07/31 15:23:33.80 K11t53A/0.net
気づいたときには時すでにお寿司

282:222
18/07/31 19:36:06.06 M5dn2TAr0.net
>>236
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
この2冊は双子。
ただし、Pythonの方が難しいから、先にたのしいを3回読むこと。
たのしいをみっちり勉強すると、みんなのがスラスラ読める
Pythonで考えて、Rubyに変換するよりも、
Rubyで考えて、Pythonに変換する方が簡単
「たのしいRuby」「スッキリわかる Java入門 第2版」
この2冊をみっちり勉強すると、基礎体力が付いているから、太郎本も読める
Kotlinスタートブック -新しいAndroidプログラミング、長澤 太郎、2016
ただし、Android の勉強のほとんどは、フレームワークの勉強。
言語じゃないから、言語を勉強しても、何も作れない!
だから、Rails などのフレームワークをやっていない人は、大変。
製品を作る全過程がわからないから
Java 土方は、製品の一部分しか作らないから、全体像を知らない

283:デフォルトの名無しさん
18/07/31 20:22:10.38 rMUR8HCB0.net
とすると、推奨本をしっかり読みこんだのち
Railsを学ぶといいということでしょか?

284:デフォルトの名無しさん
18/07/31 20:32:17.55 AgEH6KDfM.net
明確な目標があるなら普通にそれをやるべき
勉強本マニアになったところでしょうがない

285:デフォルトの名無しさん
18/07/31 20:34:06.22 rMUR8HCB0.net
ありがとうございます!
とりあえず、2冊


286:テキストを読んだので、アプリ作れるか試してみます!



287:222
18/08/01 00:34:44.18 GZaAdjmn0.net
フレームワークを勉強する定番は、
無料のRails チュートリアル

288:デフォルトの名無しさん
18/08/01 20:49:51.16 WDXOLOCva.net
フレーム枠

289:デフォルトの名無しさん
18/08/02 03:15:06.62 fAfw4oAh0.net
16進数について教えて下さい
2進数は入門サイト等見てなんとなく分かってきましたが、16進数が分かりません
0x000FF1
これは10進数にするといくらなんでしょうか?解読の仕方も教えてほしいです

290:デフォルトの名無しさん
18/08/02 03:51:34.23 vClc7nAi0.net
>>277
n進数というのは一桁でn個の値を使えるということで、16進数なら1桁の中は16種類の文字を数値ということにして扱う。
一般的な10進数だと 0 ~ 9 までしかなくて足りないので A ~ F も一桁の数を表す事にして1桁で16段階を表せるようにする。
1桁で 0 ~ F が10進数の 0 ~ 15 に相当する。一つ上の桁の 10 は10進数だと16になる(16^1ということ)。
もう後は算数の問題なのでわかるよな。 0x000ff1 は 15 * 16^2 + 15 * 16 + 1 = 4081 だ。

291:デフォルトの名無しさん
18/08/02 04:55:14.62 fAfw4oAh0.net
>>278
すいません、ありがとうございます。
0x00FFF1だったら
15*16^3 + 15*16^2 + 15*16 +1
こういう感じで合ってますか?理解できたかもです><

292:デフォルトの名無しさん
18/08/02 09:38:59.03 Cp7uV85Za.net
>>279
そうそう。それで良い。

293:デフォルトの名無しさん
18/08/02 12:14:47.15 yvP4ulwr0.net
16進すうを、2しん数に直してみれば?
0xAF → 0b1010_1111
A=10, F=15
(NG ワードで書き込めないから、変な文章になった)

294:デフォルトの名無しさん
18/08/02 12:19:40.59 dCoTR4Ex0.net
2進数で説明しようとすると、なぜかNGワードになるな・・・

295:デフォルトの名無しさん
18/08/02 12:22:24.78 dCoTR4Ex0.net
>>277
2進を理解しているのなら、16進を2進に変換すると足し算だけで出来る
16進:00 0F F1
2進:1111 1111 0001
2進はただの2^nのフラグなんで、
(2048 + 1024 + 512 + 256) + (128+64+32+16) + (1)
=4081
将来的にbit演算でANDとかORとか右シフトとか左シフトとかする時は、2進で考えた方が楽

296:デフォルトの名無しさん
18/08/02 13:12:11.32 lJdnLKf/d.net
まぁ2進数も16進数もあまり10進数に変換したりはしないよな

297:デフォルトの名無しさん
18/08/02 13:34:49.36 Cp7uV85Za.net
そうだな。むしろ10進のままだと分かり辛くて16進に変換する方が多いかな。

298:デフォルトの名無しさん
18/08/02 17:01:41.94 0VvnPUup0.net
昔は0からFまでビットパターンがすっと出てきたが、もうすっかり忘れてしまった。

299:デフォルトの名無しさん
18/08/02 17:32:08.59 TzqUENB30.net
case0と4と8のrandがエラーになります
アドバイスください
URLリンク(ideone.com)

300:デフォルトの名無しさん
18/08/02 18:39:23.05 0VvnPUup0.net
>>287
aとbが0から3で、かつ同じ数字でないという条件なら
switch (a+b)
 case (1) return 2 ;
 case (2) return 1;
 case (3) return 0;

301:デフォルトの名無しさん
18/08/02 18:40:28.63 0VvnPUup0.net
間違い。0から3じゃなくて0から2ね。

302:デフォルトの名無しさん
18/08/02 19:06:35.74 SFe9zIxEa.net
>>287
言語は何?Javaではないよね?見た感じCのようだが。
C言語の質問はC言語のスレでするように。ここは Java のスレだ。
まあだいたいの Java プログラマはCもわかるとは思うがここに書いたらスレチだ。
Javaの情報を求めるものにはノイズにしかならない。

303:デフォルトの名無しさん
18/08/02 19:50:05.85 J3O8/chO0.net
>>290
黙れ無能

304:デフォルトの名無しさん
18/08/02 20:03:56.37 dPAstyc30.net
Cに見えるんだってwww

305:デフォルトの名無しさん
18/08/02 20:50:37.59 J3O8/chO0.net
>>287
できまちた
https://


306:paiza.io/projects/Gscp1N0GhBv_HhDZj_f_YQ ・randに()がついてない ・you = ans 代入になってる を修正したらok



307:デフォルトの名無しさん
18/08/02 21:10:07.77 J3O8/chO0.net
>>271
ファイルのダウンロードについて教えてください
CSVファイルを動的に作成してそれをダウンロードする機能を
作成しているのですが、サーバのメモリが少なくてメモリに
出力するとメモリーオーバーフローのエラーが発生します
そこでCSVファイルを一旦HDDに出力してそれをレスポンスとして
返そうと思うのですが、ダウンロードの途中に中断されたとか
ネットワークエラーが起こったときに一時ファイルがサーバに残ってしまい
いずれストレージを圧迫するのではないかと危惧しています
このようなときはどのように実装すれば良いのでしょうか?
一時ファイルのクリーニングをどうやれば良いのか教えて欲しいです
他に良いやり方をご存知でしたら教えて欲しいです
どうぞよろしくお願いいたします

308:デフォルトの名無しさん
18/08/03 00:55:46.70 98gPvf7X0.net
>>294
CSVファイルを特定のディレクトリ以下に毎回新しいファイル名で作る事にして、
新しいファイルを実際に作り始める直前にそのディレクトリ以下の古いファイルを
削除する、なんてのどう?
時間で制限すると短時間に沢山リクエストが来た時にまずいという場合は更に
ファイル数でも制限して新しいファイルが100個以上残らないようにするとかね。
あと、ファイルの内容が同じなら古いファイルのタイムスタンプを更新して新たに
作ったことにして実際に新たに作った方はすぐ削除するとかね。同じ内容の
CSVになる事が事前に与えられたパラメータからわかるのであれば最初から
作らないっていう手もある。

309:デフォルトの名無しさん
18/08/03 06:08:02.22 KD3tz5Tj0.net
>>295
ありがとうございます

310:デフォルトの名無しさん
18/08/03 10:43:18.14 ioCor75Ha.net
>>296
CSVを作成し始めた時点でテーブルにファイル名等々を保存、レスポンスを返したらそのレコードに正常終了のフラグを立てて、ファイル本体は削除
任意のタイミングでそのテーブルを舐めて、正常終了にならないまま時間が経ってるCSVはファイル削除してデータ上は失敗ステータスに更新
という実装をしたことがある。メリットとしてはどういうCSVがいつ失敗したのか把握しやすい

311:デフォルトの名無しさん
18/08/03 16:53:38.35 X+nM2ZWla.net
>>287
俺が Kotlin で大幅に書き換えてやったから参考にしなさい。
無駄な処理はガバッと削除したので小さくなった。
URLリンク(paiza.io)

312:デフォルトの名無しさん
18/08/03 19:41:38.60 GOZ9L8DI0.net
>>297
ありがとうございます

313:デフォルトの名無しさん
18/08/03 19:45:26.78 GOZ9L8DI0.net
>>298
えげつない記述力ですね

314:デフォルトの名無しさん
18/08/03 19:57:48.67 seFAJe100.net
// ドアが3つならどのドアをオープンしたかは
// 求める必要がないので省略。
これだめだろ
そんなこと言ったら変更ありなしで固定確率の結果返せばいいじゃん

315:デフォルトの名無しさん
18/08/03 20:21:23.49 X+nM2ZWla.net
>>301
最初は馬鹿正直に作ったのだがオーブンするドアを求めても表示しないのなら無駄になることに気づいたんだよ。
ということは処理そのものが無駄だと。
ということで人力で超最適化。

316:デフォルトの名無しさん
18/08/03 20:52:06.74 seFAJe100.net
多少頭がいいばっかりに火傷するタイプだな(遠い目

317:デフォルトの名無しさん
18/08/04 00:45:40.61 2zclIjyW0.net
ドア開けバージョンはこれだ。結果を毎回出力するので出力が多い。
URLリンク(paiza.io)

318:デフォルトの名無しさん
18/08/04 09:43:44.1


319:6 ID:+vznLLf60.net



320:デフォルトの名無しさん
18/08/04 17:19:57.47 2zclIjyW0.net
ドア変更がある場合に変更後のドアも出すならこんな感じか。
URLリンク(paiza.io)

321:デフォルトの名無しさん
18/08/04 17:51:43.93 +vznLLf60.net
println("[$i] You=$you, Open=$opn,${if (change) " You2=${changeDoor(you, opn)}," else ""} Ans=$ans, $wlstr")
エレガント?なコードがちょっと要件に沿うよういっただけで一瞬でエディタもバグる超スパゲッティに
てかkotlinきめえw

322:デフォルトの名無しさん
18/08/04 17:58:42.48 2zclIjyW0.net
>>307
${} を入れ子にしたからな。外にも出せるよ。Java と同じ String の連結で + も使える。

323:デフォルトの名無しさん
18/08/06 12:40:16.38 fu+3+K8Ia.net
>>307
そりゃわざとキモくなるような書き方してるからだろw

324:デフォルトの名無しさん
18/08/07 01:32:48.21 oBkDl7ym0.net
色々変えて見やすくなった。
URLリンク(paiza.io)

325:デフォルトの名無しさん
18/08/07 16:08:14.49 VuYJRj/9M.net
この夏java極めようと思っていたのですがもうオワコンなんですか…?
Androidエンジニアになりたいです

326:デフォルトの名無しさん
18/08/07 17:21:08.43 r/NXRNz/a.net
そんなあなたに Kotlin
結局は Java 覚える事になりそうだけどなw

327:デフォルトの名無しさん
18/08/08 02:39:32.48 o1XsaDKS0.net
Cに書き直してみた。
URLリンク(paiza.io)

328:デフォルトの名無しさん
18/08/10 09:09:40.78 GW9IT4yi0.net
kotlinってjava覚える必要ある?
結局はインスタンスやメソッドの取り扱い方を覚えるだけでしょ
java→kotlinといより
kotlin→場合によってjava調べる的な

329:デフォルトの名無しさん
18/08/10 09:17:01.61 4t5DQamya.net
他のOO言語の経験があるならあえてJavaやらなくてもサンプルコードくらいはなんとなく読めるだろうから
経験ないならいきなりKotlinはまともな初心者向けの書籍ないから無理

330:デフォルトの名無しさん
18/08/10 09:54:41.39 4ie0qQxWM.net
長澤さんのKotlin本はどのくらいのレベルが対象?

331:デフォルトの名無しさん
18/08/10 12:55:08.73 xghqpyUKa.net
Twitterで本人に聞いてみれば

332:デフォルトの名無しさん
18/08/13 03:04:53.34 hqkLiaZ40.net
コメント化ってどんな時に使えばいいんですか?
今やってるプロジェクトで一切コメントを置いてないせいでコードがスパゲッティから毛糸のほつれに進化しかけています。
//と/**/はどっちの方がいいのか、どのタイミングで入れたらいいか等が知りたいです

333:デフォルトの名無しさん
18/08/13 08:10:45.77 CiYwNC/na.net
メソッドやクラスにはできるだけJavaDocコメントを付けて、そのメソッドやクラスの説明を書く
そして原則として、メソッドの中にはコメントは極力書かない
説明を一言書きたくなるようなパッと見何やってるか分かりにくい部分は、コメントの代わりに別のメソッドとして切り出してメソッド名で説明する
それを徹底してればprivateメンバなんかはいちいちJavaDocコメント書かなくても問題にはならない

334:デフォルトの名無しさん
18/08/13 08:23:54.17 HTY6GtFCa.net
>>318
「リーダブルコード」という、素晴らしい名著があるからそれを読んでみることをおすすめする。

335:デフォルトの名無しさん
18/08/13 10:15:39.16 9hQNlq880.net
企業によるアンチ規約あるあるだな

336:デフォルトの名無しさん
18/08/13 15:56:23.52 8BISUvphd.net
ローカル変数に引数を代入する

337:デフォルトの名無しさん
18/08/13 16:38:50.33 9hQNlq880.net
参照でなければ引数自体がローカルなんだがw

338:デフォルトの名無しさん
18/08/13 17:00:44.15 3xCIU7sj0.net
クリップボードについて質問です。
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable object = clipboard.getContents(null);
String s = "Test"; // 保存するテキスト
StringSelection selection = new StringSelection(s);
clipboard.setContents(selection, null);
String str = "";
try {
str = (String)object.getTransferData(DataFlavor.stringFlavor);
} catch(UnsupportedFlavorException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(str);
まずエディタか何かで人力でクリップボードに何かの文字列をコピーします。例えば"ABC"をコピーして、
このコードを走らせると
ABC
と表示されます。そしてそのままもう一度このコードを走らせると、今度は
Test
と表示されます。ABCと表示されるのは何が悪いんでしょうか?

339:デフォルトの名無しさん
18/08/13 21:22:00.43 wBJkicYb0.net
>>324
なるほど、完全に理解した
clipboard.setContents(selection, null);
これのあとに
Transferable object = clipboard.getContents(null);
これを書けばおk

340:デフォルトの名無しさん
18/08/13 23:25:56.73 z6+TJcGX0.net
>>324
そのプログラムだとこうなってるよね。
1. 2行目の getContents() でエディタでコピーした "ABC" が取り出される。
2. setContents() で "Test" がクリップボードにセットされる。
3. 1で取得した object の中身を取り出して出力する。(取り出されるデータは "ABC")。
"ABC" が出力されて当然の作りになっている。
上記の3の所で "Test" を取り出したいなら 2 の直後で 1 の処理をしなければならない。

341:デフォルトの名無しさん
18/08/14 07:07:01.81 IYCmiTRH0.net
Listを複数のリストに分割したいのですがやり方がわからず教えていただきたいです
// たとえば要素の数が10のリストがあったとして
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
 list.add(i);
}

// それを4つのリストに要素の数ができるだけ均等になるように分割したいです
List<Integer> list1 = new ArrayList<>(); // <- 要素は0,1,2
List<Integer> list2 = new ArrayList<>(); // <- 要素は3,4,5
List<Integer> list3 = new ArrayList<>(); // <- 要素は6,7
List<Integer> list4 = new ArrayList<>(); // <- 要素は8,9
どうぞよろしくお願いいたします

342:デフォルトの名無しさん
18/08/14 07:31:28.19 IYCmiTRH0.net
>>327
自己解決しました、もう良いです
返信しないでください

343:デフォルトの名無しさん
18/08/14 09:51:15.67 nGrU4rwG0.net
>>325
ありがとうございます。それはうまく行きました。しかしごめんなさい。どうも私が問題をちゃんと把握出来ていなかったようです。
try {
Thread.sleep(7000);
} catch (InterruptedException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
}
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable object = clipboard.getContents(null);
String str = "";
try {
str = (String)object.getTransferData(DataFlavor.stringFlavor);
} catch(UnsupportedFlavorException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(str);
どうもJTextField が関係しているらしいです。このプログラムにはテキストフィールドがいくつかあるのですが、
そこに"ABC"と入力し、それを選択、Ctrl+C でコピーします。
そしてこのコードを走らせ、スリープしている7秒の間に別のエディタで Test をクリップボードにコピーします。
すると出力が ABC となります。7秒の間にエディタ上でペーストするとちゃんとTestがペーストされます。
ABCをコピー、続けてTestをコピーしてからこのコードを走らせるとちゃんとTestとでます。
ABCをエディタでコピーした時はこの症状は出ません。

344:デフォルトの名無しさん
18/08/14 22:37:46.47 w7/teWcla.net
public static void main()って
メソッドなんですか?

345:デフォルトの名無しさん
18/08/14 22:44:24.53 z3VJK4Uca.net
メソッドです。
Javaで書かれたプログラムはMainクラスのmainメソッドを実行すると決まっています。

346:デフォルトの名無しさん
18/08/14 23:13:33.44 w7/teWcla.net
なるほどkotlinのmain ()関数のようにエントリポイントになっているんですね
コンストラクタもメソッドですか?

347:デフォルトの名無しさん
18/08/15 00:49:57.59


348:BN2igdfy0.net



349:デフォルトの名無しさん
18/08/15 05:08:46.27 JGyCTF+Aa.net
>>332
どちらもその理解で合ってる

350:デフォルトの名無しさん
18/08/15 05:10:31.45 JGyCTF+Aa.net
>>333
あ、はい

351:デフォルトの名無しさん
18/08/16 08:36:03.18 nBIOAicW0.net
すいません教えてもらってjdkは何とか導入成功したんですが
eclipseってやつと日本語化のを導入してコードを実行しようとしたら
選択は起動できず最近の起動もありません。とエラーが出て実行できません。何度か再インストールしましたが結果変わらず。
何が原因なのでしょうか?導入で参考になるサイトあれば教えてほしいです
後JDKだけじゃjavaのコードを実行とか出来ませんよね?eclipseってやつを導入して初めて意味があるものって認識で大丈夫ですか・
そこら辺もかなり曖昧なのですが…

352:デフォルトの名無しさん
18/08/16 09:15:49.93 z0v/PTWta.net
>>336
間違ってる。JDKが入っていればあとはメモ帳でjavaのプログラムを書いて実行できる。
eclipseはあくまで超高機能なメモ帳だと思ってればいい。
で、そのeclipseなんだけど、そもそも古くて昔から使ってる人以外はもうほとんど誰も使ってない。
理由は今まさに君が直面しているように、自分の期待する動きをさせるのがとても大変だから。あと重い。
今からプログラムを始めるならIntelliJ IDEAの無料版か、Android Studio (無料)を使うことをお勧めする。
どちらも基本的には同じメーカーが作ってるほぼ同じものだけど、ただjavaを書くだけならIntelliJの方が余計なものが入ってなくていいかもしれない。

353:デフォルトの名無しさん
18/08/16 09:18:39.00 z0v/PTWta.net
>>336
IntelliJの無料版のインストールをしてる記事も見つけたから貼っとくね。
URLリンク(qiita.com)

354:デフォルトの名無しさん
18/08/16 11:06:42.84 nBIOAicW0.net
>>337
レスありがとうございます
メモ帳でもプログラムの実行って出来るんですか。テキストドキュメントですよね?
コンパイルとかも勝手にしてくれるなら一番軽くて楽そうですね
>>今からプログラムを始めるならIntelliJ IDEAの無料版か、Android Studio (無料)を使うことをお勧めする
こちらの方も特性まで教えていただきありがとうございます。調べてみます
後、C++やろうと想ってvisualstudio入れてあるんですけど、これはjavaでは使えないですよね

355:デフォルトの名無しさん
18/08/16 11:54:47.10 nBIOAicW0.net
URLリンク(gyazo.com)
手順IntelliJ IDEAの構成のここまで出来たんですが説明にある(Project name)のついたフォルダの横にある▶を押して見ましょう。
というのが見当たらず詰みました;どこにあるのでしょうか

356:デフォルトの名無しさん
18/08/16 13:00:59.59 yLNqa6vha.net
>>340
それのプロジェクト名は untitled だからそれの左横。
ていうかプロジェクト名を自分で入力しないで先に進んじゃったようだね。

357:デフォルトの名無しさん
18/08/16 13:39:19.41 nBIOAicW0.net
>>341
おかげさまで見つかりました。ありがとうございます!
フォントもdokojavaよりかっこよくモチベーション上がりそうです
Run押したら下に結果表示されたので全て導入うまくいってそうです
本当にありがとうございます

358:デフォルトの名無しさん
18/08/16 16:06:09.21 OpTecYpPa.net
うまくできたようで良かった。
IntelliJは本当に素晴らしくて、入力補完も神がかってるから勉強にはちょうど良いと思う。

359:デフォルトの名無しさん
18/08/17 13:27:44.81 GpawSU9CM.net
aかbかどちらか値が入ってる方を使いたく
defaultIfEmptyという便利なものを見つけたのですが
aもbもどちらも初期値というわけではないんですよね
初期値設定以外で使うのは変ですか?

360:デフォルトの名無しさん
18/08/18 00:59:17.77 jNUruXDd0.net
言語そのものじゃない質問ですが、IDE(Android Studio とか IntelliJ IDEA)使ってても、ビルドツールって必要なんでしょうか?
もしくは有用なんでしょうか?

361:デフォルトの名無しさん
18/08/19 16:56:22.20 ouPv64vz0.net
今まで Eclipse からしかプログラムを走らせたことがなかったのですが、昨日プログラムをエクスポートしてノートPCに持って行ったら、
A JNI error has occurred, please check your installation and try again
というエラーが出ました。色々試行錯誤しているうちに、「実行環境JREの使用」の問題らしいと分かりました。
JavaSE-9だとエラーになって、JavaSE-1.8だと大丈夫です。
他の人にプログラムを使ってもらう時とか、どうすればいいんでしょうか?
プロジェクト固有のJREの使用という項目もありますが、このあたりは何を意味してるんでしょうか?

362:デフォルトの名無しさん
18/08/19 17:23:49.79 Kq0ObHsK0.net
>>346
スタックトレースを見ないとエラーの原因がわからないよ
原因がわからないと解決策もわからないよ
コマンドから実行したらスタックトレースが出力されると思うから
それを教えてちょんまげ

363:デフォルトの名無しさん
18/08/19 17:41:46.22 KG8+gtiYF.net
JREが9ならJDKも9
でコンパイルしなければね

364:デフォルトの名無しさん
18/08/20 19:57:08.28 4jiZ931E0.net
>>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は昨日初めてインストールしたのに、何でこんなことになるんでしょうか?最新版じゃないんでしょうか?

365:デフォルトの名無しさん
18/08/20 20:20:40.35 7cywDiIN0.net
>>349
翻訳
| handymanPackage / HandymanBMainはJava Runtime(クラスファイルバージョン53.0)
| のより新しいバージョンでコンパイルされていますが、このバージョンのJava Runtimeは
| クラスファイルバージョンを52.0までしか認識しません
バージョン53.0はJava9
バージョン52.0はJava8
Java9以上のJDKでコンパイルしたものを
Java8のJREで実行しようとしてるんじゃないかな
対応策は、実行環境にJava9を入れるか
もしくは、Java8でコンパイルするかってところ
他の人にプログラムを作ってもらう時は実行環境のバージョンと
同じかそれよりも古いバージョンでコンパイルしてもらえば良い

366:デフォルトの名無しさん
18/08/20 20:41:39.99 4jiZ931E0.net
>>350
だいたい分かりましたが、よく分からないのが1.8の次が何で9なんでしょうか?
1.9とか2なら分かるんですが、何でいきなり9になるんでしょうか?

367:デフォルトの名無しさん
18/08/20 21:53:30.11 7cywDiIN0.net
>>351
Java9からバージョンの形式が変わったんだよ
変えられた理由は
・メジャーアップデート
・マイナーアップデート
・セキュリティアップデート
を区別しやすくするため

368:デフォルトの名無しさん
18/08/20 23:26:30.62 D6aa3xEz0.net
ソースコード読むときにインスタンスなのかメソッドなのかがすぐに分からないんだけど、
ソースコードを読むときのコツみたいなものってありますか?

369:デフォルトの名無しさん
18/08/21 00:31:47.69 kxzeRRBS0.net
VSCode などでマウスホバーすれば、宣言が表示されるのでは?

370:デフォルトの名無しさん
18/08/21 12:02:11.35 5hCHO/+ya.net
java本格入門って本を勧められたのですが読んだことある方います?感想が聞きたいです

371:デフォルトの名無しさん
18/08/23 08:02:55.21 9OhLuljd0.net
すいませんスッキリわかるjava入門をやってるのですがファイルの分割の項が
環境が本�


372:ニ違うので分かりません; intelli IDEAを使ってるのですがどのようにすればいいのでしょうか?



373:デフォルトの名無しさん
18/08/23 08:20:12.87 9OhLuljd0.net
今までずっと閉じるを使って来たので保存方法も分かりません
ググっても自動保存をオフにするとかそういう記事しか出てきません;
どこをいじればいいのでしょうか
URLリンク(gyazo.com)

374:デフォルトの名無しさん
18/08/23 09:28:06.86 Q+aoBvc3M.net
Javaはビルド周りが腐っててファイルの配置やパスの設定に対してかなりセンシティブなんだよ
そのへんで嵌るとJavaに慣れてる人でも結構厄介だから、諦めて本の通りの環境を用意したほうが結果的に時間の節約になる
今の君の経験値で取り組むべき優先度の高い問題ではないし、ましてファイルの保存方法すら類推できないレベルでは、
今目の前の問題だけ付け焼き刃で解決できたところで今後同様の問題にぶち当たったときに自分で解決できるとは思えない

375:デフォルトの名無しさん
18/08/23 20:01:02.13 9OhLuljd0.net
多分自己解決しました
save allを押したのにPCから何も応答がないので出来てないのかと思ってました

376:デフォルトの名無しさん
18/08/23 20:16:08.41 jFi7Ee350.net
普通に左側にProjectペインを出してファイルを作りたい場所の上で右クリックするだけでしょ。
そもそもパソコンをあまり使ったことがない?

377:デフォルトの名無しさん
18/08/23 21:51:35.73 9OhLuljd0.net
いえ、3年使ってます
ただゲームくらいでしか使ってなかったのであまり分かりません;

378:デフォルトの名無しさん
18/08/23 22:36:06.37 jFi7Ee350.net
ああ、まあそれじゃあしょうがない
とりあえず大抵のことをやっても壊れはしないから、調べたり聞いたりする前に適当にいじってみるのも大事だよ
それで勘みたいなものを覚えていくものだから

379:デフォルトの名無しさん
18/08/24 03:33:02.64 5X50Ptai0.net
パソコンは壊れないけど環境はよく壊れる

380:デフォルトの名無しさん
18/08/24 07:43:07.07 sP/ywaCGa.net
そうしたらそれを直すのもまた勉強

381:デフォルトの名無しさん
18/08/24 08:23:38.59 0hzqlpOdM.net
説教臭いスレだな

382:デフォルトの名無しさん
18/08/24 13:36:26.24 J3AVJGwl0.net
スッキリ分かるjava入門の多態性の説明がよくわからないんですが
親クラス型の配列を作って派生先クラスのインスタンスを代入して配列を回して一気に似たような処理を簡単に記述する
のが多態性って認識であってますか?
もうちょっと分かりやすく説明してる所あったらお願い致します

383:デフォルトの名無しさん
18/08/24 13:45:30.50 MEArwTdwa.net
>>366
ま、配列に入れて使うとは限らないが親クラスまたはインターフェースの型でインスタンスを扱えるって事だよ。
こういうのは実装を隠したい時にも使える。

384:デフォルトの名無しさん
18/08/24 14:33:37.18 J3AVJGwl0.net
>>367
ありがとうございます
abstract,interfaceのクラス型でインスタンスを作れないから、このやり方を使って
インスタンスを扱えるようにするってことですかね?
親の所にないメソッドは使えないみたいなので利便性がよくわかりませんが・・

385:デフォルトの名無しさん
18/08/24 14:41:49.42 ZgK6e0Tb0.net
cat.cry
dog.cry
猫は猫のように鳴き、犬は犬のように鳴く。
親は親のように泣き、子は子のように泣く
自動的に実体に応じた、動作をする

386:デフォルトの名無しさん
18/08/24 14:59:55.60 l959lfiYd.net
>>368
そこが最大の利点でだな
同じ親を持つ個別のクラスを比較して比較したりとか
ファイルのオープン/クローズとデータベースのオープン/クローズを使う側は同じ処理で使えるようにするとかが出来る

387:デフォルトの名無しさん
18/08/25 06:57:20.11 b/emt3jR0.net
>>370
ありがとうございます
この�


388:{自体があまり計算問題を使って解説してないのでメリットがパッとしませんが とりあえず何となくで覚えとこうと思います



389:デフォルトの名無しさん
18/08/25 07:56:40.41 BMpD23L5a.net
>>371
それはJavaというかオブジェクト指向の特徴なんだけど、いずれもうちょっと複雑なことをするようになれば自然にメリットがわかるよ。
今はそんなもんか程度の理解でいい。

390:デフォルトの名無しさん
18/08/25 08:03:03.50 b/emt3jR0.net
すいませんフィールドにnullなんて入れてないのにnullって表示されるんですけど
どこ直せば正常に名前が呼び出されますか?
URLリンク(ideone.com)
やっぱりあまり理解できてなかったかもです;

391:デフォルトの名無しさん
18/08/25 09:19:55.50 EHvwSMrp0.net
>>373
これの見方がよくわからんのだけど何がnullになってるの?

392:374
18/08/25 10:26:08.92 EHvwSMrp0.net
自分も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+"は逃げ出した!");
}
}
あとはだいたい同じです。

393:デフォルトの名無しさん
18/08/25 10:36:53.08 EHvwSMrp0.net
あ、あとキャラクターのフィールドがprivateになってるからprotectedにしたら動いたよ
これが綺麗なコードかはわからないけどとりあえずどうでしょうか

394:デフォルトの名無しさん
18/08/25 11:33:36.67 ldpy0bgQ0.net
>>373
継承先のクラスで同じ名前でフィールドを定義しても別のフィールドになる
attackメソッドにSlimeのインスタンスを入れているけど
Monsterクラスのnameを見てるのでSlimeに設定したnameは表示されないでnullが表示される

395:デフォルトの名無しさん
18/08/25 12:54:17.01 gxBSyOuw0.net
子クラスで、親クラスと同じ名前のフィールドを定義したら、ダメ!
オブジェクト指向としては、明らかな間違い!
同名のメソッドは、上書き(オーバーライド)するけど、フィールドはしない

396:デフォルトの名無しさん
18/08/25 13:14:33.12 gxBSyOuw0.net
for (Character c : list) { c.attack( ); }
list に、モンスターや勇者などを混ぜて入れて、
その親クラスのCharacter として、抽象化して扱えば、
if 文で、モンスターや勇者の処理を、場合分けせずにすむ
モンスターや勇者は、それぞれ実体に基づき、自動的に攻撃する。
見かけの型は親クラスだが、攻撃は子クラスのメソッドを呼ぶ
つまり、抽象化する事によって、型による分岐がなくなる!
逆に言えば、型によって分岐していたら、オブジェクト指向ではない
if モンスター型なら
if プレイヤー型なら

397:デフォルトの名無しさん
18/08/25 13:24:39.80 KMExyDFm0.net
>>379
オブジェクト指向ではポリモーフィズムが大事なんだって考えだね

398:デフォルトの名無しさん
18/08/25 13:51:30.74 QXNuAaPsM.net
時代遅れな考えだよね
最近は関数型の影響によって型による分岐が市民権を得つつある
C#もついにパターンマッチを導入して型による分岐を積極的に推奨するようになった
Javaも10年くらいしたらそうなるよ

399:デフォルトの名無しさん
18/08/25 14:36:23.71 t7aLMQyua.net
推奨はしてない
ポリモーより型スイッチの方が書きやすい場合も存在するよね
全否定しないでそういうのもサポートしていこうよってだけ
型スイッチがポリモーを置き換えるかというと全くそんなことはなくて
せいぜいデータドリブンのアプローチで書かれた僅かな部分の記述が綺麗になる程度

400:デフォルトの名無しさん
18/08/25 14:53:44.82 KMExyDFm0.net
>>382
なるほど、それなら分かる

401:
18/08/25 15:45:54.17 gxBSyOuw0.net
>>379
のやり方では、新たにモンスターを追加しても、ソースコードを修正しなくてよい
もし型によって分岐していたら、大変。
すべての分岐箇所を修正して、テストしないといけない!
項目が追加された際の、分岐箇所の修正をなくすために、オブジェクト指向が作られた

402:デフォルトの名無しさん
18/08/25 18:14:08.91 b/emt3jR0.net
>>375
ありがとうございます。いけました
この本該当ページにHeroクラスしか書いてないから
コンパイル失敗したら手詰まりで;
attack(Caractor m){  ←ここがattack(Monster m)だったから動かなかったんですかね?
Slimeと同じ親持ってないと出来ないんですね。本はMonsterとなってたので本が間違えてるんですね

403:デフォルトの名無しさん
18/08/25 18:30:25.41 RUz16HRCd.net
>>385
その理解だと危ない
Slimeクラスフィールドの定義と使い方の問題だからスコープやらOrverrideをちゃんと理解したほうがいい
教本によくある「親は子を使えない」の典型例だぞ

404:デフォルトの名無しさん
18/08/25 18:37:44.34 RUz16HRCd.net
まぁとはいえ細かい部分の理解は後で修正は効くから先に進んでも別に良い

405:デフォルトの名無しさん
18/08/25 18:47:47.60 b/emt3jR0.net
>>377-378
フィールドはオーバーライドしないんですね。408-409ページにて普通に継承先で同じフィールドを定義してたので
いいのかなって思ってました。
同じフィールドを使いたい場合は親にあるメンバを使えばいいんですね。タメになります
ありがとうございます

406:デフォルトの名無しさん
18/08/25 19:35:13.69 b/emt3jR0.net
>>386
フィールド直したら仮引数がMonsterの元々あったコードでもいけました
SlimeとHeroが同じ親だとis-aの関係がおかしいと思ってたので助かりました
ありがとうございます
…もっかい読み直してみます^^;

407:デフォルトの名無しさん
18/08/26 02:02:46.21 UC7Cb0Ac0.net
文字列比較containsで正規表現は使えますか?
とあるサイトで使えるとあったので試してみましたが使えませんでした

408:デフォルトの名無しさん
18/08/26 02:12:09.19 IHxJX3F+0.net
>>390
使えないよ、そのサイトが間違ってる

409:デフォルトの名無しさん
18/08/26 03:16:41.69 UC7Cb0Ac0.net
ありがとうございました

410:デフォルトの名無しさん
18/08/26 10:30:20.29 iIRyt0Moa.net
Kotlinは使えた気がするから、そのサイトはKotlinと混同してるのかもね

411:デフォルトの名無しさん
18/08/26 13:23:38.37 HHP/3bjy0.net
Kotlin の場合は Regex のインスタンス渡すやつがあるからそれで使える。
Regex ではなく String のインスタンス渡した場合は Java と同じ動作。

412:デフォルトの名無しさん
18/08/27 11:05:42.24 efjEsUrt0.net
サイトの質問で申し訳ないんですが
paizaって入力を受け付ける関数とかは使えないんですか?
int abc=new java.util.Scanner(System.in)nextInt();って打っても実行はできるんですが
入力まち画面は出ません

413:デフォルトの名無しさん
18/08/27 11:37:43.51 ba8BcfX30.net
出力が標準出力で、入力は標準入力。
入力の所に書けば?
ファイルから読み込みたいのなら、
ファイル名の右横にある、+ を押して、入力ファイルを作る

414:デフォルトの名無しさん
18/08/27 12:01:59.11 efjEsUrt0.net
>>396
了解しました
実行の下にあるのに全然気づきませんでした(@@;)
ありがとうございます

415:デフォルトの名無しさん
18/08/27 12:32:02.03 dQ3pJlXI0.net
EntityクラスにDBのデータを入れて加工してDAOクラスに突っ込んでViewに投げるという処理を流れ作業としてやっているのですが、クエリで絞っていきなりDAOに入れたら早いかもと感じています。Entityクラスを省くのはjava開発的にどうなのでしょうか。
もう別の新しい概念があるのかもしれませんが

416:デフォルトの名無しさん
18/08/27 12:54:00.84 HPy1/YKZa.net
DAOに突っ込むってどういう意味?ViewってDBのViewなのかMVCのViewなのかどっち?
java開発的にどうとか以前に曖昧な言葉遣いに注意せよ

417:デフォルトの名無しさん
18/08/27 21:17:09.10 VnEVG+oDM.net
こちらで質問していいの


418:か分かりませんが… プログラミングは全く勉強したことがありません。 仕事でジェノグラム(家族図的なもの)をよく作成するので、家族歴(結婚、離婚、出生、死亡)の時間軸に合わせてその時期にどんな家族状況だったかを図示できるようなプログラミングを作ってみたいなと思ってます。 こういうものを作るのに最適なアプリケーションってどんなものなんでしょうか。 エクセルが好きで関数いじったりするのは苦になりません。 よろしくお願いします。



419:デフォルトの名無しさん
18/08/27 21:31:24.25 dJeCT78qM.net
>>400
Excel好きなんだったらExcelでいいよ
VBAちょっと齧れば十分やりたいことはできるはず
本格的なプログラミングは本業にして金稼がない限り習得コストや手間の割に合わんよ

420:デフォルトの名無しさん
18/08/27 21:31:31.57 l2rfNjjda.net
>>400
やっぱそれってExcelのマクロでやっちゃった方が良いんじゃないかなあ。
いやもしかするとマクロも要らんかも知れないよね。グラフ出せたりするし。
Excelの事は良くわからないけど。

421:398
18/08/27 21:36:06.38 Psg4p/SV0.net
最近クラスとメソッドを覚えたような素人で言葉が足らずすみません
Entityクラスを作らずDAOクラスから直接DTOクラスを作ってしまうのは良くない事なのかご意見を聞きたかった次第です

422:デフォルトの名無しさん
18/08/27 22:10:38.71 dJeCT78qM.net
>>403
Javaドカタワールドで一般的にいうentityってのはDBとアプリケーションコードとの間のデータの受け渡しに使われるDTOの一種にすぎない
最終的にViewに渡すものと同じなら省略するなり好きにしたらいい
エンティティは本来ドメインモデル上の登場人物であり、ビジネスロジックで主役として振る舞うべきもので、
DAOの中でデータアクセスのためだけにEntityを使うってのは本来はおかしな話

423:デフォルトの名無しさん
18/08/28 00:26:20.98 TEJeUOom0.net
プログラム(Java) ←→ entity ←→ DB
Rails が、migration で自動的に作るのを、手作業で作っているだけだろ

424:デフォルトの名無しさん
18/08/28 06:59:33.13 CaCX57FK0.net
>>404
DAOのEntityとドメイン駆動のEntityを混同してないですか?
javaドカの世界はオレオレ理解が星の数ほどありそうで怖いです

425:デフォルトの名無しさん
18/08/28 07:01:25.66 CaCX57FK0.net
>>405
Entityぶち込みの概念はRailsのが後じゃ

426:デフォルトの名無しさん
18/08/28 08:52:02.52 oX5PU4jWa.net
[DB] -- DTO(399の会社ではentity) -- [DAO(ドメインモデルではrepository)] -- DTO(ドメインモデルではentity) -- [サービス/ユースケース/トランザクション(たぶん399の会社にはない)] -- [コントローラ] -- DTO/ViewBag -- [ビュー]
こうか?

427:デフォルトの名無しさん
18/08/28 09:13:22.39 oX5PU4jWa.net
書いてて思ったけど、一番左のDTOはDTOというよりActive Recordかなあ
そこらへんはDAOを主軸にして見るならあくまでDAOの実装の詳細だからアーキテクチャ的にはどうでもよい部分
DAOの中でSQL書いて左から2番目のDTOに直接詰めるのももちろんアリ、というかORM使わないなら普通はそうする

428:デフォルトの名無しさん
18/08/28 12:36:39.57 CaCX57FK0.net
>>409
クエリ書ける軽量ORMとかならEntityクラスなんて要らねーよという雰囲気ですかね
でも、お作法としてEntityクラス作るのもありかなと
DBのリプレースに強そうなんで

429:デフォルトの名無しさん
18/08/28 12:39:50.34 CaCX57FK0.net
つかEntityとDTOを分けない所多いんですか?
未経験で世界が狭いので興味あります

430:デフォルトの名無しさん
18/08/28 13:35:17.88 psOOFlweM.net
DBの詳細を吸収するのは一般的にはDAOの仕事
更にドメイン寄りの論理的な型とシリアライズ用の型を区別したいんなら、
(DDDでいう)エンティティを返すリポジトリクラスがあって、
リポジトリが中でDAOを使ってDBからデータ引っ張ってきて行オブジェクトをエンティティに変換するのが今風だと思う

431:デフォルトの名無しさん
18/08/29 06:50:26.78 Q2YQokuo0.net
javaを勉強中の学生です。
画像の問題が全くわからなく、空欄の答えとできればその理由を簡単にでいいので教えて頂きたいです、、
どうかよろしくお願いします。
URLリンク(i.imgur.com)

432:デフォルトの名無しさん
18/08/29 09:00:37.32 ZDG8YYaGa.net
ヒント
Int型のiを他の型にキャストしてみよう

433:デフォルトの名無しさん
18/08/29 09:18:55.27 nm+82+J6C.net
>>413
String.format()を駆使する

434:デフォルトの名無しさん
18/08/29 09:22:36.45 9k/VMyPqr.net
>>413
「Java String 空白埋め」とかでググろう

435:デフォルトの名無しさん
18/08/29 10:56:03.84 g0t1qxJja.net
ヒントありがとうございます!
自分なりに考えた結果
String.format(‘‘%.’’+i+‘‘f’’,i)
で合ってますかね?
帰って打ち込めば分かる話なのですがw

436:デフォルトの名無しさん
18/08/29 11:00:53.34 LhfUpRDDM.net
それにしても問題のための問題という感じだな。
解ける人向けのなぞなぞみたいなもんで、出題者に意味や知性を感じられない。

437:デフォルトの名無しさん
18/08/29 12:05:33.04 wxHokPsyM.net
>>417
そんな感じ
空白の書式と数値の書式が必要になりそう

438:デフォルトの名無しさん
18/08/29 12:26:12.61 agelIibQM.net
Utilクラスをstaticにしない意味って何かあるのでしょうか?
今の現場の仕様がUtilのメソッドをいちいちnewしなきゃならなくて
とてもいらつくのですが…

439:デフォルトの名無しさん
18/08/29 12:30:28.52 nm+82+J6C.net
>>417
キャストしないとエラーになる

440:デフォルトの名無しさん
18/08/29 13:00:25.63 wZaD4gXBa.net
実際formatの書式なんて覚えてる必要ないんだけどな
うろ覚えであーでもないこーでもないとやってる暇があったら、そんなことに時間使わずに即ググって欲しい

441:デフォルトの名無しさん
18/08/29 18:52:47.00 bZ2D0xRLa.net
>>417
引数の側のiは (double) i という具合にキャストする必要がある。
しかしそれでは完全に一致する出力にならない。0だけスペースが一つ多くなる。
もうほとんど出題ミスのような感じがしてならないのだが、更に捻ると全てが完全一致する出力を作れる。

442:デフォルトの名無しさん
18/08/29 18:54:57.86 bZ2D0xRLa.net
あ、ごめん。まだ左側スペース入れるformatになってなかったか。
ま、やってる内にどういうことかわかる。

443:デフォルトの名無しさん
18/08/29 19:39:49.84 b/VcLTdm0.net
>>424
あるよ
%6.3f
という感じ

444:デフォルトの名無しさん
18/08/29 21:18:05.63 tTgGQU3y0.net
>>425
それだとこうなっちゃうんよ
URLリンク(paiza.io)
_____0
___1.0
__2.00
_3.000
こやればいんだけど、こんなの問題にするかねと
URLリンク(paiza.io)

445:デフォルトの名無しさん
18/08/29 22:01:21.61 b/VcLTdm0.net
for (int i = 0; i < 4; i++) {
System.out.println(String.format("%" + ((i == 0) ? 5 : 6) + "." + i + "f", (float)i));
}

446:デフォルトの名無しさん
18/08/29 22:04:24.07 n9AQAOMs0.net
こんなのソラで書けても実務ではほぼ無意味だ
この問題が本当に問題のための問題だな

447:デフォルトの名無しさん
18/08/29 22:12:26.61 b/VcLTdm0.net
でも >>426 が言ってる方が自然�


448:ゥもね for (int i = 0; i < 4; i++) { System.out.println(String.format("%" + (4 - i) + "s%." + i + "f", "", (float)i)); }



449:デフォルトの名無しさん
18/08/30 09:37:14.90 Le3eFjina.net
出題ミスか引っかけ問題かな。
またはミスと気づいたけど引っかけ問題として丁度良いからミスではなかったことにして放置か。
しかし初心者に出すにはどうかという感じもする。実際にこんなのが必要とされることもなさそうだし。
もはやパズルだよなあ。

450:デフォルトの名無しさん
18/08/31 12:31:48.30 N1CziDiXM.net
もう古いと言われてるデザインパターンを何度も身につけようとしては挫折
写経だけじゃ理解するのは難しいですか?

451:デフォルトの名無しさん
18/08/31 12:52:51.06 hD6bHOXYa.net
かといって全てがわからないわけでもないんだろ?

452:デフォルトの名無しさん
18/08/31 13:11:32.74 lv4qnKPxM.net
>>431
写経して図を描いて
図を見ながら写経して
図を見ながらプログラム書いて
プログラムと図を相互に変換できるようになったら
理解したと言っていいと思う
イメージすること人間の計算能力

453:デフォルトの名無しさん
18/08/31 18:10:41.56 eNdvG/210.net
デザインパターンはもう古いんじゃ無くて今のフレームワークに織り込まれてるんじゃないの
フレームワークに合わせるとデザインパターン強制される的な

454:デフォルトの名無しさん
18/08/31 22:11:29.93 VkTWbVQX0.net
スマホのSDKとか基本的にTemplate Methodよな

455:デフォルトの名無しさん
18/09/01 08:53:27.34 u4pJ8FQM0.net
言語機能の進化でそもそも不要になるパターンもあるな
例えばkotlinだとbuilderパターンなんて必要ないし

456:デフォルトの名無しさん
18/09/01 08:57:36.98 FRKhXQkv0.net
GoFのデザインパターンの大部分を占める、オブジェクト指向言語の機能で高階関数をエミュレートしてみた系は、Lambdaがある今では不要

457:デフォルトの名無しさん
18/09/06 23:00:51.53 i7jlwt+T0.net
初心者です。
eclipseを導入したのですが、コンソールで接続語のみ文字化けします。
ソースコードなどは問題なく、例えばSystem.out.print(a + "と" + b + ("では") + c + "の方が大きい"))と入力して実行すると「a□b□□c□方が大きい」となります。
「eclipse 文字化け」等で調べた内容は試しましたが改善しませんでした。
どなたか助けてください。

458:デフォルトの名無しさん
18/09/06 23:05:19.86 i7jlwt+T0.net
すいません、ソースコードの()忘れまくってました
System.out.print(a + ("と") + b + ("では") + c + ("の方が大きい")) 等と入力した時です

459:デフォルトの名無しさん
18/09/06 23:18:26.50 VSCSfufl0.net
>>438
eclipseのフォルダにeclipse.iniというファイルがあるので
その中の
-vmargs
の下に↓これを追加でおk
-Dfile.encoding=utf-8

460:デフォルトの名無しさん
18/09/07 01:42:15.65 cvrKvOFs0.net
そのカッコ必要ないけどね

461:デフォルトの名無しさん
18/09/07 07:29:23.11 spiHhlEL0.net
>>440
それも試しましたが改善しませんでした。
何回か立ち上げ直すと文字化けしない時もありましたが、少しするとまた文字化けします。
>>441
()めんどくさいなと思ってました・・・
ありがとうございます。

462:デフォルトの名無しさん
18/09/07 07:33:48.11 9erH5wRI0.net
>>442
コンソールのフォントを変えてみるとか

463:デフォルトの名無しさん
18/09/07 11:31:44.81 939inRae0.net
コンソールで、文字コードの設定は出来ないの?
まあ日本語は、UTF-8, shift-jis のどちらかだろうけど、
プログラミングはすべて、BOMなしUTF-8(UTF-8N)に統一すればよい
その代わり、Windows のExplorer では、文字列検索できなくなるので、
WSL・Ubuntu を入れて、Linux 側からgrep する
shift-jis とか、文字コードの自動判定などは、使わない。
自動判定は間違う場合もあるから�


464:A面倒



465:デフォルトの名無しさん
18/09/07 11:49:49.48 hwUqZ5b1a.net
出た、今必要のない余計な情報を付け加えまくって初心者を混乱される大先生

466:デフォルトの名無しさん
18/09/07 11:53:32.83 avaKv6NMM.net
良いじゃん
会話は広がるから面白いんだよ

467:デフォルトの名無しさん
18/09/07 11:56:50.24 avaKv6NMM.net
樹木は枝を広げることで太陽パワーを得るんだ 

468:デフォルトの名無しさん
18/09/07 12:16:54.08 kXzYLjHca.net
ここは樹木ではない。

469:デフォルトの名無しさん
18/09/07 12:20:15.43 avaKv6NMM.net
>>448
樹木だなんて言ってない

470:444
18/09/07 14:37:06.58 939inRae0.net
VSCode でも、文字コードを自動判定にしていると、
判定を間違えて、文字化けする

471:デフォルトの名無しさん
18/09/07 16:41:25.29 756xTqfC0.net
MSはbom付きが何故か好きだったりするな

472:デフォルトの名無しさん
18/09/07 16:49:00.32 756xTqfC0.net
そういえばwindowsでのデフォルトエンコードはshift-jisだったな
URLリンク(qiita.com)
この辺かな?

473:
18/09/07 21:48:46.13 WaHB6+zk0.net
>>452
しかし、NTFSやFAT32は UTF-16LE だったりするし、いわゆるシステムコール(win32api)には UTF16用とShift-JIS 用の両方が準備されている

474:デフォルトの名無しさん
18/09/08 00:13:12.33 AXhw471Hd.net
Javaでエロサイト作りました。
URLリンク(www.nuliu-movie.net)

475:デフォルトの名無しさん
18/09/08 10:00:27.17 10SOqO6NM.net
>>438
の件、1日経ったら改善していました。
失礼しました。

476:デフォルトの名無しさん
18/09/08 10:20:18.78 /uNaEXjk0.net
たぶん1日経ったことではなく再起動したことが大きいと思う

477:デフォルトの名無しさん
18/09/08 10:23:10.58 M9YsL2780.net
時間は何も解決してくれない

478:デフォルトの名無しさん
18/09/08 11:57:54.81 Z5oAfZnva.net
PCそろそろ逝きかけてる?

479:デフォルトの名無しさん
18/09/08 11:59:24.40 Z5oAfZnva.net
色々試しているうちに何が効いたのかわからない状態かもな

480:デフォルトの名無しさん
18/09/08 14:07:21.61 kEOPIOXH0.net
寝ている時に猫がキーボードの上を歩き更にマウスにじゃれたりして、それによって偶然実行された何かによって
いや、なんでもない。忘れてくれ。

481:デフォルトの名無しさん
18/09/08 16:53:00.05 10SOqO6NM.net
一通り試した後、何回か再起動して直らなかったんですよね
それから勉強する分には支障ないしいいや、と思って放置してたら直ってた
システムの環境変数?だかも何回か設定し直さないと反映されなかったし、パソコンが原因かも

482:デフォルトの名無しさん
18/09/13 10:48:23.00 80HTn1A0M.net
現在java入門書を読み終える段階です。
あるまとめでjava入門書の後にRudyやPython等の入門書を読んでからjava実践編を読むのがおすすめ、というのを見たのですが
どういった意図があるのでしょうか?
また、皆さん個人の意見として上記のような学習方法はおすすめできますか?

483:デフォルトの名無しさん
18/09/13 11:24:13.86 KmZuc+Toa.net
>>462
たぶん早いうちに色々なスタイルの言語に触れて、そしてその中から自分の好きなものを選べという意図があると思う。
ただし俺は反対。javaの入門書を読んだならそのままjavaをもう少し深く理解したほうが良いと思う。
その後で他の言語を見たほうがjavaとの違いなどが理解できるようになる。

484:デフォルトの名無しさん
18/09/13 11:42:10.23 TEqZYDm7a.net
>>462
一つの言語だけだと「そういうもんか」としか思えないだろうけど、
他の言語を知ることで表面的な仕様の裏にある意図や思想が見えてくるようになる
そして、言語の各機能の意図や思想がわかればその正しい使い方がわかる
個人的には賛�


485:ャだけど、今更Rubyはやめとけ



486:デフォルトの名無しさん
18/09/13 12:56:06.96 cU5S5NHGa.net
>>462
人にもよると思うが、混乱しそうな感じがするのであまりおすすめしない。
ある程度 Java が使えるようになってから他の言語に取り組んだ方が良いのではないか?

487:デフォルトの名無しさん
18/09/13 13:48:21.40 1gM+2X37M.net
何でもかんでもついばむだけみたいな

488:デフォルトの名無しさん
18/09/13 14:01:44.48 zfK1S5+JM.net
ソフトウェアエンジニアになりたいのかJava土方になりたいのかによるかな
後者なら変な知恵がついてる奴より余計な疑問を持たずに周りのやり方に合わせてコピペできる奴の方が使いやすい
Javaのプロの人は後者になるための教育を受けてきてる(or後者を生産・使役する)人が多いからそういう人の話は注意して聞いたほうがいい

489:デフォルトの名無しさん
18/09/13 23:54:21.89 7EcaHTzm0.net
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊をこの順に読む
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
みんなのは、数学系とか仕事で必要なら読めば?
Ruby は、テキスト処理・コマンド・1-liner とかできるから、Linux では重宝。
PowerShell・シェルスクリプト・awk・sed・perl の代わりになる
Rubyをやっておけば、PowerShell, JavaScript, jQuery, Kotlin なども良くわかる。
メソッドチェーン・関数型の書き方だから。
Rubyで、プログラミングの基礎体力が向上する!
早くにやって損はない。
後で、別の言語の勉強がはかどる
Pythonは、その辺と文法が違うから、手軽にはいかない

490:デフォルトの名無しさん
18/09/14 00:00:48.26 T/0ITtsha.net
自分で触ったことがあるならPythonは明らかにJavaをリスペクトしてることがわかるんだけどね
Rubyやると>>468みたいな基地外になるよ

491:デフォルトの名無しさん
18/09/14 06:26:54.82 K66vPpxA0.net
1つだけ言えるのは、>>468は完全に無視していい

492:デフォルトの名無しさん
18/09/14 19:07:57.59 mwTGxLlkM.net
本当に0からのスタートなので、まずはJavaをしっかり学ぶことにします。

493:デフォルトの名無しさん
18/09/17 20:32:52.98 vW1P/H+V0.net
>>469
自分で触ったことがあるならPythonは明らかにオブジェクト指向に関しては違うことがわかるんだけどね

494:デフォルトの名無しさん
18/09/18 07:51:07.02 Wjwixwwi0.net
Eclipseで時計を作りましたが表示がおかしいのでアドバイスお願いします
小さなウィンドウに数字で時刻が表示されるだけの簡単なものです
モニタを2枚使っているのですが、
メインの方ではウィンドウの中に表示されるはずの時刻が一切表示されません
なぜかサブの方にドラッグして持っていくと表示されます
Eclipseが起動してる状態だとメインのほうでも表示されます
repaintメソッドを使って1秒ごとに表示させているのですが
paintメソッドの中身を軽くしないとダメとかありますか?
Swing導入しています
これだけでは伝わらないと思いますがエスパーの方いらっしゃったらよろしくお願いします

495:デフォルトの名無しさん
18/09/18 10:36:59.77 PLvFhIgqa.net
完全な当てずっぽうだけど、えくりぷすを起動している時だけ設定される環境変数が影響してるとか?

496:デフォルトの名無しさん
18/09/18 15:32:25.20 Wjwixwwi0.net
>>474
eclipse閉じていてもサブモニタのほうだと表示されるのがよくわからないんですよね
同じ症状がでる範囲内でいろいろそぎ落としてみました↓

497:デフォルトの名無しさん
18/09/18 15:32:42.50 Wjwixwwi0.net
import java.awt.Graphics;
import javax.swing.JFrame;
public class myClock extends JFrame implements Runnable {
static myClock c


498:l = new myClock(); static Thread thrd = new Thread(cl); public static void main(String[] args) { cl.setVisible(true); thrd.start(); } public void run() { while(true) { repaint(); try { thrd.sleep(1000); } catch(InterruptedException e) { } } } public void paint(Graphics g) { super.paint(g); g.drawString("test", 80, 40); } myClock() { setSize(240, 70); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }



499:デフォルトの名無しさん
18/09/18 15:39:30.94 Wjwixwwi0.net
ちなみにこのサイトの
URLリンク(yay.cla.kobe-u.ac.jp)
上のほうにある 「デジタルクロック(MyDigitalClock.java)」
のコードをコピペして試してみたところ表示されない問題は起きませんでした

500:デフォルトの名無しさん
18/09/19 03:29:57.76 ti9UWKMZ0.net
URLリンク(www.wisdomsoft.jp)

501:デフォルトの名無しさん
18/09/19 05:05:36.27 /Yn8C7350.net
try {
thrd.sleep(1000);
} catch(InterruptedException e) {
}
例外が起こっても、catch が空文だから、例外を処理していない。
これは例外の握りつぶしと言って、やってはいけない
アプリを終了させるなど、何かエラー処理を書かないといけない
何も書かないと、エラーが起こっているのに、
アプリが存在し続ける、または動き続ける

502:デフォルトの名無しさん
18/09/19 07:32:04.78 9j05f62H0.net
レスありがとうございます
>>478
使い方間違ってるかもしれませんがなんとかそれで行けました
この辺を自分で解決出来ないとだめですね
実はぐぐりまくってる時にpaintComponentは怪しいと思って試して見たんですがあと一歩及んでなかったです
>>479
修正しました
すっきり入門読み終わった段階で作った初めてのプログラムですが
まだまだ知識足りてませんね
import文抜きで修正済貼っておきます


503:デフォルトの名無しさん
18/09/19 07:32:22.29 9j05f62H0.net
public class myClock extends JFrame implements Runnable {
static myClock cl = new myClock();
static Thread thrd = new Thread(cl);
public static void main(String[] args) {
cl.setVisible(true);
thrd.start();
}
public void run() {
while(true) {
repaint();
try {
thrd.sleep(1000);
} catch(InterruptedException e) {
e.printStackTrace();
}
}
}
class GPanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("test", 80, 40);
}
}
myClock() {
setSize(240, 70);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new GPanel(), BorderLayout.CENTER);
}
}

504:デフォルトの名無しさん
18/09/19 07:48:39.26 9j05f62H0.net
GPanelクラスが中にはいっちゃってました
コンストラクタの下、外に出しておきました

505:デフォルトの名無しさん
18/09/19 21:31:45.37 PT8Q1qAA0.net
しゅみましぇん初心者なんですが開発環境でエクリプスってのインストールしたらJDKやJREってのは不要なんですか?教えてエロい人

506:デフォルトの名無しさん
18/09/19 21:41:20.74 b6dng2VDa.net
必要
今月で無償のJDKはサポート終了するからオラクルに金払ってJDK11買ってね

507:デフォルトの名無しさん
18/09/19 21:48:18.24 PT8Q1qAA0.net
ふぇ!?無料と有料両方あるんじゃないんでしゅか?
つーかエクリプスダウンロードしゅごい時間かかるんでしゅね

508:デフォルトの名無しさん
18/09/19 21:49:12.23 zcXFtBV7a.net
そういやこれまでeclipseで必要か否かに関わらず無条件にJDKインストールしてたからeclipseで必要かどうかなんて考えた事もなかったな。

509:デフォルトの名無しさん
18/09/19 22:00:54.62 8oznxs6p0.net
この前プログラミングスクールの中の人になんでいまだにエクリプスなんて使わせるのか聞いたんだけど、
単純に一線についていけなくなったロートルを講師として安く雇うから、教える側がエクリプスしか使えないらしい

510:デフォルトの名無しさん
18/09/19 22:20:31.29 /Yn8C7350.net
>>481
すべての行に、print 1, print 2 ... という感じで、print 文を入れて、
どこまで


511:実行されているのか、確かめる それか、デバッガーで1行ずつ実行して確かめる まず、ここまで実行されて、ここは実行されていないという、地点を探す



512:デフォルトの名無しさん
18/09/20 07:09:25.66 0vHOtJkY0.net
C#ならVisualStudio1択ですけどjavaはEclipse1択では無いんですか?

513:デフォルトの名無しさん
18/09/20 09:32:23.34 cMPVhU9ia.net
>>489
JetBrain の IntelliJ IDEA ってのもあるよ。

514:デフォルトの名無しさん
18/09/20 10:57:50.23 9tRwSzt9d.net
ヒープのサイズとかって、起動用のシェルスクリプトとかでコマンドラインに並べてますが、
Javaのソース中で設定できませんか
Javaソース以外に、起動用のシェルスクリプトも管理対象資材にする必要があるのを
なんとかならないかなと思ってます

515:デフォルトの名無しさん
18/09/20 11:01:25.68 T35mVtQna.net
>>489
Eclipseはもう色々限界でどんどんシュリンクしてる。
今はIntelliJ使う人が多いんじゃないかな。
Web開発しないなら無料版で大丈夫だし、仮に有料版買ったとしても糞みたいなプラグインの依存関係管理とかが消えるだけでも十分価値あるし。

516:デフォルトの名無しさん
18/09/20 11:15:32.57 5eDdLMhsM.net
Javaドカはeclipseだよ
膨大な手順書の更新とかライセンス契約とか申請とか面倒臭すぎるからな
どうせコピペ仕事しかしないくせにPGの好みなんかどうでもいい

517:デフォルトの名無しさん
18/09/20 11:38:33.59 k0r/9zN1M.net
>>492
どこ情報よそれ

518:デフォルトの名無しさん
18/09/20 15:04:27.07 qPy/9IGfd.net
b = a++;
b = ++a;
の違いのような問題がbronzeでの出題頻度が高いということなんですけど、実際こういう書き方はよく使われるんでしょうか。
どうもややこしいので、もっと分かりやすく書けないものかと思うんですが

519:デフォルトの名無しさん
18/09/20 15:34:33.29 5eDdLMhsM.net
>>495
俺がレビュワーならPGかそんな糞コード書いてきやがったら書き直させる

520:デフォルトの名無しさん
18/09/20 16:11:19.30 TeQNOAP0a.net
>>495
使わない。何故ならややこしくてバグの元になるから。

521:デフォルトの名無しさん
18/09/20 16:34:32.97 qPy/9IGfd.net
やはりそうなんですね
わざわざ条件式のなかで評価をさせたりするのも引っかけ問題的な狙いなんでしょうか…
まあ書かれてるのを読み取る訓練にはなるんでしょうかね

522:デフォルトの名無しさん
18/09/20 17:40:39.49 TeQNOAP0a.net
引っ掻けというか、使わなくても読んでわかる必要はあるからなあ。

523:デフォルトの名無しさん
18/09/20 18:24:32.51 QL0PNP4W0.net
さすがにその程度でややこしいってのは問題あると思うぞ

524:デフォルトの名無しさん
18/09/20 18:48:03.03 TeQNOAP0a.net
ま、初心者には難解に見えるのだろう。
やがてわかるのだが使いたくないものになる。

525:デフォルトの名無しさん
18/09/20 20:28:03.45 y8qM5dc20.net
変数に再代入をする言語では別に普通の書き方。

526:デフォルトの名無しさん
18/09/21 00:53:31.57 m8DL5ZJ40.net
Ruby では、++, -- 演算子はない。
前置・後置で、意味が違うから、ややこしい
自己代入だけ
a += 1
a -= 1

527:デフォルトの名無しさん
18/09/21 05:57:07.43 U/90uWFm0.net
難しいとは思わんけど、>>495みたいなコードかいてたら直せって言うな、俺も

528:デフォルトの名無しさん
18/09/21 12:39:21.43 rhYAEPMQd.net
for (i=0; i<10; i+=1){}
みたいに書くんかな

529:デフォルトの名無しさん
18/09/21 14:27:23.40 isbUNhMla.net
>>505
それは ++ で良いのでは?
他の変数に代入もしてないし、ポインタで括弧のありなしで違う動きになるわけでもないし。

530:デフォルトの名無しさん
18/09/21 14:28:07.34 isbUNhMla.net
すまん。ここJavaスレだったね。ポインタ計算はないね。

531:デフォルトの名無しさん
18/09/21 16:23:14.99 9Uudce490.net
>>495



532:そういう使い方はしないけど、引数では使うこともある。 たとえば、JDBCとか。



533:デフォルトの名無しさん
18/09/21 17:19:21.04 .net
98....77...120...20
ある問題がわからないのですが
上の文字列のピリオドを
削除して
残った。
98  77  120 20を
それぞれ100以下かどうか調べる方法
ヒントでもいいので下さい。
m(._.)m

534:デフォルトの名無しさん
18/09/21 17:29:20.71 QS43/Izx0.net
split だな

535:デフォルトの名無しさん
18/09/21 19:56:01.32 .net
ありがとうございます
問題はまだ先がありますが
勢いで行けそうです。

536:デフォルトの名無しさん
18/09/21 23:40:27.64 m8DL5ZJ40.net
98....77...120...20
まず、連続するドットを、1つのドットに変換する。
98.77.120.20
ドットで、split

537:デフォルトの名無しさん
18/09/22 03:00:12.86 ezjvT9yw0.net
Stream 使うとこんなの出来るんだよね。
URLリンク(paiza.io)

538:デフォルトの名無しさん
18/09/22 03:13:39.53 ezjvT9yw0.net
Kotlin でも似たような感じにできる。
URLリンク(paiza.io)

539:デフォルトの名無しさん
18/09/22 10:45:54.03 Mt4kWzpZ0.net
KotlinのString.splitは引数Stringを受け付けないのか。
Javaの方はPatternを受け付けないし。
どっちもオーバーロードで済む話だと思うのに。
無駄にメソッドの数を増やしたくないとかあるのかな。

540:デフォルトの名無しさん
18/09/22 16:47:30.75 iewBY6fOa.net
jbossのEJBってのが全然わかりません。

541:デフォルトの名無しさん
18/09/22 16:55:17.83 iewBY6fOa.net
Tomcatにちょっと毛が生えたのがEJBなんだろうな。

542:デフォルトの名無しさん
18/09/22 17:28:31.88 iewBY6fOa.net
Spring FrameWorkとEJB使ったらどんなイメージなんだ?

543:デフォルトの名無しさん
18/09/22 18:18:39.84 ezjvT9yw0.net
>>515
KotlinのString#split()は引数がStringのやつとRegexのやつがあって、ただの文字列の一致で分割したい場合はStringのやつを使い正規表現のパターンとの一致で分割したい場合はRegexの方を使う。

544:デフォルトの名無しさん
18/09/22 18:32:14.34 ezjvT9yw0.net
Charのやつもあった。
URLリンク(kotlinlang.org)
しかしJavaのやつを拡張してあって引数が多いのだがデフォルト値がセットされているので呼び出し時の記述に全ての引数は必要ない。
今回上のソースで使用したRegexを受け付けるsplitももう一つlimitが引数として存在しているがデフォルトのままで良いので呼び出す所では省略している。

545:デフォルトの名無しさん
18/09/22 19:57:13.70 UaEFgueIF.net
元ファイルをgzip形式で圧縮したファイルを、更にzipで複数個アーカイブしたファイルを扱ってます
今はzipファイルを全て展開→展開された圧縮ファイルを一つずつgzipで伸長、として処理してるのですが
扱いづらいので改良したいです
zipファイルの全ファイルの内容をbyte[][]に入れるメソッドとか、gzip+zipなアーカイブを
展開してリストにいれてくれるメソッドとか、ありませんか?

546:デフォルトの名無しさん
18/09/22 20:02:32.77 ns5EK8b00.net
誰も答えいる奴いないな、下らんスレだ。

547:デフォルトの名無しさん
18/09/22 20:04:45.28 PGp2AKzL0.net
そんなもんシェルで書いたら一瞬で終わるからな
いちいち手間かけてjavaで書く必要性がまずない

548:デフォルトの名無しさん
18/09/22 20:28:28.82 ffP877J7M.net
LocalDateTimeクラス使ってAPIリファレンスの読み方学んでるんだけど、5ヶ月後をint型で出すには
LocalDateTime.now()


549:;で現在月時刻を取得 .getMonth();でMonth型に変換 .plus(5).getValue();でInt型に変換 LocalDateTime.of();で代入 って手順しかないですよね? getMonthValue() + 5では12月から1月に以降してくれなくて驚き桃の木でした。



550:デフォルトの名無しさん
18/09/22 20:42:31.51 J+cgHaTV0.net
>>524
LocalDateTime.now().plusMonths(5).getMonth().getValue()

551:デフォルトの名無しさん
18/09/22 20:44:59.08 PGp2AKzL0.net
URLリンク(ideone.com)
コレで普通に5か月後になる
LocalDateTime local_date_time_5 = LocalDateTime.now(ZoneId.of("Asia/Tokyo")).plusMonths(5);

552:デフォルトの名無しさん
18/09/22 21:10:45.88 PIBZ6Tp/0.net
>>526
そんな簡単にできたのね…
というか上の方法だと年が変わってくれないか。
ありがとうございます

553:デフォルトの名無しさん
18/09/24 22:25:30.46 mjd+cxSud.net
参照型のキャスト変換とかのあたりめんどくさい……
頭がこんがらがる

554:デフォルトの名無しさん
18/09/24 23:00:37.68 .net
パイザのcランク問題で挫折しそう。

555:デフォルトの名無しさん
18/09/25 17:00:11.67 RXd3mBE5d.net
ZipInputStreamでzipファイルを展開した場合等、複数のファイルを扱う際のclose()の仕方についてどうするとよいか教えてください。
以下の様なソースを作ってます。zipファイルの内容物を展開していくものです。
ZipInputStream zis = null;
FileOutputStream fos = null;
try {
 zis = new ZipInputStream(new FileInputStream(zipFileName)); // <-
 for (ZipEntry entry = zis.getNextEntry(); entry != null; entry = zis.getNextEntry()){
  extFileName = entry.getName();
  fos = new FileOutputStream(extFileName); // <-
  while ((len = zis.read(zbuff)) != -1){
   fos.write(zbuff, 0, len);
  }
 }
} catch (IOException e) {
 e.printStackTrace();
} finally {
 try {
  zis.close();
  fos.close();
 } catch (IOException e) {
  e.printStackTrace();
 }
}
このようにソース中で複数のファイルへアクセスする場合、そのclose()はfinally句中でまとめてcloseする書き方でよいのでしょうか。
それとも、上記例でのfosをnewする時点でfos用のtry句を設け、fosのExceptionはそちらで処理すべきでしょうか。
fosのストリーム作成時にIOExceptionが発生したとき、finally句内のfos.close()で更に例外が発生しそうですが
それは仕方ないとすべきか、それともファイルごとにIOExceptionを処理するべきかを知りたいです。

556:デフォルトの名無しさん
18/09/25 17:16:21.33 Mw8jC0Zda.net
一般論だけど俺だったらファイルごとのループ内でtryブロック書くかな。
その方がエラーが起きた時の後始末(例えばエラーが起きたファイルのリストを表示するとか)がやりやすいし、
finallyの中にさらにtryを書くとコードの見通しが悪いから。
まあ要件次第ではある。

557:デフォルトの名無しさん
18/09/25 18:59:14.57 tj3tpCzGd.net
531と同意見
あと try-with-resourcesでググると幸せになれるぞ
open/close理解したいならゴメンだが

558:デフォルトの名無しさん
18/09/25 20:01:10.13 RXd3mBE5d.net
>>531
>>532
意見ありがとうございます
個別にtryする方向で見直そうと思います
try-with-resourceは良さそうですが、tryするタイミングが違うので、どう使えるかな?と思いつつですが、こちらも調べて考えます

559:デフォルトの名無しさん
18/09/26 18:42:57.71 .net
すいません、初歩的な質問なんですが
自分の期待では下のコードで
ああああ
あああ
ああ

となるつもりなんですが
どうして
ああああ
ああああ
ああああ
ああああ
ってなってちゃうんでしょうか?
教えて下さい。
for( int mb = 0 ; mb < 5 ; mb++){
for ( int mc = 1 ; mc < 5 ; mc++){
System.out.print("�


560:"); } System.out.println("") }; }



561:デフォルトの名無しさん
18/09/26 18:45:49.63 .net
訂正です。
for( int mb = 0 ; mb < 5 ; mb++){
for ( int mc = 1 ; mc < 5 ; mc++){
System.out.print("あ");
}
System.out.println("")
}

562:デフォルトの名無しさん
18/09/26 18:51:32.43 749GKFIC0.net
>>535
毎回mcが1~4まで繰り返すから
ヒントは
mc = 1なら「ああああ」が4回になる
mc = 2なら「あああ」が4回になる

563:デフォルトの名無しさん
18/09/26 19:03:07.25 .net
そうか。mc++があるから
mcが1足されてると思ってましたが
毎回、mc=0になってるんですね。
ありがとうございます。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch