17/10/23 01:33:18.03 Zv+DKPlp.net
>>255
そちらがコンストラクタでしたか、ご指摘ありがとうごさいます。
263:デフォルトの名無しさん
17/10/23 01:38:13.20 y4/LHG7i.net
>>256
HighwayクラスにcountAutomobile()やcountHeavy()を作って上げるのが一番簡単
どうしても課題のコードに従ってやるならAutomobileクラスに
クラスレベルの変数として台数合計を管理するものを用意する
264:デフォルトの名無しさん
17/10/23 01:55:19.63 Zv+DKPlp.net
>>258
前者の方法についてもう少し詳しく教えていただけませんか?自分の解釈ではまずHighwayクラス内にint countAutomobile()と int countheavy()をつくる。
265:デフォルトの名無しさん
17/10/23 01:55:42.85 Zv+DKPlp.net
>>258
countAutomobileに関してはreturn weightで返して、heavyに関してはif文で大型車の時だけreturn で返せる。と考えたのですが、あってますでしょうか?無知ですみません
266:デフォルトの名無しさん
17/10/23 01:57:12.01 u5IDZl2p.net
int weight → static int weight って変えてみたらわかると思う
267:デフォルトの名無しさん
17/10/23 02:00:11.05 Zv+DKPlp.net
>>261
先ほどの画像にstaticを足してみたところ5つ目の配列の要素が表示されたのですが、どこがおかしいんですかね?
268:デフォルトの名無しさん
17/10/23 02:01:39.23 Zv+DKPlp.net
>>262
配列の5つ目と言ったほうが正しいでしょうか
269:デフォルトの名無しさん
17/10/23 02:05:09.61 u5IDZl2p.net
>>262
8って出たならあってるよ
出力してるところでは1番目を指定してるのに5番目が出たってところが大事
270:デフォルトの名無しさん
17/10/23 02:06:00.66 yUlbauj/.net
またアホどもが初心者を混乱させてるwww
問題が糞で最初から台数わかってんだから台数はハードコーディングングでそのまま返せばいいんだよ
なんでsataticにすんだよ阿呆
271:デフォルトの名無しさん
17/10/23 02:07:20.46 Zv+DKPlp.net
>>264
まだ途中の段階ってことですか?結果は8と表示されました。
272:デフォルトの名無しさん
17/10/23 02:07:26.45 u5IDZl2p.net
>>265
ちげぇねぇwww
その発想はなかったわ
273:デフォルトの名無しさん
17/10/23 02:11:15.70 u5IDZl2p.net
>>266
まだまだ途中
そもそも台数を出すのであれば重さを設定する必要はない
static int weight → static int weight=0 って変えて
weight=g → weight++ って変えてみな
274:デフォルトの名無しさん
17/10/23 02:20:42.33 Zv+DKPlp.net
>>268
言われた通りやってみたのですが、コンパイルでエラーが出てしまいました。int countAutomobile()の()内のintを消したのがまずかったでしょうか?
URLリンク(i.imgur.com)
275:デフォルトの名無しさん
17/10/23 02:21:38.59 y4/LHG7i.net
>>260
Automobileの配列使わないと
276:デフォルトの名無しさん
17/10/23 02:23:07.33 T8WMGQAM.net
>>269
yes
int gは消さずにそのまま
後で必要になるからね
277:デフォルトの名無しさん
17/10/23 02:24:18.98 Zv+DKPlp.net
>>271
いけました!まあこれもまだ途中だと思うと…
しっかり5台と表示されました!
278:デフォルトの名無しさん
17/10/23 02:28:32.08 c0Vu/KQR.net
>>272
ok
じゃあ次は
weight++ → if(11<=g) weight++ って変えてみな
279:デフォルトの名無しさん
17/10/23 02:28:43.54 Zv+DKPlp.net
あとはint countHeavy()を作るだけでしょうか?
280:デフォルトの名無しさん
17/10/23 02:29:42.89 y4/LHG7i.net
>>268
せめて static int total = 0 とかにして
281:デフォルトの名無しさん
17/10/23 02:31:28.73 Zv+DKPlp.net
>>273
変えたところ2と出てきました。
282:デフォルトの名無しさん
17/10/23 02:34:41.53 c0Vu/KQR.net
>>275
ひとまず、な
できるだけ手を加えずまずは動き
命名も大事だがまずは動かすことを目的とした
>>276
後はstatic変数を増やして
さっき5台って出たものと今2台って出たモノを組み合わせれば完成
283:デフォルトの名無しさん
17/10/23 02:37:41.34 yUlbauj/.net
キモすぎてもう見てられん・・早く終わってくれ
public class Automobile {
static int TotalMobile = 0;
static int TotalLargeMobile = 0;
Automobile(int weight){
TotalMobile++;
if(weight >= 11){
TotalLargeMobile++;
}
}
public int countAutomobile(){
return TotalMobile;
}
public int countHeavy(){
return TotalLargeMobile;
}
}
public class Highway{
public static void main(String[] args) {
Automobile[] am = new Automobile[5];
int[] weight = {1, 15, 12, 5, 8};
for(int i=0; i<5; i++){
am[i] = new Automobile(weight[i]);
}
System.out.println("自動車総数:" + am[0].countAutomobile() + "台");
System.out.println("うち大型車:" + am[0].countHeavy() + "台");
}
}
284:デフォルトの名無しさん
17/10/23 02:39:17.36 c0Vu/KQR.net
>>278
おーいいタイミング
ありがとな~
285:デフォルトの名無しさん
17/10/23 02:42:53.75 Zv+DKPlp.net
皆さんありがとうございます!おかげでどうにか出来ました!この恩は一生忘れないです!
286:デフォルトの名無しさん
17/10/23 02:45:26.99 c0Vu/KQR.net
>>280
恩は忘れていいのでこの問題の設計はウンコだって事だけ覚えててくれ
287:デフォルトの名無しさん
17/10/23 02:48:37.75 Zv+DKPlp.net
>>281
けれどこんなヽ(・∀・)ノウソコ設計でもみなさんちゃんと理解して完成まで持ってけるなんてほんとにすごいと思います。
288:デフォルトの名無しさん
17/10/23 02:51:09.46 yUlbauj/.net
お前と課題出した奴が馬鹿すぎるだけ
289:デフォルトの名無しさん
17/10/23 02:54:14.67 c0Vu/KQR.net
こちとら仕事でこんなもんじゃないレベルのウンコを相手にしてるからな
本来いらないスキルだからお前は真っ当に育ってくれ
290:デフォルトの名無しさん
17/10/23 03:03:23.53 Zv+DKPlp.net
>>283
反論の余地もないです。これからも精進します…
291:デフォルトの名無しさん
17/10/23 03:04:25.94 Zv+DKPlp.net
>>284
センスないと言われたらそこまでですが、将来IT系で働きたいと考えているのですがどう思いますか?ちな理系です。
292:デフォルトの名無しさん
17/10/23 03:11:54.62 c0Vu/KQR.net
>>286
働くだけなら誰でも行けるよ
スキルは後から付ければいいけどあればあるだけ有利にはなる
293:デフォルトの名無しさん
17/10/23 03:19:06.59 Zv+DKPlp.net
>>287
なるほど、ありがとうごさいます
294:デフォルトの名無しさん
17/10/23 04:09:38.68 H84xHXVr.net
>>282
完成については最初に問題を見た直後に大半のやつはわかっていて、
それだからクソだと言っていたのだ。この程度は誰でも慣れてくると
すぐに頭に浮かぶようになる。というか見た直後にまず違和感を覚える。
それからその違和感の原因はなんだろうと心の中を探り、それから
ソースを二度見して気づく。
295:デフォルトの名無しさん
17/10/23 04:25:40.26 yUlbauj/.net
ネットで色々調べ物してたら大学生とか院生でも仕事でjavaってる奴よりも
遥かに賢いコード書いてる奴が腐るほどいるのに
大学で出る課題がこれでそれに悪戦苦闘してる奴が仕事とか夢見すぎだろ
296:デフォルトの名無しさん
17/10/23 05:17:21.22 c0Vu/KQR.net
初心者が突然理解してたら勉強する意味ないだろ
297:デフォルトの名無しさん
17/10/23 08:14:26.60 uG4wXav9.net
>>290
皆出来るような事は仕事にはならない。
298:デフォルトの名無しさん
17/10/23 12:06:33.05 Lz0ZCAGx.net
初歩中の初歩的なことで申し訳ないんですが、Windows 10上でのJava開発環境の構築は
a. JDKインストール → Eclipseインストール →Pleiades プラグインインストール (一般的?)
b. Pleiades All in One [Eclipse 4.7] Java (Full Edition)
どちらの方法がお勧めでしょうか?最近まで開発にMacを使っていたものでどうすべきか悩んでいます。
後者は最初からよく使うプラグイン類が導入済で便利とは聞きますが...
299:デフォルトの名無しさん
17/10/23 12:18:29.77 QxUDS6F0.net
>>293
本当の初心者とか楽したいなら後者
開発経験あるなら前者で必要なプラグインだけ選出して入れる
300:デフォルトの名無しさん
17/10/23 16:12:01.87 QKnEuIrp.net
必要ないプラグインは外せる
だからプラグインと呼ぶ
学校でのプログラミングの課題はあくまで穴埋め的に特定手法の記憶度を見るものであり
独習時の問題とも業務実習時の課題とも違うものだから出来不出来は気にしないのがよい
ネイティブだろうがプロ翻訳家だろうが「学校の」英語「習熟度ドリル」は満点取れなかったりするものだ
301:デフォルトの名無しさん
17/10/23 16:23:54.92 t7W7X0PH.net
あー。帰国子女で日本語片�
302:セのやつがなぜか満点取れないと。
303:デフォルトの名無しさん
17/10/23 17:06:17.83 8jJ9zkLD.net
日本人が全員国語満点じゃないのと一緒
304:デフォルトの名無しさん
17/10/23 18:36:46.88 NKAmnKE1.net
この課題はインスタンス変数とクラス変数の違いを知るためのものだから
こういう間違えをして調べるのを期待してるんだろ
305:デフォルトの名無しさん
17/10/23 19:16:35.52 YIhcz2Te.net
ま、しかし、もうちょっとましな課題作れないもんだろうか。
疲れてたのかな。
306:デフォルトの名無しさん
17/10/23 19:31:38.35 Pe+98mGG.net
やっと流れに追いついた
>>201のは、設計がどうのという以前に
キチガイの所業
あるいはお前らの脳を疲弊させるための実験
お前らマトモにとりあってたらダメだぞ
307:デフォルトの名無しさん
17/10/23 19:40:11.90 YIhcz2Te.net
あー。そうか。スレを活性化させるために投下された燃料だったのか。
308:デフォルトの名無しさん
17/10/23 20:12:20.31 y4/LHG7i.net
一般的にこういう課題ってam[0]の箇所を
自分なりに修正して提出したら減点対象になるの?
もしそうなら大学レベルの教育方法ではないよね
309:デフォルトの名無しさん
17/10/23 20:22:05.75 YIhcz2Te.net
わからんな。先生の気分次第なんじゃないか?
310:デフォルトの名無しさん
17/10/24 00:45:00.97 MROfWTvM.net
配列ってホッチキスで止められた書類みたいなもんだから最近嫌いだわ
311:デフォルトの名無しさん
17/10/24 01:07:41.88 37YlkQhq.net
List使えばいいじゃん。
これにて一件落着
312:デフォルトの名無しさん
17/10/24 02:48:33.95 UVHXr0A6.net
[[[[[[[[[
313:デフォルトの名無しさん
17/10/24 23:49:49.40 ++BilNP+.net
>>305
要素一つ一つaddする地獄もなくなったし、これからはListの時代
314:デフォルトの名無しさん
17/10/25 06:04:04.53 ZfgKJLFw.net
質問です。
ファイル圧縮処理を行う下記のコードで、
URLリンク(ideone.com)
close処理をfinally文ではなくcatch文の中に記述されているのですが、
問題無いのでしょうか?
315:デフォルトの名無しさん
17/10/25 07:05:25.56 KHRIvL/L.net
>>308
処等後にプロセスがすぐに死ぬなら
閉じる必要もないでしょ
flushだけでいい
キャッチはまるまるいらない
316:デフォルトの名無しさん
17/10/25 09:26:51.00 Q7ime0JM.net
closeとセットで作るようにしないといつかclose忘れ起こすと思うけど
317:デフォルトの名無しさん
17/10/25 09:39:29.54 nJqgcJg9.net
try-with-resources でやるのが良い
URLリンク(www.task-notes.com)
318:デフォルトの名無しさん
17/10/25 09:44:49.84 ZmgYAolO.net
まあ実際的にも教育的にも「closeなんてしなくていいよ」ということはないな
自動でcloseしてくれる普段使い用コンビニエスメソッドが本家でもあるべきではあるが
319:デフォルトの名無しさん
17/10/25 10:10:23.11 QmdhvvJR.net
Javaってc#のusingみたいな構文ないんだっけ?
320:デフォルトの名無しさん
17/10/25 11:01:31.98 lQVA76dW.net
>>312,313
直前のレスくらい読もうぜ
321:デフォルトの名無しさん
17/10/25 18:36:25.22 9pgp/kzo.net
プログラミング完全初心者でこれから始めようと思っているんですが
何を何からやれば良いでしょうか
お勧めの本やサイト等もご教授ねがいます
OSはLinux Mintでとりあえずeclipseというのとopen java8というのを入れました
322:デフォルトの名無しさん
17/10/25 18:38:25.23 0GYD+24d.net
>>315
プログラミングで何をやりたいの?
学ぶ目的は?
323:デフォルトの名無しさん
17/10/25 18:44:11.98 MjxzUPyN.net
C#と座間林が話題になってたからそっちのほうがいいのかも
324:デフォルトの名無しさん
17/10/25 18:54:09.43 ZmgYAolO.net
>>315
>何を何からやれば良いでしょうか
325:>お勧めの本やサイト等もご教授ねがいます 全部おんぶに抱っことかアフィかッ! やんわりマジレスすると最初の最初はJavaでないほうがいいよ これはたとえ小難しくても業務でカッチリ書けるという面が重宝された言語だから、個人がいきなり趣味でやるとしんどい ひょっとしたらアンドロイドアプリが頭にあるかもしれないけど、もしゲームならUnityがいいよ
326:デフォルトの名無しさん
17/10/25 19:02:06.72 ZmgYAolO.net
環境見てなかったwwww
もしリッチなマシンがLinuxマシンしかなく、それでもGUIアプリを世に出したいのだとしたらJava...しかないかなあ
アンドロイドアプリをLinuxで作りたいなら実質Java/Kotlinしかないよ
ただ、あなたの中では知名度ないかもしれないけど Python をやるという手もあるよ
よかったら検討してくれ
327:デフォルトの名無しさん
17/10/25 19:08:59.03 9pgp/kzo.net
ありがとうございます
webアプリ作成、Androidアプリ作成、機械学習をやってみたいと考えております
調べていてpythonというのも候補には挙がったんですが
javaをやると基礎がしっかりつくと聞いてjavaにしてみようかなと思いました
学生で新しいパソコンを買う余裕がなく、お下がりのにlinuxを入れて使っています
328:デフォルトの名無しさん
17/10/25 19:37:30.37 9pgp/kzo.net
すいませんちょっと嘘つきました
お金がないよりも、勉強の邪魔になるからって買わせて貰えない
の方が正しかったです
329:デフォルトの名無しさん
17/10/25 19:47:59.66 ZmgYAolO.net
学生さんならJavaなんてやるのは勿体ないよ
あとLinuxでのアンドロイドアプリ作成はメモリ4GB必要だから気をつけてね
330:307
17/10/25 20:18:00.51 ZfgKJLFw.net
何件かレスを頂き、ありがとうございます。
仕事でJavaを使う際、catch文の中にclose処理を入れるのは有りなんでしょうか?
引き続きで恐縮ですが、皆様の見解をよろしくお願いします。
331:デフォルトの名無しさん
17/10/25 20:28:08.31 lZypkF1g.net
>>323
規約と契約による
あなたの会社がしても良いといえばどっかのJavaのエラい人がなんと言おうとあなたの会社では正しいし
Javaのエラい人が顔をしかめネットで炎上し掲示板で荒らし扱いされる手法であっても上司がそのようにしてくれと言えばあなたはその書き方をすべきである
332:デフォルトの名無しさん
17/10/25 20:30:59.72 zzC6q5u4.net
>>318
え?Javaってそんなに難しいか?
まあでも元の質問してる人はOSがLinuxなので多分何も知らない初心者じゃないと思うぞ。
多分他の言語はわかるんじゃないか?
333:デフォルトの名無しさん
17/10/25 20:36:12.40 zzC6q5u4.net
あ、ごめん。リロード忘れてた。なんでLinuxか書いてあったな。
まあでもLinux入れてまで使おうとするやつはもはや初心者ではないと思うが。
334:デフォルトの名無しさん
17/10/25 20:40:19.16 lZypkF1g.net
>>325
まーなんだ、「小難しい」のは間違いないな
1行実行するために10行書くような言語だ
IDEがあるとはいえ学生さんにはもっと前のめりな言語で遊んでほしいところ
あと君が何歳かは知らないけど今のデスクトップ用Linuxのインストールと使用はスマホの設定変更くらいの難易度だぞ
335:デフォルトの名無しさん
17/10/25 20:56:31.41 zzC6q5u4.net
>>327
いや、今時のLinuxはインストール始めれば後はだいたいマウスポチポチ押してればなんとかなる事は知ってる。
しかしPC初心者は普通はLinuxの存在すら知らない。あるいはWindowsの上で動くソフトだと誤解していたりする。
そういう誤解がないということはそれなりにわかっていると考えて良かろう。
336:デフォルトの名無しさん
17/10/25 21:17:12.51 QmdhvvJR.net
>>328
いまはWSLあるしなー
337:デフォルトの名無しさん
17/10/25 21:45:19.10 /TUaBfz7.net
314です
泥アプリの作成にもRAM4GB必要だそうなので何とかしてもうちょっと新しいPC手に入れて出直してきます
ありがとうございました
338:デフォルトの名無しさん
17/10/25 22:42:58.25 RILf1WwA.net
泥アプリ開発ならvsでxamarinとかブラウザでmonacaみたいな選択肢もあるし
一旦言語選択から考え直してみたら
339:スッキリ厨
17/10/25 23:26:15.55 M2TcZ1xf.net
>>315-322
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊をこの順に読む
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
ここまでが基礎で、実際にアプリを作れるようになるには、数年掛かる。
アルゴリズム・OS・環境構築運用で、少なくとも数年は掛かる
340:デフォルトの名無しさん
17/10/26 00:28:50.10 qkSUMYmO.net
クラス名からインスタンスを生成して、
そのインスタンスが保持するフィールドにダミーの値をセットする機能を作りたいのですが、
privateなメンバ変数にも値をセットすることはリフレクションで出来ますか?
class Entity{
@getter @setter
private Long age;
}
があったときnew Entity()のインスタンスとその中のageに何か数値が入っている状態にしたいです
341:デフォルトの名無しさん
17/10/26 00:42:22.95 qkSUMYmO.net
自己解決した ありがとう
342:デフォルトの名無しさん
17/10/26 01:29:13.40 N/UTfD1S.net
>>315
Progate行ってこい
やれそうだと思ったらスッキリ入門編
343:デフォルトの名無しさん
17/10/26 09:58:09.89 /KWiwsxI.net
>>334
どうやって解決したかを書け
344:307
17/10/26 20:11:51.32 DirVuC/B.net
>>324
分かりました。ありがとうございました。
345:デフォルトの名無しさん
17/10/29 00:13:25.42 jaLMlrXm.net
H2 Databaseに接続するプログラムをコンパイルし実行したいのですが、
クラスパスを何て書けばいいか調べても分かりません。
どなたか教えて頂けませんでしょうか?
346:デフォルトの名無しさん
17/10/29 11:34:08.81 oFRxn/Jf.net
>>338
ここにいきなりこう書いてあるが?
URLリンク(www.h2database.com)
Add the h2*.jar to the classpath (H2 does not have any dependencies)
347:337
17/10/29 12:46:42.34 jaLMlrXm.net
>>339
レスありがとうございます。
具体的には、javac -cp h2*.jar Main.java (Main.javaはクラス名)と入力し、
java -cp h2*.jar Main と入力すればいいんですか?
348:デフォルトの名無しさん
17/10/29 13:08:40.31 cRJ4aa/x.net
今時クラスパスを手動で解決するとは
mavenとかgradle使え
349:デフォルトの名無しさん
17/10/29 13:18:28.37 oFRxn/Jf.net
>>340
いや、h2*.jar が入っているディレクトリごと指定しないと普通はダメなのでは?
カレントディレクトリにあるならそれでも良いのかも知れんが。
350:337
17/10/29 15:33:37.93 jaLMlrXm.net
コンパイルは通るのですが、実行できませんでした…。
ClassNotFoundExceptionとSQLExceptionが発生してしまいます。
どなたかヒントを下さい。
ソースコードは以下です。
URLリンク(ideone.com)
351:337
17/10/29 15:35:28.67 jaLMlrXm.net
>>341
すいません、今回はコマンドプロンプトで書かせて下さい。
352:デフォルトの名無しさん
17/10/29 15:57:54.47 0Uo9CHxR.net
>>343
javacで取り込むわけではないので
javaで実行時にもCLASSPATHを通して見つかるようにしてやる必要がある
353:デフォルトの名無しさん
17/10/29 16:23:24.35 oFRxn/Jf.net
>>343
コンパイル時と同じ classpath にしてもダメなの?
354:337
17/10/29 16:26:53.49 jaLMlrXm.net
>>345
はい。それは分かります。javacと同じクラスパスをjava実行時にも付けて
355:います。 実は根本的に、h2*.jarファイルがどこにあるのかよく分かってない気もするんですが、 H2 DatabaseのホームページからDL出来るh2-setup-2017-06-10.exeファイルの 中にあるんですよね?
356:337
17/10/29 16:32:10.42 jaLMlrXm.net
>>346
はい。
なのでjarファイルの位置指定がそもそも間違ってるんじゃないかと思い始めて
いるんですが…。.jarという拡張子のファイルが見当たらないんです。
357:デフォルトの名無しさん
17/10/29 17:11:13.08 0Uo9CHxR.net
>>347
知らないけど
それは自己解凍ファイルなのかな
検索して実際のjarファイルを探してみればいい
コンパイル時はインタフェースさえわかればいいから
その実装のclassには通ってない可能性がある
ちゃんと何してるかから理解した方がいいと思うぞ
358:337
17/10/29 20:16:42.57 jaLMlrXm.net
>>349
あれからいろいろ調べて、Cドライブを検索した結果、h2*.jarファイルが
見つかりました!やはり.exeファイル内には無かったようです。
クラスパスを更新したら実行(javaコマンド)も無事成功しました。
回答して頂いた方々、ありがとうございました。
359:デフォルトの名無しさん
17/10/29 22:13:14.03 ZPOHC70p.net
コンストラクタで引数チェックをし、例外を投げることは設計上良くないのでしょうか?例えば
class hoge {
private final int i;
hoge(int i) {
if(i >= 0)
this.i = i;
else
throw new IllegalArgumentException
}
}
フィールドiに負の数を持たせたくない場合このようにするのが自然かなと考えたのですがいかがでしょうか?
360:デフォルトの名無しさん
17/10/29 23:14:29.92 ILWFk/IO.net
>>351
クソだと思う
値をチェックする責務は専用のクラスに任せて
それ以外のクラスに持ち込むべきじゃない
361:デフォルトの名無しさん
17/10/30 00:07:29.30 RKfFK5VC.net
>>351
別にいいと思うぞ
作ってからIsValidで確認するか
そもそも作らせないようにするかの違い
どっちのやり方も良し悪しがある
362:デフォルトの名無しさん
17/10/30 00:34:24.41 EdHEI0+x.net
空のオブジェクト作って後でsetter使って入れるのも微妙だしコンストラクタで値チェックとかしていいと思うぞ
俺ならPattern.compileメソッドみたいに自分自身を返すstaticメソッドで価チェックする
363:デフォルトの名無しさん
17/10/30 00:44:57.12 sRaOGV/D.net
>>351
有り得ない状態で存在できるより良い
364:デフォルトの名無しさん
17/10/30 00:45:02.55 eddodMAs.net
>>352
値チェック専用のクラスを作る場合どのように作るべきでしょうか
値チェッククラスでOKだった数値(正の数)をどのようにhogeのコンストラクタに渡すのかいまいち正しいイメージがつかめません
値チェッククラスのインスタンスをhogeの内部に持たせる(フィールドとコンストラクタの引数を変更する)のが良いのでしょうか?
とんちんかんな質問かもしれませんがよければお答えいただけると嬉しいです
>>353
なるほど
isValidメソッドであとからチェックするというのは思い付きませんでした
365:デフォルトの名無しさん
17/10/30 01:04:31.28 JH+/yPWP.net
>>351
>コンストラクタで引数チェックをし、例外を投げる
問題ない
バグでおかしくなるのが一番の問題
366:デフォルトの名無しさん
17/10/30 01:12:17.89 RKfFK5VC.net
Hibernate Validatorみたいなバリデーションフレームワークは一般的に作ってから確認する方式
そもそも作らせないようにするのは”always valid”と呼ばれてる
“always valid model”とかで検索すれば参考になるサイトが出てくる
長所短所を理解して使い分ける
367:デフォルトの名無しさん
17/10/30 01:16:09.26 ImI1HNcW.net
俺だったらPositiveNumberみたいなジェネリッククラスを作るか、@positiveみたいなアノテーション作る
368:デフォルトの名無しさん
17/10/30 01:51:11.96 eddodMAs.net
>>354
ありがとう
>空のオブジェクト作って後でsetter使
>って入れるのも微妙だし
私もそう思ったのですがコンストラクタで例外を投げるのは良くないというような
369:意見をどこかで目にしたので聞いてみました >>358 ふむふむ 個人的にはそもそも作らせないって方が好みな感じがします 調べてみます情報ありがとう
370:デフォルトの名無しさん
17/10/30 02:19:42.12 sRaOGV/D.net
コンストラクタとセッタに同じことを示す文が複製されるのもちょっと良くないな
371:デフォルトの名無しさん
17/10/30 03:04:30.08 nQXUW6Dj.net
>>352
クソ?しかし API にも new した時に例外出すやつ沢山あるわけだが、そういうのは全部クソ?
372:デフォルトの名無しさん
17/10/30 07:16:59.94 fX/oTiYO.net
>>361
コンストラクタで最初に値をセットして後から変更できないようにsetterは持たせないというつもりでした
(フィールドをfinalにしているのはそのためです)
373:デフォルトの名無しさん
17/10/30 07:22:42.37 b9ZBDRTb.net
>>356
オブジェクト作る前にValidatorクラスでチェックするだけ
374:デフォルトの名無しさん
17/10/30 07:24:54.59 b9ZBDRTb.net
>>362
全部クソ。
オブジェクトの責務をわかっていない。
375:デフォルトの名無しさん
17/10/30 08:14:47.50 JH+/yPWP.net
インスタンス変数(やクラス変数)は
そのオブジェクトに付属するデータだから
コンストラクタなどでデータチェックの責務を
オブジェクト自身に持たせるのはおかしくない
ただしチェックが複雑化したときに
責務を委譲するのもアリ
376:デフォルトの名無しさん
17/10/30 08:43:10.77 5RpC60IR.net
>>366
そのただしが問題
検証はシステムの関心ごとだから
集約するべきでオブジェクト毎に持つものじゃない
コンストラクタはオブジェクトを初期化するという
特別な処理であってここでデータチェックが必要になるのは
責務の分離ができてないシグナルみたいなもの
staticメソッドでtryCreateという名前なら100歩譲ってオーケーだ
377:デフォルトの名無しさん
17/10/30 08:54:32.49 5RpC60IR.net
負の値を持たせたくないのは業務の要件なんですよ!!
378:デフォルトの名無しさん
17/10/30 08:55:34.55 JH+/yPWP.net
>>367
>検証はシステムの関心ごとだから
>集約するべきでオブジェクト毎に持つものじゃない
責務を分離するのは重要だがそのオブジェクトの
規模が大きくなって複雑化するにつれて分けていくもの
たとえば生成の責務をファクトリに分離してもいいが
何でもかんでも全部ファクトリにする必要はない
だからコンストラクタでチェックしてもいいし
バリデータみたいのに分離してもいい
379:デフォルトの名無しさん
17/10/30 08:56:23.29 5RpC60IR.net
思わず激昂してしまいましたがとにかく小生が言いたいのはコンストラクタで例外投げるのおかしいですよということなんです
380:デフォルトの名無しさん
17/10/30 09:00:29.54 5RpC60IR.net
>>369
どっちでもいいなんていうそんな優柔不断で玉虫色な考えに真実があるわけない、あなたは思考を放棄しているに等しい、ここにはこういう値しか保持したくないんです、立派な業務要件でしょうが!!
じゃあその要件をまとめましょうよ、システムの関心ごととして切り出しましょうよ
381:デフォルトの名無しさん
17/10/30 09:01:41.86 4hMzyEUs.net
>>368
業務要件で例外処理を考えてるってなかなかおもしろいね
382:デフォルトの名無しさん
17/10/30 09:04:21.57 5RpC60IR.net
>>372
どういうこと?
383:デフォルトの名無しさん
17/10/30 09:06:06.45 5RpC60IR.net
もっと具体的にちゃんと説明して
小生良い事言ってるからそれちゃんと説明して
384:デフォルトの名無しさん
17/10/30 09:12:06.74 JH+/yPWP.net
>>371
いやそれは極端でしょ
OOPの要素はどれも使い分けじゃないの?
複雑化したら切り出すが抽象化にはキリがないので
IF文を全部ポリモーフィズムにするわけでもないし
最初から全部デザパタにするわけでもない
385:デフォルトの名無しさん
17/10/30 09:17:39.73 5RpC60IR.net
>>375
ifの話じゃないだろ
なんでもかんでも一緒にするな
極端なのはそなたの方
こなたが言いたいのはとにかくコンストラクタでチェックするのおかしくないですかってこと
386:デフォルトの名無しさん
17/10/30 09:21:09.70 JH+/yPWP.net
>>376
コンストラクタでチェックするのはおかしくない
JavaのAPIでやってるくらいなんだから
むしろやるなって方が押しつけ
387:デフォルトの名無しさん
17/10/30 09:22:44.13 5RpC60IR.net
コンストラクタでチェックして例外投げるのは
ようわからんけどオブジェクト作ってみるわー
でけへんかったわーゲヘヘーと言ってるようなもの
文明人のやることじゃない
アサートを使うべき
アサートは本番では動かさないからね
検証は専用のオブジェクトでやりましょう
388:デフォルトの名無しさん
17/10/30 09:25:45.46 5RpC60IR.net
>>377
アホかお前は、お前はアホか
JavaのAPIははっきり申し上げてクソでござる
クソがやってるから大丈夫なんだとはならんだろうが
どこがクソかはお前に任せるよ
389:デフォルトの名無しさん
17/10/30 09:46:48.33 JH+/yPWP.net
アサートでもいいが例外投げてもいい
つーかコンストラクタで例外投げるのが大問題なら
Javaの言語仕様でできないようにするだろ……
普通に考えて2ちゃんの一個人より
Java(API)のやり方の方がいいわ
390:デフォルトの名無しさん
17/10/30 10:01:28.68 5RpC60IR.net
>>380
ファイナライザでは例外投げないようにしましょう
というのがベストプラクティスだけど言語仕様ではできるでしょうに
言語仕様ってその程度のものですよ
コンストラクタでも例外投げるのやめましょうよ
2chネラーだから信用しないっていうのは権威主義的というか誰が言ってるかより中身で判断していただきたい、小生絶対良い事言ってるから!!
391:デフォルトの名無しさん
17/10/30 10:21:49.81 0VAyPn/2.net
どっちがキチガイかは一目瞭然だな
ありがとう
392:デフォルトの名無しさん
17/10/30 10:37:40.45 5RpC60IR.net
それでええんか?
議論って考えを広げるためにあるんやで
キチガイとレッテルを張っておしまいでほんとにええんか?
小生が可哀想だと思わない?罪悪感を感じない?お前のお母さんもお前には優しい人に育ってほしいと思ってたのじゃないか?
393:デフォルトの名無しさん
17/10/30 10:38:44.40 5RpC60IR.net
ありがとうの後にはございますを付けろ、それが礼儀だ
394:デフォルトの名無しさん
17/10/30 10:39:13.84 5RpC60IR.net
礼儀正しく優しい人になって欲しい
395:デフォルトの名無しさん
17/10/30 10:46:46.93 5RpC60IR.net
コンストラクタでデータチェックしない人になって欲しい
396:デフォルトの名無しさん
17/10/30 12:29:49.28 ich1HAGc.net
>>378
何が悪いか分からん。
オブジェクトの生成失敗も業務メソッドの実行失敗も、中断すべき状況になったら例外飛ばして何が悪いのか。
コンストラクタで例外飛ばすなって話はC++ならメモリの回収がややこしくなるんで一利あるけど、JavaやC#なら問題ない。
397:デフォルトの名無しさん
17/10/30 12:30:44.96 FeUZMDfY.net
>>365
オブジェクトの責務とは?
398:デフォルトの名無しさん
17/10/30 12:38:10.73 OufZdVP7.net
遡及IDは嘘つかないな
ソノトキ何をしたかよりもソノアト何をしたかが一目瞭然である
便利でよろしい
399:デフォルトの名無しさん
17/10/30 12:38:19.13 FeUZMDfY.net
>>368
なんというか、それそのものは Java 自体の問題のようにも思えるね。
つまり、unsigned が型として用意されてないからとか、PASCALみたいに数値の範囲を指定した新たな型を作れないからとかね。
まあそういう数値型のクラスを自作してしまえば良いだけかも知れないが。
400:デフォルトの名無しさん
17/10/30 12:47:31.30 FeUZMDfY.net
>>386
そんなにそれを求めるなら最初からそれができない新言語作れば?
大丈夫。君にも作れるよ。実装までできなくても言語仕様考えてネットで晒してフォーラム作って議論してまとめ直してから作ってくれる人募集すればその内なんとかなるだろう。全てを君が作る必要はない。
401:デフォルトの名無しさん
17/10/30 12:53:44.32 6Zg8+NGr.net
Google Apps Scriptで
URLリンク(www.pre-practice.net)
ここを参考にLINEBOTを作っていて、
文章中の特定の文字列に反応して返答するようにしたのですが、
else if (strpos(input_text, "寒い") !== false ) {
reply_text = "もう冬だね";
}
これを挿入しても反応してくれません。
何がいけないのでしょうか教えてください。
あと質問場所が適切でなければどこで聞けばいいか教えてください
お願いします。
402:デフォルトの名無しさん
17/10/30 13:41:37.04 3rz3HBcW.net
たまに生成されたクラスファイルが分割されることがあるんですがどういう条件で起きるんですかね?
ファイル容量の問題かと思いきや大きいものでも分割されてなかったり…
403:デフォルトの名無しさん
17/10/30 13:52:19.55 4hMzyEUs.net
>>393
1ファイルに複数のクラスを書いてるんじゃない?
404:391
17/10/30 14:17:58.64 6Zg8+NGr.net
>>392
これがPHPというのがわかりました
スレ汚し失礼致しました。
405:デフォルトの名無しさん
17/10/30 15:15:46.44 y0GY6LFV.net
>>393
インナークラスの悪寒…
$付いてない?
406:デフォルトの名無しさん
17/10/30 15:50:40.06 3rz3HBcW.net
>>395,396
色々調べてみたらどうもシリアライズ可能なクラス?というのが原因みたいでした…
お手数おかけしました
407:デフォルトの名無しさん
17/10/30 18:18:23.77 sRaOGV/D.net
>>363
final見逃してただけだった
それなら尚更コンストラクタだね
408:デフォルトの名無しさん
17/10/31 08:25:04.95 OmcraJl8.net
>>360
範囲外の入力値エラーだろ
private、つまりクラス内では、戻り値でエラーを示すが、
public、つまりクラス外では、例外でエラーを示す
なぜなら、クラス内をコーディングしているのは、普通は同じ会社だから、
その会社内で規定したエラー値を使っても、見落としが少ない
でも、クラス外の場合は、クラスをコーディングした会社と、異なる会社が使うから、
そのクラス内で規定したエラー値を使っては、いけない。
なぜなら、他社の人は、クラスのドキュメントを読まずに、クラスを使うから
つまり、クラス外部の人に対しては、絶対にエラーが起こるように、例外を使う
クラス内をコーディングする人と、そのクラスを使う人は、
異なる会社を想定している。
他社の場合は、クラスのドキュメントを読まないことを想定すべき
「スッキリJava」にも書いてある。
クラスを使う側と、フレームワークなど、他社が使うクラスを作る側の、
コーディングの違い。
他社を想定している場合は、全く違う
この辺は、品質管理をやってないと知らないはず
409:デフォルトの名無しさん
17/10/31 08:35:40.63 BBLfUUwS.net
>>399
どうしてもスッキリの宣伝をしなきゃ気が済まないようだな
その一節がなけりゃいいのに
410:398
17/10/31 09:49:23.34 OmcraJl8.net
「スッキリJava」では、クラスの責務を、明確に分けている
前半は、クラスを使う側の知識で、
上級編はフレームワークなど、他社が使うクラスを作る側の知識
フレームワークを作る側では、検査例外を使って、コンパイルエラーにしないと、
ドキュメントを読まずに実行した客が、実行時エラーを起こして、
電話をかけてくるから、商売にならない
本を読んで、実行時エラーを起こした客が、出版社に電話をかけてくるだろ。
それと同じで、商売にならない
だから例外にして、その例外をキャッチしない人は、実行できないようにする
サポート契約をしない、無料相談の客をはじかないといけない。
無料で見積もりさせる客も
411:デフォルトの名無しさん
17/10/31 12:09:41.25 QuyL7alo.net
経営の話か
412:デフォルトの名無しさん
17/10/31 21:22:09.98 BSBih/VQ.net
javaでWebアプリ作ってるのですがグラフ表示をしたいです
jfreechartとかchart.jsとか出てくるんですがおすすめとかってありますか?
413:デフォルトの名無しさん
17/10/31 21:22:56.96 BSBih/VQ.net
質問スレと間違えましたすみません。
414:デフォルトの名無しさん
17/11/02 02:18:26.07 BShD5IWlq
JavaでWEBアプリ作りたいんだが、やっぱJSP+サーブレットってやつをやるべき?
DBの処理(クエリとか)はサーブレットで、JSPは結果表示のみ、みたいに分ける方がいいの?
415:デフォルトの名無しさん
17/11/02 15:08:48.76 BShD5IWlq
WEBプログラミング板ってのがあるんすね。すま
416:350です
17/11/03 17:28:51.99 AmIWbkAj.net
>>381
しばらく2ちゃんを見れない状況だったので亀レスとなってしまいましたが、コンストラクタで例外投げるのが良くない理由をできれば聞きたいです
417:デフォルトの名無しさん
17/11/03 17:36:15.65 lQ0XoM3e.net
>>407
責務の分離ができてない証拠だから
418:デフォルトの名無しさん
17/11/03 17:39:40.36 lQ0XoM3e.net
コンストラクタっていうのはオブジェクトを初期化する特別な処理を書くところ
渡された値をそのまま何の加工もせずにフィールドにお納めするのが義務なんです
419:デフォルトの名無しさん
17/11/03 17:42:31.79 lQ0XoM3e.net
どうしても例外を投げたいならtryCreateというスタティックメソッドを作って
例外投げますよ作れないかもしれないですよということをメソッド名で
陽に示すべきだ、この処理は検証も含んでいますよと示すべきだ
なぜならば検証も含むからだ、オブジェクトを作るメソッドなのにだ
420:デフォルトの名無しさん
17/11/03 18:39:37.30 lQ0XoM3e.net
FileStreamもコンストラクタで例外を投げるが
あの設計も大間違いだから
コンストラクタでリソース確保しようとするのが完全に間違ってる
closeの処理でリソースを解放するならばリソースを確保するのはopenだ
openの責務をFileStreamは持つべきでそれはオブジェクトを初期化する
コンストラクタとは役割が根本的に100憶パーセント異なるわけ
421:デフォルトの名無しさん
17/11/03 19:04:39.65 9CXEo34m.net
>>409
何もしなかったら意味ないだろ……
直通のゲッターセッターと同じただのお飾り
422:デフォルトの名無しさん
17/11/03 19:18:22.44 lQ0XoM3e.net
>>412
フィールドを初期化するという大事な処理がある
セッターは代入だから、初期化じゃないから
423:デフォルトの名無しさん
17/11/03 19:40:27.12 lQ0XoM3e.net
UI -> アプリ(バリデータ) -> ドメイン -> DAO
レイヤーはこのように分けてドメインから先にバリデーションのコードを持ち込んではいけない
オブジェクトをクリーンに保つためのベストプラクティス
424:デフォルトの名無しさん
17/11/03 19:47:48.30 lQ0XoM3e.net
バグがないように引数をチェックするという目的でやるなら
アサートを使うべきだ
ただしアサートを使うのは開発時のみで本番コードには含めない
本番コードで引数チェックが必要になるようならそれは
業務要件として抽出するべきだ
425:350です
17/11/03 20:10:50.22 AmIWbkAj.net
なるほど
405~410まではなんとなくわかりました
411, 412は私の経験or勉強不足でいまいち理解できませんでした
でも、解説してくれてありがとう
426:デフォルトの名無しさん
17/11/03 20:17:00.78 lQ0XoM3e.net
>>416
ありがとうの後にはございますだ
それが礼儀だ
427:デフォルトの名無しさん
17/11/03 20:19:43.27 EWAV0hJA.net
なるほど。わかった。スレが過疎って来たらコンストラクタで例外の話を出せば書き込みで溢れてスレが活性化するのだな。
時折反論を書きありがとうの後にございますを付けなければなお良いと。
428:デフォルトの名無しさん
17/11/03 20:21:29.16 lQ0XoM3e.net
僕が活性化しちゃうおおお
429:デフォルトの名無しさん
17/11/03 21:17:51.19 xnvXDnsB.net
またキチガイか
430:デフォルトの名無しさん
17/11/03 21:35:59.49 Ro85MhDs.net
コンストラクタに不正なもの渡された場合に例外を出すことが
なぜいけないのかについては1ミリも説明されてなくて草
431:デフォルトの名無しさん
17/11/03 21:41:52.50 lQ0XoM3e.net
>>421
責務の分離ができてない証拠だから
100ミリくらい説明してますけど
10メートルですよ
432:デフォルトの名無しさん
17/11/03 21:42:46.79 lQ0XoM3e.net
違うわ1,000ミリの間違いね
433:デフォルトの名無しさん
17/11/03 21:52:44.52 9CXEo34m.net
むしろ初期化の異常で例外を投げるのは
コンストラクタの責務だろ
なぜならコンストラクタの引数で渡されたデータから
インスタンス変数(やクラス変数)を初期化するわけだから
情報エキスパートの原則からして
データの処理はデータを持ってるオブジェクトが行うのが原則
ただ処理を全部抱え込むと肥大化するから
他に委譲することは構わない
newの代わりにファクトリを使ったりするのと同じ
しかしそれは「newを使うな」ではない
「外部に委譲してもいい」のであって
「コンストラクタで例外を投げてはいけない」ではない
434:デフォルトの名無しさん
17/11/03 22:00:57.69 Ro85MhDs.net
>>422
責務を理解できてない典型だね
君がそういう規約で開発するのは勝手だけど
それをベストプラクティスだからとか言って
他人に押し付けるのはよくないよ
435:デフォルトの名無しさん
17/11/03 22:01:56.36 lQ0XoM3e.net
>>424
ベストプラクティスってそういうものだよ
こういう実装もできるけどこっちの方が好ましいよねっていうものだから
そういう意味で言ってるわけよ
たとえばModel View ControllerのアーキテクチャがあるけどViewに
Modelのコードも全部書きまくっちゃってもいいわけよ
でも分離するのが好ましいだろ、そういう意味で言ってるわけよ
その真意をくみ取って欲しいわけよ
コンストラクタでデータチェックヤラナイのが好ましいわけよ
え?ヤラナイの?なんていうふしだらな誘いに乗らないで欲しいわけよ
436:デフォルトの名無しさん
17/11/03 22:02:38.01 lQ0XoM3e.net
>>425
理解できてないことを1ミリも説明してないじゃん
話にならないよ
437:デフォルトの名無しさん
17/11/03 22:03:47.06 lQ0XoM3e.net
自分の考える責務の分離はこうっす
自分こう思うっすとはきはきと説明できないかね
若さが感じられない
438:デフォルトの名無しさん
17/11/03 22:42:06.17 lQ0XoM3e.net
説明を求められたら言葉を失ってしまうみなさん
439:デフォルトの名無しさん
17/11/03 22:47:53.53 L9/pWClM.net
どんなに外部でチェックしてもインスタンス生成に失敗することはあるわけで、
そういうときに失敗を通知する手段は例外しかないわけで、
コンストラクタで例外を投げてはいけないとする方が問題だ。
440:デフォルトの名無しさん
17/11/03 22:49:18.72 lQ0XoM3e.net
モデルに存在するべきコードがコントローラに存在するものをファット・コントローラと言うけれども
バリデータに存在するべきコードがコンストラクタに存在するものをファット・コンストラクタと呼んで
クラスの生活習慣病に位置付けるのはどう?
徐々にシステムを蝕んでいきます
コーディングの習慣を見直しましょう
441:デフォルトの名無しさん
17/11/03 22:52:55.66 lQ0XoM3e.net
>>430
どんなに外部でチェックしてもインスタンス生成に失敗するときは例外投げて良い
そんなのケースバイケースだろ、柔軟に対応しろよ
442:デフォルトの名無しさん
17/11/03 22:53:28.36 lQ0XoM3e.net
ベストプラクティスっていうのは柔軟っていう意味もありまぁす!
443:デフォルトの名無しさん
17/11/04 00:31:14.87 FdHKGPou.net
入力値チェックは、MVC のビューでやるけど、
ドラクエ10 の記事によると、
通信データの500バイトに、1バイトは間違っているから、
通信データは、絶対に信用しちゃいけない。
必ずサーバー側でも、チェックすべき
途中のルーターが、データが間違っていても、データを破棄せず、
間違ったデータで、パリティを再計算して送ってくるから、
正常なデータのように見える
444:デフォルトの名無しさん
17/11/04 01:00:49.14 O0AU1SEY.net
サーバーが受け取ったデータが外部入力なんだから
それをチェックするのは当たり前
ユーザー入力と同じ
境界の外から入ってきたデータを
どのレイヤーでチェックしてエラーハンドリングするかということと
モデルレイヤーのコンストラクタが事前条件に反した不正値を受け取った場合に
例外を投げるかどうかは関係はしてるが種類の違う問題
という話をしてる
445:デフォルトの名無しさん
17/11/04 02:59:59.82 Wr8YwoWe.net
できれば不正値はコンパイル時にエラーになって欲しいものではあるな。
不正な値を引き渡せるようにプログラミングできること自体がなくなった方が良い。
I/O絡みのエラーは実行時じゃないとわからないから別としてね。
(指定したファイルがなくて読み出しオープンでエラーとかは仕方がない)
446:デフォルトの名無しさん
17/11/04 08:21:09.10 4V8ohWTX.net
javaってできることが多すぎて勉強しんどい
447:デフォルトの名無しさん
17/11/04 08:35:59.26 32ZzWJzG.net
>>434
へー、チェックサムも独自に仕込むのかな
448:デフォルトの名無しさん
17/11/04 08:37:10.99 32ZzWJzG.net
>>435
事前条件ってまさにアサートの領分じゃん
449:デフォルトの名無しさん
17/11/04 08:49:44.67 die+TITB.net
>>437
C++より楽
450:デフォルトの名無しさん
17/11/04 08:55:38.30 KxJ3WBAq.net
モデルの引数を間違えてるっていうのはバグなのでー
開発時に分かればよいことなのでー
アサート使うべきだよねー
コンストラクタをぶくぶくと太らせる理由にはならぬよ
メタボリッククラスから脱却してスマートクラスにしよう
451:デフォルトの名無しさん
17/11/04 13:21:03.20 O0AU1SEY.net
>>439
Javaの場合はアサートって言うとビルトインのassertをさすからね
事前条件なら自動的にアサート使えとはならないよ
それともコンストラクタでは
ExceptionではなくErrorを投げるべきって言いたいのかな?
452:デフォルトの名無しさん
17/11/04 13:36:25.85 KxJ3WBAq.net
>>442
何言ってんだおめー
assert使うべきで
例外を投げるべきじゃない
453:デフォルトの名無しさん
17/11/04 15:21:29.77 1M0jr43T.net
javaなら、コンストラクタで例外スローでいいでしょ。
454:デフォルトの名無しさん
17/11/04 17:10:27.14 KxJ3WBAq.net
>>444
でも設計的に大間違いですよそれ
コンストラクタの使い方完全に間違ってますよ
455:デフォルトの名無しさん
17/11/04 20:42:41.33 cKuNjw8p.net
>>445
あほ
456:デフォルトの名無しさん
17/11/05 13:12:43.81 z+9Dn5/C.net
以下のコードをideoneで実行できません。(ブラウザとしてエラーが発生)
どなたか理由を教えてもらえないでしょうか?
import java.lang.reflect.*;
class RefSamp {
public int times = 0;
public RefSamp(int t) {
this.times = t;
}
public void hello(String msg) {
this.hello(msg, this.times);
}
public void hello(String msg, int t) {
System.out.println("Hello, " + msg + " x " + t);
}
}
public class Main {
public static void main(String[] args) throws Exception {
Class clazz = RefSamp.class;
Constructor<?> cons = clazz.getConstructor(int.class);
RefSamp rs = (RefSamp) cons.newInstance(256);
Field f = clazz.getField("times");
f.set(rs, 2);
System.out.println(f.get(rs));
Method m = clazz.getMethod("hello", String.class, int.class);
m.invoke(rs, "refrection!", 128);
boolean pubc = Modifier.isPublic(clazz.getModifiers());
boolean finm = Modifier.isFinal(m.getModifiers());
}
}
457:デフォルトの名無しさん
17/11/05 14:11:12.97 0YSHLKzk.net
初心者じゃないんだろ35歳
自分で調べろ
458:遊園地
17/11/05 14:27:53.28 FPjW0d5Z.net
読むの面倒だから、エラー文も上げて。
459:デフォルトの名無しさん
17/11/05 14:34:37.57 k/LyUYN/.net
ideoneは知らんけどリフレクションはjavaセキュリティマネージャ動いてたら実行できないからそれじゃねーの
460:デフォルトの名無しさん
17/11/05 17:40:17.18 2ZrTuY5p.net
35歳に親切にすると君の職場に現れて付きまとわれるぞw
461:444
17/11/05 18:22:30.39 z+9Dn5/C.net
>>448
決めつけるなよ。それに初心者認定したのはあんたらだろ?
>>450
レスありがとうございます。
ideoneではなにかしらそういう安全装置が働いているということですね。
462:デフォルトの名無しさん
17/11/05 18:54:33.30 qSskq3Yv.net
釣りでエラーが発生と言ってるだけだろ
URLリンク(ideone.com)
463:デフォルトの名無しさん
17/11/05 18:59:33.63 0YSHLKzk.net
まず質問の仕方がおかしいんだよなぁ
ここは学校じゃないし、相手は先生じゃない
質問者の言わんとしてることを一生懸命に汲み取ってくれる人なんてほとんどいない
もっと相手に伝わるように質問しろ
464:444
17/11/05 19:41:51.63 z+9Dn5/C.net
>>451
たひんで
>>453
OSなど実行環境の違いによるんですかね…。
>>454
それはその通りだと思うけど、あんたは親切な人だったの?
465:デフォルトの名無しさん
17/11/05 19:45:10.05 /i0gfJYB.net
何この変なの?
どっかのコテハンか?
466:デフォルトの名無しさん
17/11/05 19:46:54.84 PoYQIzOm.net
>>453のリンク見てもエラーが出てるんだよな?
正直エスパーしようにも限界
467:デフォルトの名無しさん
17/11/05 20:07:50.04 2ZrTuY5p.net
もうそいつに触れるのはよせ
468:!
469:デフォルトの名無しさん
17/11/05 21:21:54.00 0YSHLKzk.net
>>455
なんで質問が分かりにくいって指摘に対
し、
俺が親切な人だったのか聞かれてるの?
全然意味分かんないんですけど
470:デフォルトの名無しさん
17/11/05 21:30:31.08 2ZrTuY5p.net
理解を越えているから考えては駄目
471:デフォルトの名無しさん
17/11/05 21:31:07.85 0YSHLKzk.net
そもそももっと答えの得られやすい質問が出来るようになれば解決なんだけど、
なぜ君は指摘に対してわざわざ「じゃああんたはごにょごにょ」とわざわざ全く関係ない事持ち出して喧嘩売ってきてるの?
中学生なの?反抗期なの?
自分の行動を振り替えって恥ずかしくない?
472:デフォルトの名無しさん
17/11/06 00:46:04.60 OjznruUj.net
以前お世話になりました >>201です。課題の上から二つ目の"(ここを作成)"がわからないです。
まあ上のほうも自信ないのですが...誰か教えていただけませんか?
URLリンク(imgur.com)
URLリンク(imgur.com)
URLリンク(imgur.com)
473:デフォルトの名無しさん
17/11/06 00:47:27.68 1qhCOQ98.net
宿題スレへ
474:
17/11/06 00:49:04.71 Lce8rfVs.net
今実行したら出来ました。何でさっきは出来なかったんだろ…。
URLリンク(ideone.com)
>>456
プログラマー板のコテハンです。
>>457
いや、リンクをたどるのは大丈夫でした。
>>459
ただ冷たくあしらわれたと思ったら、アドバイスをくれたので。
>>461
えっ?褒めてるのに?
475:デフォルトの名無しさん
17/11/06 02:26:46.28 tjV5ukzM.net
>>462
前回はみんなが教えちゃったけど
正直ためにならないと思うんだよね
でも一個だけヒント言うなら一行ずつ処理を追ってみ(2番目の)
「この変数にはどんな値が入っているか(入るべきか)」意識しながら
現状インプットからアウトプットまで線でつながってない
インプットの仕方は「Java コマンドライン 入力」でググれ
476:デフォルトの名無しさん
17/11/06 03:38:31.02 2Q/sT7xS.net
ヤフーブログの URLリンク(blogs.yahoo.co.jp) にデザパタ解説を発見した。
477:デフォルトの名無しさん
17/11/06 06:09:30.85 sonxQjeP.net
>>464
ごめんなさい、褒められてると思ってなかった
字面で反応してしまったのは俺も同じでした
反省してきます
478:デフォルトの名無しさん
17/11/06 07:06:32.63 efUB4xY4.net
>>465
ありがとうございます。時間かけてやって見ます
479:デフォルトの名無しさん
17/11/06 07:25:39.44 kblaZiQ3.net
>>462
5月の宿題を今やってんじゃねーよ
せっかくお金払って学びに行ってるんなら先生に聞きな
480:デフォルトの名無しさん
17/11/06 08:51:22.52 f5Hwp3Jw.net
課題の内容および詳細がバッドノウハウの固まりだな
やっぱ学校はCかLispでいいと思うよ
481:デフォルトの名無しさん
17/11/06 10:47:13.47 CLk5jCwv.net
マウンティングするスレじゃないんですよ!
482:デフォルトの名無しさん
17/11/06 13:56:05.08 Ql637c4l.net
javapro wwww
前に安易に答え教えたせいか変数の使い方すらろくに理解してなくてひでぇな・・
金ドブだからもうやめた方がいいぞマジで
483:デフォルトの名無しさん
17/11/06 14:05:17.27 Ql637c4l.net
問題も毎回酷すぎてガチでビックリすんだけど学校の名前教えてくれよ
こんなゴミみたいな問題できても全く勉強にならんレベルの酷さだぞ
484:デフォルトの名無しさん
17/11/06 14:39:48.25 Ql637c4l.net
public class Month {
int hi;
int[] days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
Month(int num){
hi = days[num-1];
}
public int getDays(){
return hi;
}
}
public class Calendar{
public static void main(String[] args) {
int tsuki = Integer.parseInt(args[0]);
if(tsuki >= 1 && tsuki <= 12){
Month m = new Month(tsuki);
System.out.println(tsuki + "月は" + m.getDays() + "日あります。");
}
else{
System.out.println("1~12月を指定してください。");
}
}
}
485:デフォルトの名無しさん
17/11/06 14:53:59.17 FN/Llmne.net
days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
month = 2
puts days[month] #=> 28
Ruby では、これだけ。
ただし、days[0]は使わない
画像などを貼るな!
paiza.io, codepad などのサイトに、ソースコードを貼って、質問しろ
486:デフォルトの名無しさん
17/11/06 14:56:54.74 PEro5dbb.net
>>474
何で教えるんだ?
1,2,3,4,5の配列から3番目の値を得る方法を教えろよ。
そうすれば月から日数得る方法も分かるだろ。
考え方が分かって無い人には答えを教えるべきじゃない。
487:デフォルトの名無しさん
17/11/06 15:10:14.26 Ql637c4l.net
>>351
上級Javaグラマーアカデミー一般命令・規約
規約6第23項18節
パラメータとして渡される値に関して
クラスの不変式を破っているオブジェクトの生成を防ぐため一般原則の特殊な場合として
メソッドおよびコンストラクタは後で使用されるパラメータの正当性を検査すべき
非公開メソッドに関しては一般に、アサーションを用いて検査すべき
上記規約に対する例外として、正当性検査のコストが高いか現実的でなく、かつ
正当性検査が計算の処理の中で暗黙的に行われる場合はこれに該当しない
また暗黙的検査によって誤った例外がスローされる場合はエラーアトミック性が失われることになるため
このような状況下においては抽象概念に適した例外をスローできるようにイディオムを使用すべき
488:デフォルトの名無しさん
17/11/06 15:21:23.29 Ql637c4l.net
クソな問題は逆に頭を悪くするので、すぐに答えを教えるべき
489:デフォルトの名無しさん
17/11/06 15:37:21.27 VIJ1bqUv.net
だいたいハードコーディングというところがもうダメなのに。
490:デフォルトの名無しさん
17/11/06 16:59:11.52 V0vtn4gd.net
こういう場合は月の値がおかしかったら例外投げるのが良さそうに思うが、そうすると今話題のコンストラクタで例外になる。
かといってそれをしないならどのタイミングで例外投げるのが良いのか?
(まあそもそもこんなもんクラスにすべきではないのかも知れんが)。
さて、このネタでまたスレが活性化するかな・・・
491:デフォルトの名無しさん
17/11/06 17:19:53.91 f1KpQ6jU.net
最近Javaを始めた者です。
質問させてください。
質問1)
店から客が弁当を買うような仕組みのプログラムを作りたいのですが、
用意するクラスは「店」「商品の弁当」「客」「実行するためのメインクラス」で良いのでしょうか?
変数は「店と客の所持金」、「客の腹の空き具合」、「弁当によって満たされる満腹度」のようなものを考えています。
質問2)
この様なプログラムの場合、売買のメソッドはどのように作ればいいのでしょうか?
「店が売る」メソッドか「客が買う」メソッドのどちらかだけ必要なのか、両方必要になるのかが分かりません。
現実的に考えれば客が居なければどんなに商品があっても意味が無いので、「店は商品を用意する」それを「客が買う」ような設計になると思うのですがどうでしょうか?
質問3)
現実的には客が弁当を買えば店の在庫は減り、客が所持する弁当が増えます。
このようにオブジェクトの中のオブジェクトが違うオブジェクトに移動するようなプログラムはどのように書けばいいのでしょうか?
質問4)
「客が買った弁当を食べる」という行為を行った場合、客が所持している弁当が無くなるわけですが、この様な仕組みはどのように書けばいいでしょうか?
以上、長くなりましたが良い方法があればご教授ください。
よろしくおねがいします。
492:デフォルトの名無しさん
17/11/06 18:19:33.27 f5Hwp3Jw.net
空腹度なんて抽象的すぎてゲームの中でしか成立しないぞ
493:デフォルトの名無しさん
17/11/06 18:43:48.98 Ql637c4l.net
ひっでぇ質問の内容w
何したいのかさっぱりわからん
494:デフォルトの名無しさん
17/11/06 18:52:01.06 KtrOSJPo.net
>>483
君は読解力なさすぎでは?
495:デフォルトの名無しさん
17/11/06 18:53:07.65 kblaZiQ3.net
>>481
教授するような時間はないな
496:デフォルトの名無しさん
17/11/06 19:13:07.93 T+apbet3.net
>>481
そのシステムの軸がどれなのか?
店、客、弁当を眺めるシステム?
497:あ
17/11/06 19:30:58.35 /hMSyilp.net
>>481
売買を真面目に考えると面倒くさい。
弁当のクラス以外に、店と客が「持ってる弁当のリスト」を持つか、
弁当リストクラスを別に作って、弁当に持ち主「店」「客」を持つとか、そんなんじゃないの?
どこにも属してない弁当が存在し得れば後者だと思うし、今回はどこにも属してない弁当があったほうが便利。
食った=無くなった=オブジェクトをリストから削除するか、弁当の満たされる満足度を食ったら残り0にするかじゃないかな。
腹の空き具合と弁当の容量のコンバート関数でももたせりゃ便利じゃねえの?後々。
その空き弁当箱は、捨てるときに、持ち主無しにしといて、たまに持ち主無しの弁当箱をバサッと消したほうが楽かも。
客が来たら作る、となるとまた面倒くさい。
店の方の在庫数で、負在庫に突入しそうなら補充とか、残り○個になったら補充、そういう風にするんじゃないの?
業務アプリみたい。
498:デフォルトの名無しさん
17/11/06 20:04:51.42 tjV5ukzM.net
>>481
いかにも初心者らしい疑問だけど
同時にどれももっともな質問だね
>質問1)
>用意するクラス
ソフトの規模の大きさに応じて
クラスは細分化していく
>「店」「商品の弁当」「客」「実行するためのメインクラス」
でもまあ小規模な前提なら
それで大筋でおかしくないと思う
もし規模が大きくなるなら
「金」とか「(弁当の)具」とか「客の行列」とか
クラス化する場合もあるかも
>「客の腹の空き具合」
ゲームなの?
業務アプリとゲームだとかなり考え方が違う
499:デフォルトの名無しさん
17/11/06 20:10:14.21 tjV5ukzM.net
>>481
>質問2)
>売買のメソッド
これは二者関係だから
複雑になりがちなんだよね
まず話を簡単にするためゲームだとして
店視点の販売目的のゲームなのか
客視点の満腹目的のゲームなのかで違う
小規模ソフトならプレイヤー視点の方に
メソッドをつければOK
じゃあもっと複雑な場合どうするか?
客の買うメソッドから
店の売るメソッドを呼ぶという
二重呼び出しもありうるし
第三者が「売買」メソッドを
持って仲介するケースもありうる
「デザインパターン」とか学ぶと
そういう複雑な関係のさばき方が分かってくる
500:デフォルトの名無しさん
17/11/06 20:13:40.02 tjV5ukzM.net
>>481
>質問3)
店の弁当を減らす処理と
客の弁当を増やす処理を同時に行う
>質問4)
客クラスの変数で弁当の所有数を表現して
食事メソッドなどで消費したら減らす
店側で帳簿をつけていて
客側でも家計簿をつけているとイメージして
それをプログラムで表現すると
何をすればいいか分かりやすいかも
501:デフォルトの名無しさん
17/11/06 20:27:33.35 tjV5ukzM.net
なお今回は弁当だから店と客の所有数の増減の
つじつま合わせだけやればいいと思うけど
組織間の社員や会員の移動みたいに
個体識別が必要なものが移動する場合は
参照したりIDを振ったりやはり複雑になる
502:デフォルトの名無しさん
17/11/06 20:31:16.29 1qhCOQ98.net
まず図を書いたほうがいいと思う
503:デフォルトの名無しさん
17/11/06 20:33:36.39 T+apbet3.net
やろうとしていることがシミュレーションゲームだよな。
504:デフォルトの名無しさん
17/11/06 20:57:20.04 f1KpQ6jU.net
みなさんありがとうございます。
質問にあいまいな部分が多すぎて分かりにくい文章ですいません。
自分はまだ始めたばかりの初心者なので、大規模なものでは無くeclipseの練習がてら細々と色々作ってコンソールで実行しようと考えています。
いくつかご指摘があった通り、確かに「客視点」なのか「店視点」なのかを決めてしまったほうが良いですね。
とりあえず486の通り客視点で作ってみようかと思います。
あまり規模を大きくすると混乱すると思うので、「店1つ」「客1人」「弁当1種類」でやってみます。
485で書いていただいたような「通貨」や「弁当の具」や「客の行列」などはまだ考えないことにします。
>>490
この場合、客と店にそれぞれカウンター変数を作ってそれぞれカウントするような認識で良いでしょうか?
それとも弁当自体にカウンターを持たせてオブジェクト数をカウントするのでしょうか?
>>487
リスト構造はLinkedListしか使ったことが無いので他にどのようなものがあるか調べてみようかと思います。
505:デフォルトの名無しさん
17/11/06 21:32:12.25 T+apbet3.net
目的のわりにやろうとしてることが複雑すぎる。
506:デフォルトの名無しさん
17/11/06 21:39:56.46 tjV5ukzM.net
>>494
>客と店にそれぞれカウンター変数を作って
>それぞれカウントするような認識
「カウント」が弁当の数のカウントならそうだよ
(販売数のカウントだと一度に複数売るとズレてしまう)
弁当の所有数を店と客の変数で表現するのが一番簡単
ただ弁当の種類が増えたり売買が複雑になってくると
リストなどに入れて店や客に直接弁当オブジェクトを持たせる
というやり方の方が逆に分かりやすくなってくる
弁当が100個なら100個オブジェクトを生成するというように
ゲームの世界とオブジェクトが一対一対応すると認識しやすい
ミニゲームにはそこまでいらないけど本格的なゲームなら必要
507:デフォルトの名無しさん
17/11/06 21:56:37.61 C9PfqYRK.net
複雑にした Life game か?
508:デフォルトの名無しさん
17/11/06 23:32:04.04 hLy/qxdc.net
>>481
直接の答えじゃないんだけどオライリーの「HeadFirstデザインパターン」を
読んでみるのもいいかも
質問のような店、商品、客のクラスを例にしてデザインパターンを使ってどう扱うかを
サンプルコードで説明しているので参考になると思う
509:デフォルトの名無しさん
17/11/07 05:57:39.09 uepCx6fG.net
これは、プログラムの問題じゃない。
システムの設計。SE の仕事。
図書館の貸し出しシステムとか
情報処理資格上級のデータベーススペシャリストの、過去問題集に一杯載ってる。
上級SE とか、部長クラスの資格
510:shosinsha
17/11/07 08:48:13.35 G8xLWgQW.net
privateとpublicはよく使うけど protected とか未指定って何!
パッケージとかサブクラスって何!
finalって何!
なんで無駄に継承して作るの!!
みたいなこと思うのは私だけでしょうか メリット・デメリットが一切わからん・・・
511:350です
17/11/07 08:51:50.25 FPDcUT3d.net
>>477
ありがとう
上級javaグラマーアカデミー調べてみます
512:350です
17/11/07 08:57:52.64 FPDcUT3d.net
>>481は私じゃないですが
コンストラクタの件もそうなのですが、自分でこうしてプログラムを書いてみようとすると、同じようにい設計面での様々な悩みが大量に出てきて
どうしていいかわからなくってしまう
なにか指針となる良い本とかないだろうか
513:遊園地
17/11/07 09:53:53.39 Pq/ecwAD.net
>>481
>>502
質問の仕方からプログラムの基礎ができて無い。
�
514:@過去スレのjava入門スレや図書スレとggる事ぐらいしろ。 言い訳するな
515:デフォルトの名無しさん
17/11/07 10:24:16.08 uepCx6fG.net
まずこの本で、オブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014
スッキリわかる Java入門 実践編 第2版、2014
スッキリわかる サーブレット&JSP入門、2014
実践Javaコーディング作法 プロが知るべき、
112の規約と21の心得、森崎雅稔(まさとし)、2014
Java 最強リファレンス、田中裕一、2014
EFFECTIVE JAVA 第2版、2014
Spring Framework 4 プログラミング入門、掌田津耶乃、2014
Spring Boot プログラミング入門、掌田津耶乃、2016
これらはプログラミングの本だから、これらを読んでも設計はできない。
システムの設計は、SE の仕事
図書館の貸し出しシステムとか、中古車販売システムとか、
情報処理資格上級のデータベーススペシャリストの、過去問題集に一杯載ってる。
上級SE とか、部課長クラスの資格
実際の仕事では、プログラミングよりも、設計とフレームワーク、
サーバーの環境構築・運用が重要で、10年以上掛かる
516:デフォルトの名無しさん
17/11/07 10:33:42.87 OjaJJCZW.net
10年経つと学習速度が追いつかなくなってお払い箱になる
SEとは成れの果てだ
だが毎日感謝の正拳突きを続ければ道が開ける、生涯現役
517:デフォルトの名無しさん
17/11/07 10:50:50.46 9O+xl0zZ.net
>>434
どのみちチートがあるからサーバ側でvalidateするんじゃ
MVCのViewがjavascriptだったりローカルアプリでもするでしょ
518:デフォルトの名無しさん
17/11/07 10:51:22.93 9O+xl0zZ.net
ズレてた
519:デフォルトの名無しさん
17/11/07 14:59:23.44 X/d0WSR0.net
>>502
Javaは俺も初心者だが本立ち読みして、買って、ネット検索して苦労することが成長させてくれると思うけどね。
お手軽に手に入れても深みが足りないんじゃないかな。
520:デフォルトの名無しさん
17/11/07 16:15:54.55 PHAeZGZp.net
>>504
テンプレも長くなったな
521:デフォルトの名無しさん
17/11/07 16:45:25.12 1gOGMHE5.net
>>509
実務がないのにあんなにやってもどれほど意味があるのかどうか。
522:デフォルトの名無しさん
17/11/07 18:21:11.72 HKEWD4ZX.net
Java始めます。
eclipseインストールしました。
よろしくお願いします。
523:デフォルトの名無しさん
17/11/07 18:24:58.95 1gOGMHE5.net
>>511
インストールするようなものではない。
初めから間違っている。
524:デフォルトの名無しさん
17/11/07 18:27:07.48 UinuS14I.net
最近はIntelliJが流行りなんでしょ
525:デフォルトの名無しさん
17/11/07 18:30:19.78 1gOGMHE5.net
統合開発環境がどうのこうの言うのは話がそれる。
526:デフォルトの名無しさん
17/11/07 19:11:35.77 e+Onr1Ut.net
eclipseはソースコード呼んだほうがいいと言われた
それなりに読めるようになるまでどれ程かかるか…
527:デフォルトの名無しさん
17/11/07 20:02:29.17 PzMEUpkG.net
>>512
何が間違ってるの?
528:デフォルトの名無しさん
17/11/07 20:21:32.13 JPbswaOw.net
>>513
そして気づいたらKotlinの方にハマってると
529:デフォルトの名無しさん
17/11/07 20:52:30.52 Mdyxq0ii.net
>>516
慣れたいのがEclipseなのかJavaなのか?
まあEclipseの使い方から入ってもいいが、Java環境の基本の勉強なら遠回りになる。
530:デフォルトの名無しさん
17/11/07 20:56:35.41 OjaJJCZW.net
eclipseがオワコン言ってるのは泥目当ての子たちだろう
皮肉にもAndroidのおかげでJavaに関心が集まったのも事実だ
でなきゃ悠久の時の中で緩やかに死んでいた
531:デフォルトの名無しさん
17/11/07 20:58:14.04 6QEepYb8.net
>>516
アーカイブ展開するだけのことをインストールとは言わないと思ってる人が最近増えたっぽいね
最近はeclipseもインストーラー提供してるけど、そっちでインストールしたら> >512も納得なんじゃない?w
532:デフォルトの名無しさん
17/11/07 21:45:35.21 Mdyxq0ii.net
アーカイブ展開という言葉もおかしいけどな。
533:デフォルトの名無しさん
17/11/07 21:47:33.19 Mdyxq0ii.net
>>519
どこの世界にいるのか?
534:デフォルトの名無しさん
17/11/07 21:52:42.44 6QEepYb8.net
>>521
正解を教えて下さい><
535:デフォルトの名無しさん
17/11/07 22:02:52.09 Mdyxq0ii.net
日本ではセットアップと言うのが無難。準備でもいい。
インストールは日本語にない概念だから、日本人には定義が難しい。
536:デフォルトの名無しさん
17/11/07 22:06:45.45 UinuS14I.net
>>524
柔王丸
537:デフォルトの名無しさん
17/11/07 23:51:44.86 a8Yk/iaO.net
>>525
セットアップ!(金田パースで)
538:デフォルトの名無しさん
17/11/08 00:33:05.64 1QltM1OK.net
URLリンク(ejje.weblio.jp)
主な意味
(式などを行なって)就任させる、任命する、(正式に)就任させる、つかせる、(…に)就任させる、着ける、落ち着かせる、着く、腰を下ろす、(…に)取り付ける
539:デフォルトの名無しさん
17/11/08 06:43:41.74 pFtekju4.net
ポータブル版
ダウンロードして解凍するだけだから、安全。
フォルダごと移動できるし、アンインストールも削除するだけ
システムをいじっていない
インストール版
システムをいじっている
環境変数PATH などに、インストールしたフォルダを追加しているため、
単純にアンインストールしただけでは、システムは元に戻らない
所定のアンインストール作業が必要で、フォルダごと移動したりも出来ない
540:デフォルトの名無しさん
17/11/08 06:50:29.41 Ct/mmK9J.net
客の見るメソッドで店頭にある弁当の在庫を確認
客の購入メソッドで弁当を客の注文リストに追加、店の在庫を減らす
客の支払いメソッドで店のレジに客自身のオブジェクトを追加してレジに並ぶ
店のレジで追加された客の注文を参照して、客に支払いを要求する
541:デフォルトの名無しさん
17/11/08 07:08:44.82 zA0Iq8dD.net
単に買い物する仕組みならショッピングカートで実現されてる
アマゾンも楽天も流れは同じだよね
システム改良や業務改善ではなく売上を上げることを目標にしているなら
客の不信感を想起させないようこれら大手と同じアプローチを採用した方がいい
一方、システム改良というのは例えばレジ無人化のためにICタグをどこにつけるとか
実店舗の在庫とオンラインの在庫を統合して即日配送するとか、そういう話だろうね
542:デフォルトの名無しさん
17/11/08 20:25:46.62 laSDUSFT.net
このスレで聞くべきでなかったらすみません
2年前にjavaシルバーse7の資格を取りましたが、今更になってgoldを目指そうと思っています
今はもうse8が新しく出てるみたいですが、やはり取るならse8のゴールドをとるべきなのでしょうか?
その場合、移行試験でシルバーse7→シルバーse8をとり、ゴールドse8を取る流れであっていますでしょうか?
543:デフォルトの名無しさん
17/11/08 20:58:35.99 fA12vdwi.net
資格かあ。取ろうと思ったことないなあ。
544:デフォルトの名無しさん
17/11/08 21:03:48.82 yXBCWp2w.net
資格で給料が上がるなら取ればいい
545:デフォルトの名無しさん
17/11/08 21:11:24.10 laSDUSFT.net
補助が一回でるだけですけどね
se8でなくse7でも大丈夫なのかどうか…
546:デフォルトの名無しさん
17/11/08 21:59:06.12 Rd/X6Lpc.net
>>534
移行試験の試験対策情報は少ないから気をつけた方がいい。
547:デフォルトの名無しさん
17/11/10 18:24:31.68 Hs3iAD9z.net
eclipseでpostgresqlデータベースにアクセスしようとするとこのエラーが出てしまいます。
解決策を教えていただけませんか?お願いします。
org.postgresql.util.PSQLException: Connection to 10.0.0.5:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:262)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:52)
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:216)
at org.postgresql.Driver.makeConnection(Driver.java:404)
at org.postgresql.Driver.connect(Driver.java:272)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at test.conectDAO.Conect(conectDAO.java:22)
at test.Main.main(Main.java:6)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.postgresql.core.PGStream.<init>(PGStream.java:61)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:144)
... 8 more
548:デフォルトの名無しさん
17/11/10 19:18:51.17 vS+vTxvI.net
>org.postgresql.util.PSQLException: Connection to 10.0.0.5:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
ここに書いてある。
このエラーメッセージで検索すれば?
正確なエラーメッセージで検索するのが、開発者の基本!
システムの構築・運用は、プログラミングと関係ないから、勉強に数年掛かる
549:デフォルトの名無しさん
17/11/10 19:26:57.77 O9mK3j04.net
psqlを使って10.0.0.5にログインできるか試しファイアウォールの設定を見直すんじゃないかな
つかJavaどころかeclipseの話にすらなってなくね
550:デフォルトの名無しさん
17/11/10 21:02:52.57 EtowUS5u.net
技術というか歴史?思想?についての質問です
Cを一通りやってからJavaに入ったんですけどもうとにかく長々と書くことが多くてゲンナリしています
例えば勉強の一環でオンラインジャッジとかやってるんですが、Cならscanf一発で済むのがbufferedreader云々……とあーもーと
文法上でもCを下地にしてるのは感じ取れるのですが、ならなんでもう少し分かりやすい方向に行かなかったんでしょう。複雑すぎる気がしています
551:デフォルトの名無しさん
17/11/10 21:04:50.40 J1b6d6mW.net
>>536
Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
552:デフォルトの名無しさん
17/11/10 21:08:42.80 J1b6d6mW.net
>>539
慣れの問題。
それと、短く書きたいなら Kotlin やってみるのもいいかも知れないが、まだ Java を知らない人向けの入門書はないようだ(少なくとも日本語の本には)。
553:デフォルトの名無しさん
17/11/10 21:29:38.83 J1b6d6mW.net
そういえば、出てきたメッセージが英語というだけで全く読もうともせずに人に聞く人が昔から居るように思うのだが、なぜ居なくならないんだろうか?
英語が全然わからないのか?まあわからなくてもいいんだが、しかしコピペするだけで自動翻訳してくれるサイトもかなり前からあるわけで、なぜそういうのを活用しないのか?
554:デフォルトの名無しさん
17/11/10 21:34:08.74 LsbUks3P.net
>>539
Cから来ると最初はそうだと思うけど
Javaの方が分かりやすくなってくる
555:デフォルトの名無しさん
17/11/10 21:51:22.98 U9BLdyQY.net
エラーメッセージ程度の英語すら理解できないような残念な人に限ってすぐに人に聞くというだけのことでしょう
何も不思議ではない
556:デフォルトの名無しさん
17/11/10 22:17:54.40 JoTZHkVR.net
>>539
そもそも、Cよりシンプルであることを目指して作られた言語じゃないから
557:◇BrBq2CJg6HGd
17/11/10 22:28:27.11 yN1hofrq.net
全力出してないのに過小評価されてしまいます。
どうしたら良いでしょうか?
558:◇BrBq2CJg6HGd
17/11/10 22:30:43.32 yN1hofrq.net
まあ客観的に見れば初心者のレベルは超えてますね。
559:デフォルトの名無しさん
17/11/10 23:21:33.08 LmWE/3t/.net
35歳のプライドだけ高い無能はお帰りください
560:デフォルトの名無しさん
17/11/11 00:57:43.80 NMddSJrr.net
>>539
C使ってればいいじゃん
561:デフォルトの名無しさん
17/11/11 01:40:30.49 cTWJmMx0.net
>>546
全力出せばいいんじゃないでしょうかね。
これにて一件落着。
562:デフォルトの名無しさん
17/11/11 02:41:43.39 +e5YBpfH.net
出そうと思ってますが体力が無いです
体力つけるには靴が擦り減るんです
1000円も大事なので靴が買えないんです
それに選ぶの面倒じゃないですか
これじゃあ全力出せまでんよ
あえて基礎から学んでますがね
563:デフォルトの名無しさん
17/11/11 03:02:08.67 4HyMUlDc.net
靴は座敷の入り口に色々なものが並んでるから合うのを持ってきたらいいのでは。
564:デフォルトの名無しさん
17/11/11 03:23:36.30 cTWJmMx0.net
>>551
君の言っていることがよくわからない
565:デフォルトの名無しさん
17/11/11 05:16:17.78 3tqm8fVd.net
>>539
組込用の言語だったから、初期の設計の時点では機能的に欲張れなかったのが第一の理由
ン十年前の組み込みだからメモリなんかほとんどない、16Mbytes「もあるのか」レベル
たぶん必要ないってなったらかたっぱし実装を諦めていくことになる
で、その言語をWeb系に転用したら大評判になった
評判になってしまうとヘタに仕様いじれないでしょ、互換性の問題で
これが、Javaがときおりやたら回りくどい理由の主因
はなから機能が少ないものがなぜか流行ってしまったわけです
で、例えばバッファリングとかでWebアプリ高速化的な需要があるんス、とかいうと
「既存のコードをラップするクラスでごまかす」以上の手がなくなるわけで
彼らはそうしたというか、まぁそうなるわ
おっしゃられるbufferedreaderとかは「過去の互換性の問題でラップラップをキメにキメてキメまくった結果
初心者にはイミフでチェケラなんて言えんわ逝ってよし、になってしまったもの」と諦めてください
つまり定型文として飲んでしまうしかないわけ
566:デフォルトの名無しさん
17/11/11 09:30:20.77 zWQHyOB4.net
>>554
ユーザーにラップさせなくても、commonsみたいによりシンプルなAPIを提供することはできたわけだし、
そうすりゃ互換性云々は関係ないし、その考察は筋が悪いね
567:デフォルトの名無しさん
17/11/11 11:30:26.02 SGA9z9gD.net
>>539
scanfに相当するのはDataInputStreamあたりで、
BufferedInputStremはエンコードとかオーバーフローの問題を見てくれるから、ちょいと複雑になるのはしょうがない。
例題がマズイのかもしれんが実は実現されていることが1と10ぐらい違うよ
568:デフォルトの名無しさん
17/11/11 14:48:52.87 cTWJmMx0.net
そういや printf() はあるんだから scanf() のようなものも標準で作れば良いのにね。
Cみたいに代入先の変数のポインタ渡す必要なくて、入力元とフォーマットだけ受け取って
戻り値は List か配列に並べて返して戻された側が(必要であれば instansof で型チェック
してから)値を受け取ればいい。
というか、そんなもんは標準になってないだけで多分誰かもう作ってるだろうな。
569:デフォルトの名無しさん
17/11/11 14:51:04.43 cTWJmMx0.net
あ。Scanner の findInLine() があったか。
570:デフォルトの名無しさん
17/11/11 15:07:25.99 q33W9Eq8.net
んなもん誰も使わねーよと思ったがJava9でrepl追加されたしな、ありかもしれない(手のひら返し
571:デフォルトの名無しさん
17/11/11 16:49:44.72 mUpupxIk.net
プログラミング初心者です
以前までCを学習しており苦Cを一通り終えました
そしてJavaを始めようと思ったんですがVS2017でのJavaのインストールがわかりません
スレチでしょうか?
それとおすすめの解説サイトを教えてもらえれば光栄です
572:デフォルトの名無しさん
17/11/11 16:53:34.89 tTK3UjSB.net
visual Jはもう何十年も前に終わったが?
573:デフォルトの名無しさん
17/11/11 17:33:42.50 Lc3pPUB/.net
>>559
既に scanf() なんて個人で勝手に作ったのが世界中に溢れかえっていてちょっとクグれば何万箇所もダウンロードサイトが出てくる、
と思ったら一件も出てこなくて世界中Javaでscanf()と同じようなないのかという質問だらけ。どうやら今までに作ったやつは居ないか物凄く少ないようだ。
これはチャンスだ。
初心者向けのお題としても良いかも知れん。
574:デフォルトの名無しさん
17/11/11 18:06:51.35 Kl6g3F68.net
>>560
統合開発環境はVSだけじゃないんだから少しは調べてみてはどうだろう?
575:デフォルトの名無しさん
17/11/11 18:53:02.06 0Zx9tY2B.net
あのーJava9とかでたみたいだけどいろいろ見てたらいまだに現場はJava7ですとかいうのをみました
ほんとのところはどうなの?
新しいJava9とかつかってる人はいないの?
576:デフォルトの名無しさん
17/11/11 20:31:16.85 d+WjX2lt.net
新プロジェクトが始まってJavaのバージョンが6から7になったぞ
やったー!
577:デフォルトの名無しさん
17/11/11 22:52:37.84 EECkPVkZ.net
害☆悪
578:デフォルトの名無しさん
17/11/11 23:01:21.79 3tqm8fVd.net
>>555
JSRみたいなの見てると、Java界は大きな機能入れづらい風土なんだろなーって印象はあるわ
外部の誰かが楽になるものを書いたら似たようなのが次のJavaSEなりEEに入る感じで、後追い
EEに関してはEclipse移管で開発速度上がるんだろうか? Java MVCが結局おしゃかなのは残念だ
579:デフォルトの名無しさん
17/11/12 02:29:11.67 0YSprajH.net
>>564
うちの会社は古いプログラムでは1.1で、新しいやつは1.6使ってるよ。
なんでバージョンアップしないのかというと、既に膨大な量が作られていて検証するのが大変だから。
まあその内またJavaで新しいの作るかも知れないけど、その時はその時のバージョンで作ると思う。
しかし年月が経ってJavaのバージョンが上がってもそのプログラムに対してはそのバージョンのJavaを使い続けると思う。
業務用のプログラムはだいたいそんなもんだ。一度動いたものをそう簡単には変えないんだ。
変えて動かなくなったら損失になるからね。金と信用が掛かってるから物凄く保守的なの。
580:デフォルトの名無しさん
17/11/12 02:37:09.86 dfp1zEFU.net
COBOLとか.docや.xlsが未だに生き残ってる理由
581:デフォルトの名無しさん
17/11/12 03:49:09.64 DpCGzFcJ.net
逆にバージョンアップするたびに変えてたら
莫大な更新費用が掛かるのは明白だからな
582:デフォルトの名無しさん
17/11/12 08:32:33.39 G8Pw/Luh.net
>>568
くわしくありがとー
583:デフォルトの名無しさん
17/11/12 14:52:06.17 GpB3XqQ3.net
サポート切れのシステムを使うと、
セキュリティーホールがあるから、顧客から損害賠償請求される
584:デフォルトの名無しさん
17/11/12 15:01:18.14 /VKzDrV0.net
サポートが切れると穴が空くというわけじゃないがな。穴があるとすれば最初から空いているもの。
そういう意味では新しすぎるものよりある程度枯れたバージョンの方が安全だったりする。
どっちにしても、サポートが切れてもリプレースせずに使い続けるのは顧客の責任だわな。
585:デフォルトの名無しさん
17/11/12 15:36:57.76 j0JK3XOe.net
バージョンアップなんて簡単でしょ
テスト整備してないのかな
586:デフォルトの名無しさん
17/11/12 15:52:30.64 PPWufhUc.net
>>574
そうだね。言うのは簡単かな。
587:
17/11/12 16:59:34.52 8BlcDgq9.net
>>546-547
俺の名をかたって書き込んでじゃねーぞボケが
他の方、失礼しました。
588:デフォルトの名無しさん
17/11/12 17:32:51.05 52C+Ep3W.net
>>573
空いた穴が塞がれないのが問題なんだろアホか
589:デフォルトの名無しさん
17/11/12 17:42:04.33 /IhaJnpm.net
若干スレチで板違いですがJavaFXでゲームを作ってます
Timelineでゲームループ作って0.何秒ごとにループを回してキーボード方向他入力→処理→画面描画をやる、みたいなの守って作ってみたのですが
標準のListViewみたいなのを持ち物選択とかに使おうとするとキーボード入力→描画を1ループに収めたりするのが困難または苦痛になってきました
もしかしてゲームループみたいなものと標準の単独操作可能なコントロールコンポーネントは相性悪いのでしょうか
ゲームループを使うと決めたらCanvasに表もボタンも一覧も全部自前で絵として描いて全主導権を得るような感じじゃないとよくないのでしょうか
590:デフォルトの名無しさん
17/11/12 18:01:31.05 +Z7KFjJF.net
>>576
◆が◇になるから皆もわかると思うよ
591:デフォルトの名無しさん
17/11/12 18:03:49.92 dvIcUwwY.net
>>569
以前 .JXW という拡張子のファイルを見つけて、調べたら一太郎のファイルだったことが判明。
592:デフォルトの名無しさん
17/11/12 18:07:09.44 dvIcUwwY.net
>>578
スレッド使ってないの?
593:デフォルトの名無しさん
17/11/12 18:36:35.39 /IhaJnpm.net
>>581
いや特には
描画が終わってから次のフレームに行くことさえ守られてればいいんだろうなと思って
だからイベントリスナーはSceneにキーボード一つだけだしプロパティ同士のbindによる即時反映も使えないっぽいのでお互いがとっても遠いです
594:デフォルトの名無しさん
17/11/12 20:19:49.04 MJJ1XJCL.net
>>573
新しいバージョンで塞がれ既知となったセキュリティホールが
サポート終わったバージョンではそのままかもよ
595:デフォルトの名無しさん
17/11/12 20:25:10.79 PPWufhUc.net
セキュリティホールごときにびびってんじゃねえよ
男ならもっと大きく構えてろ
596:デフォルトの名無しさん
17/11/12 22:52:51.63 OjUQAGRR.net
外向けの案件なんてまずほとんどないんだから
セキュリティホールあろうが何だろうが全く問題ない
strutsですら現役なんだからな
597:デフォルトの名無しさん
17/11/12 22:54:47.68 CLpxq670.net
過去の技術にしがみつく技術者のことは芸能人と呼ぶ
598:デフォルトの名無しさん
17/11/13 00:26:21.18 x22VT2Cx.net
>>578
だから完成したゲームはプレーンな機能を駆使して複雑に組み上げた俺俺フレームワーク+データになる
ビジネスフォームやレイアウトノード(かなり罠)とゲームの画面制御の考え方が相性悪いのもその通り
勉強にすらならんので、ゲーム作るならJavaFX以外、JavaFX学ぶならゲーム以外、をお勧めするよ
599:デフォルトの名無しさん
17/11/13 01:54:41.58 zqq3IZFf.net
>>578
なんでJavaでゲーム制作が少なかったかっていうと
Javaは業務アプリ作るのに使うことが多いから
リアルタイムのGUIをあんま想定してない
一方C#はJavaに似てるけど
MSがゲーム(本体)作ってるから
GUIライブラリで差が付く
600:デフォルトの名無しさん
17/11/13 06:15:48.65 meU8fNdA.net
JavaでゲームだとLWJGLやjMonkeyEngineやlibgdxなど
ライブラリやフレームワークがいくつもあるみたいだね
どのみち応答速度や描画更新を考える必要があるから
JavaFXで作ろうとするとすぐ限界になると思う
601:デフォルトの名無しさん
17/11/13 08:03:21.61 Mz30uZh8.net
なるほど
602:デフォルトの名無しさん
17/11/13 08:08:58.44 OHcpKwzL.net
あるwebから読み込んだhtml内の改行コードに、「0x0A」が含まれていて
windows環境ではこの改行を正規表現での置換ができないっぽいんだが
対処方法おしえて
603:デフォルトの名無しさん
17/11/13 08:23:57.23 x22VT2Cx.net
別に高速描画でなければならないゲームだけではないから作れるゲームジャンルは少なくはないのだが
使ったのはCanvasとImageとTextとTimelineだけだったみたいな「JavaFXのメリットって何だったっけ?」というオチになる
どうせなら>>589が挙げてるようなOpenGLとかにもっと近いライブラリがお勧めだ
困ったことに話題のKotlinでも同じ問題があって、新規さんが注目しそうなゲーム関連が標準ライブラリで超苦手という…
まあ、ゲーム製作なんてそんなもんだということで
604:デフォルトの名無しさん
17/11/13 08:38:26.56 xZ3UOIq3.net
>>591
正規表現で変換すればいいの?
s/\x0a// で空になるんじゃないの?
(""の中では \ は \\ な)
605:デフォルトの名無しさん
17/11/13 09:01:10.83 meU8fNdA.net
>>591
LINE_SEPARATOR_PATTERNで検索すると目当ての正規表現がScanner.javaの中にみつかる
参考にしながら自前で用意しなおすとか
606:デフォルトの名無しさん
17/11/14 05:59:06.28 hziL3Fzo.net
正規表現て\r→0x0d \n→0x0aにヒットするんじゃなかと?
607:デフォルトの名無しさん
17/11/14 09:43:03.58 9B++yybF.net
>>595
Javaだとそれ固定だったっけ?
だったらそれで良い。
608:デフォルトの名無しさん
17/11/15 02:21:01.57 edbITJRa.net
>>591
その質問、どういう状況なのかもうちょっと詳しく書いてみて。
何をやりたくて自分では何をやりそしてどのようにうまく行かなかったのか?
609:デフォルトの名無しさん
17/11/15 13:53:38.02 PbfEzeAG.net
Javaで実戦積むにはやっぱりプログラマーとして就業するしかないかな?
610:デフォルトの名無しさん
17/11/15 14:49:56.29 lFcBndcM.net
Javaのコレクションについて詳しく解説している本はありますか?
実装でどのようなデータ構造が使われているのか知りたいです。
611:デフォルトの名無しさん
17/11/15 16:57:23.32 MYmTne2b.net
>>599
何を作るのかによる。
612:デフォルトの名無しさん
17/11/15 17:06:22.80 MYmTne2b.net
>>599
スッキリわかるの実践編でも説明されている。
アマゾンでJavaの本を見てる?
業務システムだとArrayListばかりだけど。
613:デフォルトの名無しさん
17/11/15 20:23:09.65 lFcBndcM.net
>>600-601
ありがとうございます。
スッキリわかるの実践編は見ました。
が、実装について詳しく書いていません。
たとえば、TreeSetが赤黒木を使って実装されているとかそういうことを知りたいです。
614:デフォルトの名無しさん
17/11/15 20:30:46.46 VZRlTA/C.net
>>602
『(新)明解 Javaで学ぶアルゴリズムとデータ構造』
でアルゴリズムの基本を押さえれば実用上は問題ない
そうではなくどうしてもJava自体の実装が知りたいなら
Javaのソースコードを自力で読むしかないと思う
615:デフォルトの名無しさん
17/11/15 20:41:33.78 h8srGYM+.net
いつでもオンラインリファレンスとsrc.zipへジャンプできるようにしときなよ
intelliJもeclipseも設定あるよ
616:デフォルトの名無しさん
17/11/15 20:51:38.01 Ia+zHPxc.net
遥か昔、惨舞黒
617:という武人がいた 彼は邪葉という流儀を拓き、人々は目盛管理から(ひとまず)解放された …そこに目を付けたのが親日派を筆頭に持つ悪羅狂である 民明書房刊「こんにちは世界!」より抜粋
618:デフォルトの名無しさん
17/11/15 21:01:01.44 lFcBndcM.net
>>603-604
ありがとうございました。
ソースコードを見られるとは知りませんでした。
619:デフォルトの名無しさん
17/11/15 22:05:53.49 n735hTEH.net
35歳が来てる?
620:デフォルトの名無しさん
17/11/17 14:39:13.24 CqEl0MQ+.net
すみません。
src.zip がパソコンの中に見つかりません。
どこを探せばいいでしょうか?
Javaのダウンロード&インストール時にはデフォルトを選択しています。
621:デフォルトの名無しさん
17/11/17 15:39:43.66 Km51pzYd.net
jdkの方をインストールすると入ってる
URLリンク(www.oracle.com)
622:デフォルトの名無しさん
17/11/17 20:01:51.97 CqEl0MQ+.net
>>609
ありがとうございました。
Eclipseから見られるようになりました。
623:デフォルトの名無しさん
17/11/17 22:41:21.56 iD/s4mHg.net
今使っているjavaの入門書がインナークラスを多用しすぎていて
実務的に使い物にならないのでいい本・・・というか
しっかり1クラスずつ分けて書いてある本が欲しいです。
入門用のサイトでも、インナークラスが大半で
アクションイベントの説明がインナーで書かれてる長すぎるコードで困っています。
どういう本を買う ないしはどういうサイトを参考にすれば良いでしょうか?
624:デフォルトの名無しさん
17/11/17 22:44:17.67 m4E+5Wqt.net
自力でアウタークラスに書き直せ、名前を追加するだけでよいのではないか?
625:デフォルトの名無しさん
17/11/17 23:37:12.15 tGAvpZAK.net
>>611
それな
実は超実用的だぞ
業務で好き勝手にファイルを追加なんてしたら処刑されてしまう
だからファイルを作らずにクラスを作れる内部クラスはありがたい
626:デフォルトの名無しさん
17/11/17 23:38:35.39 aGWwpVlc.net
>>611
それは説明が面倒だからインナークラスになっているのかもしれない。
627:デフォルトの名無しさん
17/11/18 00:01:03.60 aGnQcjwq.net
見やすさ考えたら別のクラスに分ける方がいいと思うんだけどね
入門書の違和感が凄いのは パッケージを使って複数の単純なjavaファイルを組み合わせろって言ってるのにも関わらず
実際にはインナー使いまくって
javaファイル1個で収めてしまってるっていうところかな
勉強にならないっていう
628:デフォルトの名無しさん
17/11/18 00:02:15.17 Do1TQvQk.net
コンパイルしたらクラスファイルがもりもりできてびっくりするやつ
629:デフォルトの名無しさん
17/11/18 00:16:09.94 VuzSnHPO.net
というかそんな入門書見たことないぞ
どれだよ
630:デフォルトの名無しさん
17/11/18 00:48:01.07 MQoVjmCk.net
>>617
イベントハンドラ記述するのにインナークラス多用っつったら十中八九Androidでしょ
631:デフォルトの名無しさん
17/11/18 02:50:58.73 g3/AaDcE.net
泥だけに泥沼、なんつってwww
632:デフォルトの名無しさん
17/11/18 08:26:50.34 ITQZ0us6.net
え?なんて?
633:デフォルトの名無しさん
17/11/18 10:19:54.19 YrZlhbzz.net
>>611
なんで使い物になんないと思うの?
634:デフォルトの名無しさん
17/11/18 10:39:06.66 9qldwfu/.net
TreeSetのソースコードを見てみましたが、Red Black Treeの実装はそこには含まれていませんでした。
たくさんのクラスやインターフェースが関係しているようで、全貌を理解するのは容易ではないみたいですね。
そこで質問なのですが、入門書を読み終わった後に、本格的に勉強するにはどの本を読めばいいのか
教えていただけないでしょうか。
本屋で見てみた結果、どうも日本語のJavaの本はやさしい入門書ばかりのようです。
Javaによるライブラリーの設計の仕方の本のようなものはないでしょうか?