Java初心者のためのスレッドです。
※前スレ
Java入門・初心者質問スレ Part.2
http://echo.2ch.net/test/read.cgi/tech/1478863511/
探検
Java入門・初心者質問スレ Part.3 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/04/04(火) 20:41:11.59ID:y0EcmGB0
371デフォルトの名無しさん
2017/05/15(月) 16:31:44.87ID:+sV7Di0p parseIntじゃだめですかい?
String input = "12345"
try
{
int i = Integer.parseInt(input);
} catch (Exception e) {
}
String input = "12345"
try
{
int i = Integer.parseInt(input);
} catch (Exception e) {
}
372デフォルトの名無しさん
2017/05/15(月) 16:59:39.84ID:LmqNwbQD >>368
入力値 instanceof Stringでおk
入力値 instanceof Stringでおk
373デフォルトの名無しさん
2017/05/15(月) 17:03:33.71ID:LmqNwbQD >>368
間違えたすまん、371のやり方じゃないと
間違えたすまん、371のやり方じゃないと
374デフォルトの名無しさん
2017/05/15(月) 17:11:06.15ID:YV/XJMDJ375デフォルトの名無しさん
2017/05/15(月) 17:36:48.54ID:9QbDhZRz ルークregexを使え
376デフォルトの名無しさん
2017/05/15(月) 18:11:19.72ID:Nyf5aX+C 1文字ずつ正規表現でチェックするとか
377デフォルトの名無しさん
2017/05/15(月) 21:23:38.19ID:94d7jC/v >>366
Hash mapって確かに原理はわかるんだけど、hash関数にキーを通して得られた数値をアドレスにすると、アドレス飛び飛びになってメモリ効率悪くなったりしないのかね
Hash mapって確かに原理はわかるんだけど、hash関数にキーを通して得られた数値をアドレスにすると、アドレス飛び飛びになってメモリ効率悪くなったりしないのかね
378デフォルトの名無しさん
2017/05/15(月) 21:32:58.19ID:iwHegv+w >>377
直接アドレスにしてるわけじゃない
中に連結リストが数個あって得られた数値ごとに範囲分けしてそのリストに振り分けてる
連結リストの長さだったか要素数だったかが敷居値を超えると連結リストの数を増やして再構築する
大体こんな感じで実装されてるからハッシュ値が飛び飛びなのは問題ではない、むしろそうなるように推奨されてたはず
直接アドレスにしてるわけじゃない
中に連結リストが数個あって得られた数値ごとに範囲分けしてそのリストに振り分けてる
連結リストの長さだったか要素数だったかが敷居値を超えると連結リストの数を増やして再構築する
大体こんな感じで実装されてるからハッシュ値が飛び飛びなのは問題ではない、むしろそうなるように推奨されてたはず
379デフォルトの名無しさん
2017/05/15(月) 21:54:17.44ID:tcwc+G1E int n=1;
int[] nums={0,1,2};
nums[0]=n;
n=5;
nums[0]=?
↑
1でいいんだよね…?
int[] nums={0,1,2};
nums[0]=n;
n=5;
nums[0]=?
↑
1でいいんだよね…?
380デフォルトの名無しさん
2017/05/15(月) 22:28:53.11ID:iwHegv+w >>379
せやで、参照を書きかえてるだけだからね
せやで、参照を書きかえてるだけだからね
381デフォルトの名無しさん
2017/05/16(火) 17:39:21.61ID:hRmrFLEJ jar ファイル作ってみたのだが
netbeans上でファイルを実行したらちゃんと動くのにフォルダからそのファイルの場所まで行ってダブルクリックしても何の反応もないのだが
ウインドウがポップアップされるはずなのに何も出てこない、どうして?
それと質問なのだがこの処理を実行したら次はこの処理が実行されるみたいなのって全てメインクラスに書くものなの?
プログラムを動かすにはメインメソッドが必要だって書いてあったんだけどたとえばドラクエで、このどうくつにはいったら今度は洞くつクラスに移るみたいな
そういうのって一つのメインメソッドに書ききれるのかなとか前からすごい疑問だった
すっきりJavaを読み終えた入門者だがもし足りないのなら次に読むべき本とかあったら教えてほしい
文法を理解できたようで、enumクラスっていう新しい用語を使ってみると、どこからそれを呼び出したらいいのかとか全く分からなくなってしまう
例えば、いろいろなゲーム、トランプとかテトリスとか、そういうののソースコードを一から全て解説してくれる本とかあったら助かる
とりあえず実践をしたいのだがどうやって学んだ事を応用していったらいいのか全く分からない
誰か助け船を出してくれ
netbeans上でファイルを実行したらちゃんと動くのにフォルダからそのファイルの場所まで行ってダブルクリックしても何の反応もないのだが
ウインドウがポップアップされるはずなのに何も出てこない、どうして?
それと質問なのだがこの処理を実行したら次はこの処理が実行されるみたいなのって全てメインクラスに書くものなの?
プログラムを動かすにはメインメソッドが必要だって書いてあったんだけどたとえばドラクエで、このどうくつにはいったら今度は洞くつクラスに移るみたいな
そういうのって一つのメインメソッドに書ききれるのかなとか前からすごい疑問だった
すっきりJavaを読み終えた入門者だがもし足りないのなら次に読むべき本とかあったら教えてほしい
文法を理解できたようで、enumクラスっていう新しい用語を使ってみると、どこからそれを呼び出したらいいのかとか全く分からなくなってしまう
例えば、いろいろなゲーム、トランプとかテトリスとか、そういうののソースコードを一から全て解説してくれる本とかあったら助かる
とりあえず実践をしたいのだがどうやって学んだ事を応用していったらいいのか全く分からない
誰か助け船を出してくれ
382デフォルトの名無しさん
2017/05/16(火) 19:20:34.36ID:vjuQQ4tJ >>381
ながい
→ダブルクリック実行はJava関係無くOSでjar拡張子の実行設定してるかどうか
→main()云々は作ってみたほうが理解が早い
CUIでいいからtodoアプリ作ってみ?
1でタスク一覧、2でタスク登録、3でタスク削除の3機能
DBとか無しで、アプリ落としたらタスク全部消えてなくなる感じ
これ作ったらmain()で全部書けるかどうかわかるだろう
ながい
→ダブルクリック実行はJava関係無くOSでjar拡張子の実行設定してるかどうか
→main()云々は作ってみたほうが理解が早い
CUIでいいからtodoアプリ作ってみ?
1でタスク一覧、2でタスク登録、3でタスク削除の3機能
DBとか無しで、アプリ落としたらタスク全部消えてなくなる感じ
これ作ったらmain()で全部書けるかどうかわかるだろう
383デフォルトの名無しさん
2017/05/16(火) 19:57:51.53ID:p+PjrRhB385デフォルトの名無しさん
2017/05/16(火) 21:51:28.05ID:46vWVqfK >>384
しかしゲームのやり方しか書いてなかったりしてw
しかしゲームのやり方しか書いてなかったりしてw
386デフォルトの名無しさん
2017/05/16(火) 22:37:54.81ID:wKnc2Dey >381
jarのくだり以外は何言ってるのか全くわからない
大丈夫かお前?
jarのくだり以外は何言ってるのか全くわからない
大丈夫かお前?
387デフォルトの名無しさん
2017/05/16(火) 22:47:07.51ID:enwqrWLT 大学のjavaの授業で指定されたエディタがメモ帳に毛が生えたようなやつで、スクリプト言語しか触ったことない身には辛い
javaはIDEで書くものだと聞いてたんだけど、強い補完機能使わないほうが身につくものなの?
javaはIDEで書くものだと聞いてたんだけど、強い補完機能使わないほうが身につくものなの?
388デフォルトの名無しさん
2017/05/16(火) 22:50:02.85ID:wKnc2Dey 身につかないっていうかメモ帳は時間の無駄
389デフォルトの名無しさん
2017/05/16(火) 23:08:27.75ID:hRmrFLEJ それと、APIリファレンスの見方が分からないのだが
Arrayのなかのメソッドのequalsで
public static boolean equals(int[] a,int[] a2)
って書いてあったから引数を二つ書くのかなって思って
equals(配列A,配列b);
って書いてみたらエラーになって
配列A.euqals(配列B);にしたらエラーが出なくなった
メソッドってクラスの「インスタンス変数.メソッド」って書くのか?とか考えたけどそのあとの
sort()を見てみると普通に
sort(配列);でやったら実行できた
調べ方っていうかリファレンスの読み方がわからない
あとこれはAllayListのサマリーのやつだが
boolean add(E e)
リストの最後に、指定された要素を追加します
これの修飾子と型がbooleanだったのだがなぜvoidじゃないの?
true,falseの要素がないと思うのだが
Arrayのなかのメソッドのequalsで
public static boolean equals(int[] a,int[] a2)
って書いてあったから引数を二つ書くのかなって思って
equals(配列A,配列b);
って書いてみたらエラーになって
配列A.euqals(配列B);にしたらエラーが出なくなった
メソッドってクラスの「インスタンス変数.メソッド」って書くのか?とか考えたけどそのあとの
sort()を見てみると普通に
sort(配列);でやったら実行できた
調べ方っていうかリファレンスの読み方がわからない
あとこれはAllayListのサマリーのやつだが
boolean add(E e)
リストの最後に、指定された要素を追加します
これの修飾子と型がbooleanだったのだがなぜvoidじゃないの?
true,falseの要素がないと思うのだが
390デフォルトの名無しさん
2017/05/16(火) 23:27:55.96ID:wKnc2Dey ひっでぇ文だな・・
学生かな
学生かな
391デフォルトの名無しさん
2017/05/16(火) 23:53:20.25ID:hRmrFLEJ >>382
Jdkのbinファイルを設定するって書いてあったんだけどjdkファイルの中にbinが見つからない・・・
Jdkのbinファイルを設定するって書いてあったんだけどjdkファイルの中にbinが見つからない・・・
392デフォルトの名無しさん
2017/05/17(水) 00:11:58.28ID:a2t4m9UZ 配列はややこしいね
Arrays.equals(a1, a2)とa1.equals(a2)は別物だよ
後者は参照先の比較って言ったらそこら辺はスッキリで詳しく書いてるから分かると思うけど
あと戻り値は必ず変数に入れなきゃいけない訳じゃない
今回のに関してはAllayListの親クラスのCollectionがaddでbooleanの戻り値を返すってなってるからそうなってるけどAllayListでは多分必ずtrue返すようになってる?分かんないけど
Setとかでbooleanの戻り値使いたいからそうなってるんだろうね
Arrays.equals(a1, a2)とa1.equals(a2)は別物だよ
後者は参照先の比較って言ったらそこら辺はスッキリで詳しく書いてるから分かると思うけど
あと戻り値は必ず変数に入れなきゃいけない訳じゃない
今回のに関してはAllayListの親クラスのCollectionがaddでbooleanの戻り値を返すってなってるからそうなってるけどAllayListでは多分必ずtrue返すようになってる?分かんないけど
Setとかでbooleanの戻り値使いたいからそうなってるんだろうね
393デフォルトの名無しさん
2017/05/17(水) 00:19:21.93ID:Cj0bDaOf394デフォルトの名無しさん
2017/05/17(水) 00:21:17.17ID:EKDDBUyo Javaのリファレンスはすげえ読み辛いのが辛い所だな
実際の挙動書いてないし
実際の挙動書いてないし
395デフォルトの名無しさん
2017/05/17(水) 00:45:10.55ID:aIm9uZNt JavaScriptやPHPのリファレンス見てると何でメジャーどころのJavaのリファレンスがこのレベルなんだ…って思っちゃう
396デフォルトの名無しさん
2017/05/17(水) 00:47:35.12ID:EKDDBUyo 各クラスの挙動を知りたいなら
個人ブログかQiita辺りを探した方が早いっていう何とも言えない現状
個人ブログかQiita辺りを探した方が早いっていう何とも言えない現状
397デフォルトの名無しさん
2017/05/17(水) 01:09:07.24ID:KDFx7HS2 リファレンスを見た後、サンプル・例などで検索すれば?
398デフォルトの名無しさん
2017/05/17(水) 02:16:15.58ID:PX1bjgD6 Locale locale = new Builder()
.setLanguage("ja")
.setRegion("JP")
.setScript("Latn")
.setExtension(Locale.UNICODE_LOCALE_EXTENSION, "ca-japanese")
.build();
普通は
インスタンス名.メソッド名()などのようにドットでつなげると思うのですが
上のようなソースは、なんていう機能なのでしょうか。
ググりたいので、キーワードを知りたいです。
.setLanguage("ja")
.setRegion("JP")
.setScript("Latn")
.setExtension(Locale.UNICODE_LOCALE_EXTENSION, "ca-japanese")
.build();
普通は
インスタンス名.メソッド名()などのようにドットでつなげると思うのですが
上のようなソースは、なんていう機能なのでしょうか。
ググりたいので、キーワードを知りたいです。
399デフォルトの名無しさん
2017/05/17(水) 02:24:06.64ID:fdwvTzQk スーパーバイリンガルダブルスタンダードジェネラルアクセッサ記法です
400デフォルトの名無しさん
2017/05/17(水) 03:04:38.91ID:KDFx7HS2 JavaScript, jQuery などで、よく使う、メソッドチェーン
a().b().c()
メソッドを、this を返すように作っておいて、つなげていく
a().b().c()
メソッドを、this を返すように作っておいて、つなげていく
401デフォルトの名無しさん
2017/05/17(水) 03:55:23.34ID:rtSwMeCb HashMapの中身をfor文で取り出す処理のメカニズムがよく分かりません。
どなたか説明してもらえませんか?
@キーの一覧を取得
A各キーについて、対応する値を取得
と書いてはあるのですが…。
どなたか説明してもらえませんか?
@キーの一覧を取得
A各キーについて、対応する値を取得
と書いてはあるのですが…。
402デフォルトの名無しさん
2017/05/17(水) 04:07:19.23ID:gPdRTvOW403デフォルトの名無しさん
2017/05/17(水) 05:09:57.57ID:Cj0bDaOf スッキリジャバの入門編も読めばさらに理解が深まるかな?
404デフォルトの名無しさん
2017/05/17(水) 05:10:53.79ID:Cj0bDaOf 間違い、実践編
405デフォルトの名無しさん
2017/05/17(水) 07:04:43.87ID:oji8uaFL javaリファレンスはカタコトの日本語だからまだしも、
androidなんて英語だから意味不明
androidなんて英語だから意味不明
406デフォルトの名無しさん
2017/05/17(水) 08:22:36.48ID:+tyn5AAd407デフォルトの名無しさん
2017/05/17(水) 11:35:36.57ID:Hln6Xg1O ファイル開くときにcloseかtry-with-resourcesを忘れないってのはわかったんですが、
BufferedReaderとかScannerで標準入力からテキストを読み込むときもこれは必要ですか?
BufferedReaderとかScannerで標準入力からテキストを読み込むときもこれは必要ですか?
408デフォルトの名無しさん
2017/05/17(水) 12:12:09.07ID:+tyn5AAd409デフォルトの名無しさん
2017/05/17(水) 12:24:57.57ID:+tyn5AAd 一応、System.inの正体はこれな
new InputStream(new FileInputStream(FileDescriptor.in))
new InputStream(new FileInputStream(FileDescriptor.in))
410デフォルトの名無しさん
2017/05/17(水) 12:32:10.78ID:lfsZhYIw >>407
不要だけどあってもいいんじゃね?
不要だけどあってもいいんじゃね?
411デフォルトの名無しさん
2017/05/17(水) 12:51:21.54ID:vBWq/bhA 無しだろ
最初から開いてるものだし
自分で開いたものなら閉じるべきだが
他人が開いたものを閉じるのは責務的に違うだろ
最初から開いてるものだし
自分で開いたものなら閉じるべきだが
他人が開いたものを閉じるのは責務的に違うだろ
412デフォルトの名無しさん
2017/05/17(水) 13:18:19.80ID:Cj0bDaOf 自分の好きな画像をguiで使うにはどうしたらいいの?
413デフォルトの名無しさん
2017/05/17(水) 13:21:39.19ID:fdwvTzQk 好きな画像をGUIで読み込めばいい
415デフォルトの名無しさん
2017/05/17(水) 23:44:07.57ID:aIm9uZNt int[] s = 条件式 ? {0, 1} : {1, 0};
って書いたら弾かれたんですがJavaは三項演算子を使っての配列の初期化は出来ないということですかね?
って書いたら弾かれたんですがJavaは三項演算子を使っての配列の初期化は出来ないということですかね?
416デフォルトの名無しさん
2017/05/18(木) 00:37:28.69ID:QINyhTse オラクルで働きたいんだが雇ってくれんかな
java初心者だが素晴らしい言語だと思うんで
java初心者だが素晴らしい言語だと思うんで
417デフォルトの名無しさん
2017/05/18(木) 00:43:40.92ID:mIgvPrGJ OpenJDKに貢献するのが一番の近道だと思うが
オラクルはそんなにいい会社じゃないぞ多分
オラクルはそんなにいい会社じゃないぞ多分
418デフォルトの名無しさん
2017/05/18(木) 00:53:33.86ID:gS0Z1nN7 >>415
int[] s = 条件式 ? new int[]{0, 1} : new int[]{1, 0};
int[] s = 条件式 ? new int[]{0, 1} : new int[]{1, 0};
419デフォルトの名無しさん
2017/05/18(木) 07:23:18.00ID:mhJy8/8/ ArrayListを作るときよく入門書だと
List<String> list = new ArrayList<String>();
と書いてありますが、将来的にListとして扱う予定が全くない場合でもこう書くものですか?
とにかく広く受けとけばいいなら極論ジェネリクスも要らないですよね?
ArrayListで必要十分なところをListと書くのはどうも型安全から外れてる気がして抵抗があるのですが
List<String> list = new ArrayList<String>();
と書いてありますが、将来的にListとして扱う予定が全くない場合でもこう書くものですか?
とにかく広く受けとけばいいなら極論ジェネリクスも要らないですよね?
ArrayListで必要十分なところをListと書くのはどうも型安全から外れてる気がして抵抗があるのですが
420デフォルトの名無しさん
2017/05/18(木) 07:47:59.91ID:hMdHD0v3 Listで必要十分
421デフォルトの名無しさん
2017/05/18(木) 07:58:02.36ID:DonT+oLB >>419
ArrayListで必要十分ってことはArrayListクラスで定義されたものを使ってるんだからListで書いたらダメだろw
あとArrayListをListとして使うことがないってのはありえない
なぜならArrayListはListを実装してるから
ArrayListで必要十分ってことはArrayListクラスで定義されたものを使ってるんだからListで書いたらダメだろw
あとArrayListをListとして使うことがないってのはありえない
なぜならArrayListはListを実装してるから
422デフォルトの名無しさん
2017/05/18(木) 08:25:23.87ID:hXrMTvib >>421
それはそうですね、すみません、言い方を間違えました
ArrayList固有の機能を使わない前提でないとこの問いは成り立たないですね
ただ拡張性を意図してないときにインターフェースで宣言するメリットがあるのだろうかと思った次第です
それはそうですね、すみません、言い方を間違えました
ArrayList固有の機能を使わない前提でないとこの問いは成り立たないですね
ただ拡張性を意図してないときにインターフェースで宣言するメリットがあるのだろうかと思った次第です
423デフォルトの名無しさん
2017/05/18(木) 08:55:42.22ID:DonT+oLB >>422
なぜ具象クラスではなくインタフェースなのかってことなら、英単語の意味のとおりインタフェースだから
この話が特に問題になりやすいのはメソッドシグネチャに使われるときと、クラスの特性を利用するときなんで、
メソッド内部のローカル変数として宣言/定義するだけで外部に影響なく使うならぶっちゃけ何でもいいよ
逆に言うと、影響が出るなら(特に)最上位のインタフェースを使ってはいけない
Map<String, String> m1() { return new WeakHashMap(省略); }
・このm1はヤバい。戻り値を普通のMapのように使ってると、GCでいきなりエントリーが消えたりする
・戻り値の型をWeakHashMapにするべき
Set<String> s1() { return new TreeSet<String>(); }
・これもヤバい。戻り値にset()すると勝手にソートされる
・戻り値の型をSortedSet(インタフェース)にすべき
なぜ具象クラスではなくインタフェースなのかってことなら、英単語の意味のとおりインタフェースだから
この話が特に問題になりやすいのはメソッドシグネチャに使われるときと、クラスの特性を利用するときなんで、
メソッド内部のローカル変数として宣言/定義するだけで外部に影響なく使うならぶっちゃけ何でもいいよ
逆に言うと、影響が出るなら(特に)最上位のインタフェースを使ってはいけない
Map<String, String> m1() { return new WeakHashMap(省略); }
・このm1はヤバい。戻り値を普通のMapのように使ってると、GCでいきなりエントリーが消えたりする
・戻り値の型をWeakHashMapにするべき
Set<String> s1() { return new TreeSet<String>(); }
・これもヤバい。戻り値にset()すると勝手にソートされる
・戻り値の型をSortedSet(インタフェース)にすべき
424デフォルトの名無しさん
2017/05/18(木) 08:57:08.36ID:X6c7i21D 汎用性も拡張性も皆無の個人レベルのゴミソースなら
いくらでもArrayListで型宣言すればいい
いくらでもArrayListで型宣言すればいい
425デフォルトの名無しさん
2017/05/18(木) 08:59:24.71ID:DonT+oLB 途中送信になっちゃった
上のような例外的なケースを除き、基本的な使い方しかしていないなら最上位のインタフェースで宣言すべき
それはコードを読む人に変なメソッドやクラス特性を使っていないから安心して使えるというメッセージになる
#バグとかはまた別の視点だよ?
上のような例外的なケースを除き、基本的な使い方しかしていないなら最上位のインタフェースで宣言すべき
それはコードを読む人に変なメソッドやクラス特性を使っていないから安心して使えるというメッセージになる
#バグとかはまた別の視点だよ?
426デフォルトの名無しさん
2017/05/18(木) 12:35:06.27ID:hXrMTvib >>425
詳しくありがとうございます
出来る限り最上位のインターフェースで宣言した方が安心感があるのですね
例えば(あまりないと思いますが)addとforEachしか使わないなら
ListよりCollectionで宣言した方がいいということですかね
インターフェースだけでなくクラスも同様に、出来る限りObjectクラスに近い方がいいのでしょうか
例えばListに数字を入れるならList<Integer>よりList<Number>の方がいいですか?
詳しくありがとうございます
出来る限り最上位のインターフェースで宣言した方が安心感があるのですね
例えば(あまりないと思いますが)addとforEachしか使わないなら
ListよりCollectionで宣言した方がいいということですかね
インターフェースだけでなくクラスも同様に、出来る限りObjectクラスに近い方がいいのでしょうか
例えばListに数字を入れるならList<Integer>よりList<Number>の方がいいですか?
427デフォルトの名無しさん
2017/05/18(木) 13:06:42.91ID:DonT+oLB428デフォルトの名無しさん
2017/05/18(木) 13:26:08.84ID:hChOTcwf コードによるんじゃ
429デフォルトの名無しさん
2017/05/18(木) 13:27:02.92ID:hChOTcwf >>423
setは順番を保証しないから良くないか?
setは順番を保証しないから良くないか?
430デフォルトの名無しさん
2017/05/18(木) 13:30:10.52ID:hChOTcwf >>419
.netはlistが実装を持ってるからその指摘は的を得ていると思う
.netはlistが実装を持ってるからその指摘は的を得ていると思う
431デフォルトの名無しさん
2017/05/18(木) 13:30:43.70ID:7OpOK0t2 なんで.NETの話してんの?
432デフォルトの名無しさん
2017/05/18(木) 14:12:31.44ID:QINyhTse ArrayList<String> list = new ArrayList<>();
普通に上記のような書き方でも大丈夫ですか?
どう違うのかな…糞初心者が便乗で失礼しました。
普通に上記のような書き方でも大丈夫ですか?
どう違うのかな…糞初心者が便乗で失礼しました。
433デフォルトの名無しさん
2017/05/18(木) 14:42:56.14ID:DonT+oLB >>429
setの例は確かにまずかったね
実際やってみるとわかるけどさ、SortedSetに突っ込むものはComparable実装してないと実行時例外起きるのよ
Stringは実装してるからいいけど例えば自作のComparable実装してないクラスを突っ込むSetだと死ぬ
setの例は確かにまずかったね
実際やってみるとわかるけどさ、SortedSetに突っ込むものはComparable実装してないと実行時例外起きるのよ
Stringは実装してるからいいけど例えば自作のComparable実装してないクラスを突っ込むSetだと死ぬ
434デフォルトの名無しさん
2017/05/18(木) 16:08:06.15ID:YsT8kXyi435デフォルトの名無しさん
2017/05/18(木) 17:27:32.89ID:X6c7i21D 中途半端に理解力の悪い馬鹿だね君は
特定のインターフェースを受け皿にするのは意味があるからやってるんだから
君のような馬鹿は凡例に倣っておまじないのように真似して使ってればいいんだよ
特定のインターフェースを受け皿にするのは意味があるからやってるんだから
君のような馬鹿は凡例に倣っておまじないのように真似して使ってればいいんだよ
436デフォルトの名無しさん
2017/05/18(木) 18:04:44.47ID:pcJKb7uP >>431
ベタージャバ
ベタージャバ
437デフォルトの名無しさん
2017/05/18(木) 18:07:21.85ID:pcJKb7uP >>435
listは意味なくない?
listは意味なくない?
438デフォルトの名無しさん
2017/05/18(木) 18:10:00.52ID:pcJKb7uP >>432
おけ
おけ
439デフォルトの名無しさん
2017/05/18(木) 18:11:30.15ID:pcJKb7uP >>433
なるほどねー
なるほどねー
440デフォルトの名無しさん
2017/05/18(木) 19:53:57.62ID:YsT8kXyi441デフォルトの名無しさん
2017/05/18(木) 20:45:03.53ID:41k9t0yi paizaってサイトいいですか?
442デフォルトの名無しさん
2017/05/18(木) 21:28:09.31ID:6GwfJscL >>441
34歳には向いてません
34歳には向いてません
443デフォルトの名無しさん
2017/05/18(木) 21:32:18.96ID:mhJy8/8/ paizaっつーか競技プログラミングにJavaは相性悪くないですかね?
444441
2017/05/18(木) 23:50:40.17ID:41k9t0yi445デフォルトの名無しさん
2017/05/18(木) 23:56:50.39ID:GHcWpog8 >>444
34歳板って何?
スレチにつき誘導
【CodeIQ】コーディング転職 2社目【paiza】 [無断転載禁止]©2ch.net
http://tamae.2ch.net/test/read.cgi/prog/1495051565/
34歳板って何?
スレチにつき誘導
【CodeIQ】コーディング転職 2社目【paiza】 [無断転載禁止]©2ch.net
http://tamae.2ch.net/test/read.cgi/prog/1495051565/
447デフォルトの名無しさん
2017/05/19(金) 04:01:57.36ID:7cLMvP3Z 画像を読み込み、それにスタンプを張り付けて保存するGUIツールを作っています。
JFrameの左側にはコントローラーとして動作するJPanel、右側には読み込んだ画像とスタンプを表示するJPanelを配置しています。
コントローラーの操作によって画像を新しく読み込むたびに右側のJPanelを破棄し、新しいJPanelを生成するようにしたいのですが
これを実現するのに今考えているのは、コントローラーのインスタンスのフィールドにJFrameへの参照を格納しておき
コントローラーのイベントリスナーで新規読み込みを受け取ったら、JFrameからJPanelをremove()、ついでnewする、というものです。
JFrameの左側にはコントローラーとして動作するJPanel、右側には読み込んだ画像とスタンプを表示するJPanelを配置しています。
コントローラーの操作によって画像を新しく読み込むたびに右側のJPanelを破棄し、新しいJPanelを生成するようにしたいのですが
これを実現するのに今考えているのは、コントローラーのインスタンスのフィールドにJFrameへの参照を格納しておき
コントローラーのイベントリスナーで新規読み込みを受け取ったら、JFrameからJPanelをremove()、ついでnewする、というものです。
448デフォルトの名無しさん
2017/05/19(金) 04:05:15.30ID:7cLMvP3Z 続きです。
JPanelを再生成するためだけに3つのクラスをまたぐ、というのがどうもスマートに思えません。
可読性やメンテナンス性も悪い方法だと思うのですが、これ以外に良い方法が思いつきません。
もっと良い方法があるのか、それともそもそもの構造が悪いのか、どうかアドバイスをお願いします。
JPanelを再生成するためだけに3つのクラスをまたぐ、というのがどうもスマートに思えません。
可読性やメンテナンス性も悪い方法だと思うのですが、これ以外に良い方法が思いつきません。
もっと良い方法があるのか、それともそもそもの構造が悪いのか、どうかアドバイスをお願いします。
449デフォルトの名無しさん
2017/05/19(金) 04:40:07.52ID:Yy4p2hUQ >画像を新しく読み込むたびに、
>右側のJPanelを破棄し、新しいJPanelを生成する
一々、パネルの破棄・生成を繰り返さなくても、
画像を再読み込みすれば、良いのでは?
has-a だろ。
フレームは、複数のウィジェット(UI コンポーネント)を持つ
フレームの作成(JFrameクラス)
https://www.javadrive.jp/tutorial/jframe/
>右側のJPanelを破棄し、新しいJPanelを生成する
一々、パネルの破棄・生成を繰り返さなくても、
画像を再読み込みすれば、良いのでは?
has-a だろ。
フレームは、複数のウィジェット(UI コンポーネント)を持つ
フレームの作成(JFrameクラス)
https://www.javadrive.jp/tutorial/jframe/
450デフォルトの名無しさん
2017/05/19(金) 04:58:05.99ID:7cLMvP3Z ありがとうございます。
右側のパネルは、JPanelを継承したクラスのインスタンスで、読み込んだ画像の表示やスタンプの情報の保持を行っています。
画像を新しく読み込む場合、それらの情報のクリアもする必要があるので、パネル自体を破棄し再生成したほうが楽ではないかと思ったのです。
それよりも、すべての情報をクリアするメソッドを用意しておき、画像読み込みと同時にそれを呼ぶようにすべきでしょうか?
右側のパネルは、JPanelを継承したクラスのインスタンスで、読み込んだ画像の表示やスタンプの情報の保持を行っています。
画像を新しく読み込む場合、それらの情報のクリアもする必要があるので、パネル自体を破棄し再生成したほうが楽ではないかと思ったのです。
それよりも、すべての情報をクリアするメソッドを用意しておき、画像読み込みと同時にそれを呼ぶようにすべきでしょうか?
451デフォルトの名無しさん
2017/05/19(金) 06:24:16.60ID:Yy4p2hUQ 厳密に言えば、パネルの破棄・生成を繰り返すのは、
GCの仕事が増えるだけで、無駄だけど、
回数が少ないのなら、やりやすいようにすればいい
GCの仕事が増えるだけで、無駄だけど、
回数が少ないのなら、やりやすいようにすればいい
452デフォルトの名無しさん
2017/05/19(金) 07:19:36.73ID:TEDPcFuO453デフォルトの名無しさん
2017/05/19(金) 07:56:58.28ID:QxcdFIRu 3つのクラスをまたぐっていうのは、左JPanel内で
this.jFrame.rightJPanel = new RightJPanel()
みたいなことをしてるのかな?
JFrameにreadNewImage()を作って右JPanelのnewとかの処理はそこでして
左JPanelはreadNewImage()を呼び出すだけでってのはどう?
this.jFrame.rightJPanel = new RightJPanel()
みたいなことをしてるのかな?
JFrameにreadNewImage()を作って右JPanelのnewとかの処理はそこでして
左JPanelはreadNewImage()を呼び出すだけでってのはどう?
454デフォルトの名無しさん
2017/05/19(金) 08:37:45.48ID:Yy4p2hUQ 左右のパネルが、相互に依存したら、ダメ
親 → 左の子
親 → 右の子
あくまでも、親から働きかけるようにする。
つまり、階層構造を浅くする
そうしないといずれ、スパゲッティ・泥団子のように密結合し、手に負えなくなる。
設計の基本は、疎結合
親 → 左の子
親 → 右の子
あくまでも、親から働きかけるようにする。
つまり、階層構造を浅くする
そうしないといずれ、スパゲッティ・泥団子のように密結合し、手に負えなくなる。
設計の基本は、疎結合
455デフォルトの名無しさん
2017/05/19(金) 09:09:28.77ID:bDipVMhT 極力一元管理
456デフォルトの名無しさん
2017/05/19(金) 09:59:04.74ID:UcTeaZgR 上司を通さず別部署に仕事頼んじゃうのはまずいみたいな話か
457デフォルトの名無しさん
2017/05/19(金) 15:02:46.01ID:7cLMvP3Z458デフォルトの名無しさん
2017/05/19(金) 15:27:47.14ID:V7EPUvXw Javaだけで2chのスレ・レス取得、スレに書き込みできるのでしょうか?
459デフォルトの名無しさん
2017/05/19(金) 15:39:32.26ID:gmSWrJbX Javaだけで作られた専ブラが既にある、後は分かるな?
460デフォルトの名無しさん
2017/05/19(金) 15:53:27.22ID:TEDPcFuO >>457
そういうのはパネルのフィールドにばらまいてはダメなやつだよ
パネルは入れ物であって中身は中身でまとめて別に管理しないと
ついでに言うと、読み込んだ画像とスタンプは同じもの
読み込んだ画像って、ユーザが選択して重なり具合が常に最背面になってるスタンプだろ?
パネルにはList<ImageInfo>みたいなものを持たせて、Listの中身を並び順で画像表示するような設計でいい気がする
リセットはListを空にして再表示だし、複数スタンプもListに追加して再表示で終わるだろ
そういうのはパネルのフィールドにばらまいてはダメなやつだよ
パネルは入れ物であって中身は中身でまとめて別に管理しないと
ついでに言うと、読み込んだ画像とスタンプは同じもの
読み込んだ画像って、ユーザが選択して重なり具合が常に最背面になってるスタンプだろ?
パネルにはList<ImageInfo>みたいなものを持たせて、Listの中身を並び順で画像表示するような設計でいい気がする
リセットはListを空にして再表示だし、複数スタンプもListに追加して再表示で終わるだろ
461デフォルトの名無しさん
2017/05/19(金) 15:59:47.29ID:V7EPUvXw462デフォルトの名無しさん
2017/05/19(金) 16:28:12.16ID:7cLMvP3Z >>454
おっしゃるとおりだと思います。
現に、現在進行形で泥団子化しているような気がします。
自分でもなんとかしたいと思っているのですが、今まで手続き型のやり方でお茶を濁してきたツケで、オブジェクト指向的な考え方に馴染めず困っています。
例えば、左のパネルを操作して右のパネルに表示されている画像上にスタンプを追加する、というような操作を考えたとき、どのように実装すればいいかこんがらがってしまって・・・
教えてくれとは申しませんので、オブジェクト指向で書かれたGUIアプリケーションのサンプルソース集などはないでしょうか。
おっしゃるとおりだと思います。
現に、現在進行形で泥団子化しているような気がします。
自分でもなんとかしたいと思っているのですが、今まで手続き型のやり方でお茶を濁してきたツケで、オブジェクト指向的な考え方に馴染めず困っています。
例えば、左のパネルを操作して右のパネルに表示されている画像上にスタンプを追加する、というような操作を考えたとき、どのように実装すればいいかこんがらがってしまって・・・
教えてくれとは申しませんので、オブジェクト指向で書かれたGUIアプリケーションのサンプルソース集などはないでしょうか。
463デフォルトの名無しさん
2017/05/19(金) 16:40:46.85ID:7cLMvP3Z >>460
なるほど、画像やスタンプの情報もオブジェクトに閉じ込めてしまうのですね。
確かにそのようにすれば初期化や並び順管理も容易にできそうです。
今は画像上のマウスポインタのx,y座標を保存する変数などもバラバラになっているのですが、これもオブジェクトとして扱えば良いですね。
どうもありがとうございます。
なるほど、画像やスタンプの情報もオブジェクトに閉じ込めてしまうのですね。
確かにそのようにすれば初期化や並び順管理も容易にできそうです。
今は画像上のマウスポインタのx,y座標を保存する変数などもバラバラになっているのですが、これもオブジェクトとして扱えば良いですね。
どうもありがとうございます。
464デフォルトの名無しさん
2017/05/19(金) 16:54:03.15ID:8fy8h9zZ >>461
ちなみにV2Cってやつ
ちなみにV2Cってやつ
465デフォルトの名無しさん
2017/05/19(金) 18:11:40.44ID:V7EPUvXw >>464
どうもです
どうもです
466デフォルトの名無しさん
2017/05/19(金) 19:01:25.59ID:UcTeaZgR467デフォルトの名無しさん
2017/05/20(土) 12:30:03.29ID:MUxe8l0w パッケージ名とクラス名を同じにしないといけないってなんで?
調べても出て来なかったし、実際違う名前にしてみても問題なく動いた
調べても出て来なかったし、実際違う名前にしてみても問題なく動いた
468デフォルトの名無しさん
2017/05/20(土) 14:15:46.69ID:PoJQGONs >>467
クラス名とファイル名じゃないか?
クラス名とファイル名じゃないか?
469デフォルトの名無しさん
2017/05/20(土) 15:40:52.53ID:MUxe8l0w470デフォルトの名無しさん
2017/05/21(日) 17:41:03.62ID:yzZ9l0t7 どうでもいいことかもしんないけど、is○○って、boolean型を返すメソッド名のみに使うべき?
boolean型の変数名に使うのはNG?
boolean型の変数名に使うのはNG?
471デフォルトの名無しさん
2017/05/21(日) 17:57:08.86ID:1QefLJTZ >>470
OK、Javaはメソッド名とフィールド名を区別するから関係ない
OK、Javaはメソッド名とフィールド名を区別するから関係ない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★3 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★8 [蚤の市★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★3 [蚤の市★]
- たけし、ダウンタウン、明石家さんまを超えた! 全世代を超えて愛されるお笑い芸人ランキング! 1位決まる [牛丼★]
- 【26年度予算案】防衛費、過去最大の9兆円規模に、政府調整 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- バイクのエンジンがかからないの…
- ドラえもんのいなかったのび太。それが俺とこのスレ見てるお前だよ [769050516]
- 【悲報】30代独身女性「結婚や成功してる友達との差は開く一方、このまま1人で生きて淘汰される人生だと気づいて絶望してる…406万いいね [483447288]
- 女の部下が俺の家に来たいって言ってくるんだが、、、
- 【画像】ドw童貞はw絶ッッッ対"1"を選ぶ卓球 J Kのお食事会の写真見つけちゃいましたwwwwwwwwwww [904880432]
- 日本(政治、司法、警察、資本腐ってます)←こいつがここから立て直す方法www
