1 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 10:55:55.50 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 (p)ttp://www.wikiroom.com/java/?path,classpath ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 ・String に == は使うな。equals() を使え。※ 前スレッド ★★Java質問・相談スレッド165★★ toro.2ch.net/test/read.cgi/tech/1382265039/
2 名前:デフォルトの名無しさん [2013/12/06(金) 11:29:54.92 ] 他の言語ではなく、Javaが選択される理由を教えてください
3 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 11:30:48.82 ] 学習に最適
4 名前:デフォルトの名無しさん [2013/12/06(金) 19:26:23.36 ] 教えてください 宣言と生成についてわかりません 例えば class A{ } class B{ } … static void main{ A a = new A(); B b = new A(); } aとbの違いがわかりません。 右辺の生成はわかるのですが、 宣言の意味合いがよくわかりません。 教えてください すみません、初心者です!
5 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 19:28:06.23 ] なんだこれ
6 名前:デフォルトの名無しさん [2013/12/06(金) 19:31:00.56 ] 変ですか?
7 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 19:35:14.58 ] うん。まあ、細かいことはおいといて。聞きたいのは変数宣言と生成の違い?
8 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 19:36:02.27 ] いつも new するとは限らないから、宣言と生成は違う String a = new String(); String b = "hello"; String c = System.getProperty("os.name"); String d = b + c;
9 名前:デフォルトの名無しさん [2013/12/06(金) 20:04:45.21 ] 変数宣言と生成の違いというより、 宣言について曖昧なのかもしれません。 上のaとbの文は、両方ともクラスAのメンバを使用できるようになりますよね。 じゃあ、宣言の違いによって何が変わるのって感じです。 素人な説明ですみません。
10 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 20:31:08.54 ] String str1 = "hello"; String str2 = str1; str1 → "hello" ← str2 String str1 = "hello"; String str2 = "hello"; str1 → "hello" str2 → "hello"
11 名前:デフォルトの名無しさん [2013/12/06(金) 20:35:19.28 ] 見方がわからんw
12 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 20:37:21.36 ] すまん、適当に書いてしまったw
13 名前:デフォルトの名無しさん [2013/12/06(金) 21:12:37.26 ] それは生成の話ですよね。 クラス型の代入の話はわかります。 あとstringだと限定的でなかなか理解が。 僕がわからないのを言い換えると、 @クラスAで宣言したクラスAオブジェクトa AクラスBで宣言したクラスAオブジェクト この@とAは何が変わるのか。 同じこと言ってますよね…
14 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 21:18:24.68 ] ポリモーフィズムの話か
15 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 22:04:28.84 ] 質問です。 あるインターフェースを継承したインターフェースを実装する場合、 implementの記述で、後者だけでなく前者も記述しているソースを見かけるのですが、 何か意味があるのでしょうか? 言葉ではわかりにくいので例を書きますと interface A {} interface B extends A {} これらがあるときに class C implement B {} class D implement A, B {} この場合、CもDも同じ機能を持つことになり、Dの記述は冗長だと思うのですが 何か違いはあるんでしょうか? リファクタリング時に役にたつとかでしょうか?
16 名前:デフォルトの名無しさん [2013/12/06(金) 22:13:31.97 ] class A{ int aa = 1; public A(){ System.out.println("コンストラクタA"); } public void AAA(){ System.out.println("メソッドAAA"); } } class B extends A{ int bb =2; public B(){ System.out.println("コンストラクタB"); } public void BBB(){ System.out.println("メソッドBBB"); } }
17 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 02:10:22.02 ] String a = new String Object b = new String Objectとして扱う(Objectで定義されているメソッドしか使わない)なら、bの方が依存関係を緩くできる。 b = new Integer と、Stringでないものにしても、bはObjectとして扱われるので影響がない。
18 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 04:53:45.79 ] >上のaとbの文は、両方ともクラスAのメンバを使用できるようになりますよね。 >じゃあ、宣言の違いによって何が変わるのって感じです。 AとB関係ない型なのに B b = new A(); なんだこれ。
19 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 06:38:18.82 ] >>15 開発のなりゆきでそうなっただけで深い意味はないかも。
20 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 10:22:44.79 ] >>18 最初の「なんだこれ」はそれだった。 違和感を感じていたが誤記だろうと放置していたら本質だった。
21 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 14:33:56.07 ] 質問です。 Android SDK の Bundleクラス(Intentで使われてるやつです)のような 万能の入れ物になるようなクラスはJavaの標準では用意されていないのでしょうか? また、ない場合に自作するとしたら、適当にプリミティブラッパ型とSerializable型を 保持するHashMapを複数持ったクラスなどで代用すれば良いでしょうか?
22 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 14:55:17.77 ] しね
23 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 15:08:19.30 ] ありがとうございます。自己解決しました
24 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 15:28:12.23 ] どれが解決したかわからないという
25 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 16:05:36.11 ] javaでFnumって、どういう使い勝手がありますか? 最初、普通に整数型かと思ったら違うかったし 引数で取ったとしてswich文での処理となると思いますし どうなんでしょうか
26 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 16:11:59.89 ] >>15 まぁ)avaの仕様だと思って我慢してください。 俺としては、インターフェイスの定数の保持の利点が 見いだせない。
27 名前:>>15 mailto:sage [2013/12/07(土) 19:42:31.92 ] >>19 >>26 なるほど・・・ありがとうございました
28 名前:デフォルトの名無しさん [2013/12/07(土) 20:15:37.70 ] class A{ public void AAA(){} } class B extends A{ public void BBB(){} } public class javatest2 { public static void main(String arg[]){ A hoge1= new A(); B hoge2= new B(); A hoge3= new B(); B hoge4= new A(); //型の不一致: A から B には変換できません ??1 hoge1.AAA(); // hoge1.BBB(); //メソッド BBB() は型 A で未定義です hoge2.AAA(); hoge2.BBB(); hoge3.AAA(); // hoge3.BBB(); //メソッド BBB() は型 A で未定義です ??2 上の??1 と??2 がわかりません
29 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 21:12:33.22 ] >>28 1. サブタイプはスーパータイプの一種なので互換性があるが、逆はそうではない よく挙げられるのは動物の例 Animal hoge1 = new Animal(); // OK - 動物同士、何の問題もない Cat hoge2 = new Cat(); // OK - ネコ同士、何の問題もない Animal hoge3 = new Cat(); // OK - ネコは動物であるので、ネコを動物として扱っても問題はない Cat hoge4 = new Animal(); // NG - 動物一般をネコとして扱うことはできない
30 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 21:16:52.17 ] >>28 2. 「メソッドBBBが型Aで未定義です」のメッセージ通り、型AにメソッドBBBの定義は無いでしょ? hoge3の型はAなんだから hoge3が指しているオブジェクトの型ではなく、hoge3という変数自身の型だ 変数自身の型しか見ないので、hoge3が実際に何のオブジェクトを指しているか指していないかは考慮されない
31 名前:デフォルトの名無しさん [2013/12/07(土) 21:49:36.82 ] ありがとうございます。 んーでもまだしっくりこない。 オブジェクトの型と変数の型の違いがわかりません。 というより、やっぱり、オブジェクト生成とは何か。変数宣言とは何か。 をしっかりと理解していない気がします。
32 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 22:09:48.36 ] >>15 ,26 メソッドの検索順番が変わるんだよ。 クラスメソッドと違ってインタフェースメソッドは 階層が深いとこで定義されていると検索が遅くなる。
33 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 22:10:23.03 ] 違いも何も、生成したオブジェクトを自分がどのように扱うかを決めるのが宣言だろうに。
34 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 22:27:57.02 ] >>31 1に関しては悩む点じゃないからスルー。 2はちょっと難しい。 hoge3は「A」という型で宣言されているからAに定義されているメソッド以外は呼び出せない。 ただしhoge3の「中身(インスタンス)」はnew B();で作ったのでBのメソッドを呼び出す能力は持っているはず。 こういう場合はキャストという操作でhoge3の型を変えてやればいい。 ((B) hoge3).BBB(); こうすればエラーにならずBBBが呼び出せる。
35 名前:デフォルトの名無しさん [2013/12/07(土) 22:34:04.55 ] 上の AAA hoge3 = new BBB(); では型宣言側のhoge3.AAA()はOKで、hoge3.BBB()はNGですが、 下のオーバーライドを確認するためのプログラムでは、逆の挙動が出てます。 上の例に従うとAAA hoge3=new BBB(); → hoge3.show();は、 AAA.show()が示されると思ったのですが、実際はBBB.show()でした。 難しい。。。 どなたか説明いただけると助かります class AAA{ String a="AAA"; void show(){System.out.println("AAA.show()");}} class BBB extends AAA{ String a="BBB"; void show(){System.out.println("BBB.show()");}} public class javatest3 { public static void main(String arg[]){ AAA hoge1 = new AAA(); AAA hoge2 = new BBB(); BBB hoge3 = new BBB(); hoge1.show(); hoge2.show(); hoge3.show(); System.out.println(hoge1.a); System.out.println(hoge2.a); System.out.println(hoge3.a);}}
36 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 22:43:22.76 ] >>35 抽象クラスやインターフェースを使ったことあるか? それを使えば「型とインスタンスは別」って理解できるから先にそうしろ
37 名前:デフォルトの名無しさん [2013/12/07(土) 22:51:52.02 ] すみません、まだ趣味で初めて1週間くらいで、、、 抽象クラスとインターフェースは斜め読んだだけであまり理解してません。 とりあえず、この問題は放置して先に進んでみます。 また戻ってくるのでかまってください。 ありがとうございました。
38 名前:デフォルトの名無しさん mailto:sage [2013/12/07(土) 23:02:47.86 ] また難しいところから攻めてるな。実際のところ、継承の乱用はタブーなんだが。
39 名前:桃白白 ◆9Jro6YFwm650 [2013/12/07(土) 23:48:33.11 ] >>35 オーバーライドとはそういうもの 逆でもなんでもない
40 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 01:51:07.91 ] 大は小を兼ねるってことだよ。
41 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 05:59:05.92 ] >>39 失せろカス
42 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 06:52:06.52 ] Vector<String> ary = new Vector<String>(); ary.add("データ0"); ary.add("データ1"); ary.add("データ2"); for (int i = 0 ; i < ary.size() ; i ++) { String str = ary.get(i); } というソースを実行すると、本当に稀な確立で、 ary.get(i);でArrayIndexOutExceptionが発生します。 別スレッドからaryがいじられるとかはありえないのですが Java6でVectorにバグがある等の話はありますでしょうか?
43 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 06:57:23.21 ] ない。 ArrayIndexOutOfBoundsExceptionではなくArrayIndexOutExceptionなんて書いている時点でまず自分を疑った方がいい。
44 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 07:10:32.69 ] 全然釣れないですね〜^^
45 名前:42 mailto:sage [2013/12/08(日) 07:43:17.85 ] ありゃ、なんかスレ荒れてましたか 例外の名前はあいまいに覚えてたのを書きました 今は無駄っぽいので、またスレが冷静になってきたら質問します。
46 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 07:55:47.01 ] ションベンして寝てろカス
47 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 08:31:01.74 ] >>42 Vector使うのもいいけど ArrayListを使うことをお勧めします
48 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 09:12:21.96 ] 結構昔から非推奨タグ付いてなかったっけVector
49 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 10:54:41.51 ] 確かに1次元のくせにベクトルとは生意気だとおもったな。
50 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 11:19:28.33 ] 全然だめですね〜^^ 釣れないですです^^
51 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 11:44:52.22 ] 2次元だと行列になるのでは
52 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 12:13:38.13 ] 一成分がスカラー 二成分がベクトル 行列は一般的なものでしょ
53 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 12:34:44.11 ] 割り込みベクタって表現、ダイキライ
54 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 13:19:54.26 ] javaでprocessingのbackgroundの様な関数を作れなくて困ってるんですがどういう風にすれば作れるか教えて頂けませんか? 抽象的で申し訳ないですが教えて下さい。
55 名前:42 mailto:sage [2013/12/08(日) 13:22:11.07 ] そんなprocessingやってる前提で話されても・・・ ここジャヴァーのスレですし
56 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 13:28:10.28 ] すみません… 具体的に言うと四角形を方向キーで動かすアニメーションを作ろうと思って書いてみたのですが、どうやっても前の四角形を消す事が出来ず残像?の様な感じになってしまいアニメーションにならないんです。
57 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 13:36:51.56 ] 背景と同じ色で四角形を塗りつぶせば消える
58 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 13:44:46.88 ] >>57 四角形作って塗り潰そうと考えて作ってみたんですけど自分が作ったプログラムだと塗り潰せてないんです…そして何故塗り潰せないのかが分からなくて本当に困ってるんです。 後ここってプログラミング貼っても大丈夫なんでしょうか?
59 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 13:49:03.05 ] プログラミング張れるのか、すごいな
60 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 14:00:28.23 ] >>59 初心者だということを察して下さいお願いします 今から参考書買ってこようと思うんですが 、自分の質問が解決されそうな本とかって分かりませんか?
61 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 14:08:52.80 ] すれ違い
62 名前:デフォルトの名無しさん [2013/12/08(日) 14:45:09.43 ] その程度の質問ならどの本にも書いてあるよ
63 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 15:05:36.78 ] そんなのは色々ゴチャゴチャチャレンジしてたら解決するよ。
64 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 15:54:39.79 ] ゴチャゴチャチャレンジしてたら解決するようなことは質問禁止!
65 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:13:20.70 ] ゴチャゴチャチャレンジしてたら解決するような事かどうかが判断できない時は質問OK!
66 名前:デフォルトの名無しさん [2013/12/08(日) 16:17:49.85 ] 昨日の継承の問題で、抽象クラスとインターフェイスを勉強してきたのですが、 んー、なんかその話とは違う気がする。。。 やっぱり宣言とオブジェクト生成について本質を理解しなければいけないとおもうんです オーバーライドのところで、逆の挙動が出るということに関して、そういうものと言われましたが、 たぶん僕の言いたい事が伝わってない気がします。 言いたい事は、 最初のプログラムではhoge2はBBBメソッドは使用できないくせに、 次のプログラムではhoge2はBBBメソッドがオーバーライドで優先されて使用される。 それがなぜなのか。これを理解するためにおそらく宣言と生成の本質を理解しないといけませんよね。 プログラムを整理したのでまた載せます
67 名前:デフォルトの名無しさん [2013/12/08(日) 16:19:19.84 ] class A{ String a="AAA"; void AAA(){System.out.println("AAAメソッド");} } class B extends A{ String b="BBB"; void BBB(){System.out.println("BBBメソッド");} } public class javatest2 { public static void main(String arg[]){ A hoge1= new A(); A hoge2= new B(); B hoge3= new B(); hoge1.AAA(); hoge2.AAA(); // hoge2.BBB(); //メソッド BBB() は型 A で未定義です hoge3.AAA(); hoge3.BBB(); System.out.println(hoge2.getClass()); System.out.println(hoge1.a); System.out.println(hoge2.a); // System.out.println(hoge2.b); //bb は解決できないか、フィールドではありません System.out.println(hoge3.a); System.out.println(hoge3.b); } }
68 名前:デフォルトの名無しさん [2013/12/08(日) 16:21:13.97 ] 実行結果 AAAメソッド AAAメソッド AAAメソッド BBBメソッド class java02.B AAA AAA AAA BBB
69 名前:デフォルトの名無しさん [2013/12/08(日) 16:23:29.72 ] class AAA{ String a="AAA"; void show(){System.out.println("AAAメソッド");} } class BBB extends AAA{ String a="BBB"; void show(){System.out.println("BBBメソッド");} } public class javatest3 { public static void main(String arg[]){ AAA hoge1 = new AAA(); AAA hoge2 = new BBB(); BBB hoge3 = new BBB(); hoge1.show(); hoge2.show(); hoge3.show(); System.out.println(hoge2.getClass()); System.out.println(hoge1.a); System.out.println(hoge2.a); System.out.println(hoge3.a); } }
70 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:24:52.07 ] 目がチカチカするからやめて
71 名前:デフォルトの名無しさん [2013/12/08(日) 16:24:55.63 ] 実行結果 AAAメソッド BBBメソッド BBBメソッド class java03.BBB AAA AAA BBB
72 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:27:32.42 ] 勉強不足
73 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:30:38.99 ] A hoge2= new B(); クラスAのメソッドしか利用しないって意味だよ
74 名前:デフォルトの名無しさん [2013/12/08(日) 16:31:55.81 ] 勉強もほどほどになんか作ってみろよ。半年もすれば本質なんか勝手にわかる。
75 名前:デフォルトの名無しさん [2013/12/08(日) 16:33:33.87 ] すみません。でも俺は丸一日この文とにらめっこだよ。助けてほしい。 ●前者と後者で違い 前者 メソッドをオーバーライドさせず、AAA()とBBB()でメソッド名が違う 後者 メソッドをオーバーライドさせ、メソッド名show() ●hoge2の結果 前者 BBB()メソッドは使用できない。 後者 オーバーライドされBBB()メソッドが優先される。 なぜなぜ? >>34 のキャストすればできました。そうゆう対策は知らなかったし理解できました。 そうではなく、なぜこの問題が起こるのかが知りたいです。 これを理解するには宣言と生成の本質の理解が必要と思うんですが、 どこを調べても、宣言はメモリが・・・とかそんな説明ばっかです。
76 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:34:58.63 ] void show()←クラスAにもあるメソッド
77 名前:デフォルトの名無しさん [2013/12/08(日) 16:38:13.22 ] 勉強不足なのは間違いないけど。。。 >>73 >A hoge2= new B(); >クラスAのメソッドしか利用しないって意味だよ でも2番目のプログラムでは、 AAA hoge2 = new BBB(); で、BBBメソッドが呼ばれたよ??
78 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:38:23.68 ] 馬鹿には無理
79 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:38:26.92 ] A hoge2= new B(); メソッドの使用がクラスAに存在するものだけに制限されている つまり void AAA()だけ AAA hoge2 = new BBB(); メソッドの使用がクラスAAAに存在するものだけに制限されている つまり void show()だけ
80 名前:デフォルトの名無しさん [2013/12/08(日) 16:41:09.15 ] >>76 hoge2.show() で呼ばれるのは、クラスAではなくてクラスBですよ。 実行結果から見て。
81 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:42:27.07 ] Javaでわからないことを質問するスレ kohada.2ch.net/test/read.cgi/prog/1363851093/
82 名前:デフォルトの名無しさん [2013/12/08(日) 16:45:12.03 ] >>79 の理屈では、 後者のプログラムではhoge2.show()の実行結果がAAAメソッドになりません?
83 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:46:48.61 ] じゃあこうしよう A村で生まれた子供にはAAAという笛が渡されます。 その笛を吹くとどこからともなく怪人が現れAAAと叫びます AAA村で生まれた子供にはshowという笛が渡されます その笛を吹くとどこからともなく怪人が現れAAAと叫びます なぜ怪人はAAAと叫んだのでしょうか? 笛を吹いた子供がAAA村の子供だと知っているからです。 BBB村で生まれた子供にはshowという笛が渡されます その笛を吹くとどこからともなく怪人が現れBBBと叫びます なぜ怪人はBBBと叫んだのでしょうか? 笛を吹いた子供がBBB村の子供だと怪人は知っているからです。 とても分かりやすい説明だと思う
84 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:49:53.90 ] 追加 B村で生まれた子供にはAAAという笛とBBBという笛が渡されます。 いたれりつくせりです。
85 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:55:56.21 ] どこのコぺペ?w
86 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:55:58.77 ] おっと上ミステイクしたかもな。 追加 ある日A村で子供が生まれました。しかし驚くべきことにその子供はB村の子供だったのです。 その子供は残念なことにAAAという笛しか渡されませんでした。 その子供はAAAという笛を吹いてみました。 怪人はAAAと一言言ってさりました。 こどもは寂しい思いをしました。 次の日のことです。 AAA村で子供が生まれました。またまた驚くべきことにその子供はBBB村の子供だったのです。 その子供にはshowという笛が渡されました。 その子供はshowという笛を吹いて見ました。 怪人はBBBと叫びました。 子供は嬉しくて涙がでました。 なぜ怪人はBBBと叫んだのでしょう? それは怪人がその子供はBBB村の血筋のものだと知っていたからです!
87 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:00:36.46 ] ・どこで生まれたかによって渡される笛がきまってしまうこと ・子供は渡された笛を吹くことしかできないこと ・同じ笛でもどの血筋の子供が吹くかで何が起こるかは変わりうること とてもわかりやすい例えだと思う
88 名前:デフォルトの名無しさん [2013/12/08(日) 17:01:42.93 ] ちょっとわかりにくいです。 村は 型を示すのか、オブジェクト型を示すのか
89 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:03:02.54 ] //北斗神拳伝承者、百裂拳(メソッド)を使えます。 class Hokuto{ void hyakuretuken(){...} } //北斗神拳を継承しているので百裂拳を使えます class B extends A{} //北斗神拳を継承、百裂拳をオーバーライドした天翔百裂拳が使えます。 class C extends A{ void hyakuretuken(){/*空中から百烈拳*/} } B kenshiro = new B(); C toki = new C(); //ケンシロウ A denshosha=kenshiro; denshosha.hyakuretuken();//百裂拳が発動 denshosha=toki; denshosha.hyakuretuken();//天翔百裂拳が発動 こういうことだな。
90 名前:デフォルトの名無しさん [2013/12/08(日) 17:04:00.26 ] まちげぇた。class Hokutoをclass Aにかえてくれw
91 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:04:40.94 ] 翻訳例 AAA hoge2 = new BBB(); BBB村の妊婦さんを誘拐しました。 その子供hoge2はAAA村で生まれました。
92 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:07:31.01 ] 荒らすなカス
93 名前:デフォルトの名無しさん [2013/12/08(日) 17:14:01.95 ] わかんねー!
94 名前:デフォルトの名無しさん [2013/12/08(日) 17:19:00.20 ] 勉強ってつまんねぇし身につかないだろ。目的がないから。 ゲーム作りたいとか目的があるプログラミングは面白いし身につく。 プログラミングにまで「勉強」を適用したら人生真っ暗だぜ。
95 名前:デフォルトの名無しさん [2013/12/08(日) 17:19:36.06 ] >>75 A型の変数でB型のメソッドが呼べないのはあたりまえ。 メソッドがオーバーライドされてるときはサブクラスのメソッドが優先される。 そんだけ。問題があるとするならお前の頭。
96 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:27:38.30 ] コンパイル時のメソッド名解決と実行時のメソッド名解決は、 解決される時期が全く別でな… 言語仕様15章12節嫁。
97 名前:94 [2013/12/08(日) 17:28:59.74 ] 物事の本質が見えている奴とは俺のような奴である(キリッ
98 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:29:00.78 ] 荒らすなカス
99 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:31:28.36 ] 荒らすなカスって言ってる奴がカス!
100 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:34:32.63 ] メソッド名とメソッドの中身を切り離して考えればいい 使用できるメソッドが宣言の仕方によって制限される メソッドの実行内容がどのインスタンスに呼ばれたかに依存する そんだけ
101 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:47:07.32 ] コンパイル時の問題と実行時の問題を分けて理解する必要がある コンパイルエラーはプログラムをコンパイルする時のエラーであって、プログラムはまだ1行も実行されていない AAAのオブジェクトもBBBのオブジェクトも生成されていないし、 もし実行されたらそのとき変数hoge3はどんなオブジェクトを指しているであろうか、などといったことは判りはしない だからコンパイル時には、変数宣言の型だけに基づいて、実際に実行せず静的に、エラーチェックをするんだ エラーチェックを通ってコンパイルに成功したら、ようやく実行を始められる 実行時には実際にオブジェクトを生成するし、各変数がどんなオブジェクトを指してるかも判る
102 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:56:04.16 ] なんだか思ったよりずっと深い悩みっぽいね 言語設計のレベルの疑問なんかね そうだとしたら知らんですわ javaプログラミングに慣れてない人が突っ込む話じゃないと思うし 突っ込んだところで理解できないレベルの話だと思われる
103 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 18:02:19.70 ] 馬鹿には無理
104 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 18:05:01.80 ] >>75 これのどこが難しいの? class Car{ void drive() { System.out.println("I am just a car."); } } class HyperCar extends Car{ @Override void drive() { System.out.println("I am a hyper car."); } } class SuperCar extends Car{ @Override void drive(){ System.out.println("I am a super car."); } } Car carA = new Car(); Car carB = new HyperCar(); Car carC = new SuperCar(); carA.drive(); // "I am just a car." carB.drive(); // "I am a hyper car." carC.drive(); // "I am a super car."
105 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 18:14:42.57 ] 勉強不足
106 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 19:26:28.59 ] オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。 engawa.2ch.net/test/read.cgi/poverty/1386476617/
107 名前:デフォルトの名無しさん [2013/12/08(日) 21:06:41.95 ] こうするとコンパイルエラーです。 >>104 では、 インスタンスの型側のメソッドが使用できてるのに、下文では、宣言型に依存している。 メソッドを使用できるのはやっぱり、宣言の型側に依存するのですよね。 じゃあ右辺のインスタンスの型は何を意味するのかなって。 class Car{ void drive() {System.out.println("I am just a car.");} } class HyperCar extends Car{ void driveHyper() {System.out.println("I am a hyper car.");} } class SuperCar extends Car{ void driveSuper(){System.out.println("I am a super car.");} } public class javatext5 { public static void main(String[] args) { Car carA = new Car(); Car carB = new HyperCar(); Car carC = new SuperCar(); carA.drive(); // "I am just a car." carB.Hyperdrive(); // "I am a hyper car." carC.Superdrive(); // "I am a super car." } }
108 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 21:08:02.12 ] もうジャヴァなんかあきらめてC#やれお
109 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 21:09:55.49 ] javaのwebスクレイピングプログラムを自作しているのですが、5個のスレッドでとあるサイトに アクセスして情報を取得する処理を数日間続けると1個のスレッドが止まってしまうというような ことに悩んでおります。 原因のわかる方、見当の付く方はおられるでしょうか。
110 名前:デフォルトの名無しさん [2013/12/08(日) 21:15:43.24 ] >>109 ちんちんかゆいんですと泌尿器科に行ってちんちん見せないようなもの。 原因わかるわけないじゃん。ちんちんうpよろ。
111 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 21:22:38.71 ] ネットワークで簡単な通信(エコーサーバーみたいなのでも)作ってる時って 根本的にネットワークの仕組み理解してないからしてサンプルプログラムに毛が生えたレベルのものでも どこかに脆弱性あるかもしれんからビクビクしてる バッファオーバーフローとかも解説読んでもピンとこない XSSとかSQLインジェクションはわかる ソフト公開してる人はセキュリティ方面にものすごく自信があるから公開してるってことなの? あれって使用者に何かあったら作成者が責められるよね?
112 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 01:03:04.79 ] >>107 > >>104 では、インスタンスの型側のメソッドが使用できてるのに その理解は間違ってる。 「@Override」の文字通り「上書きされたCarクラスのdrive()メソッド」を呼び出しているだけだよ。 だからCarクラスに宣言されている内容しか見えない。 今回はその内容が一部上書きされているから上書きされたメソッドの結果に置き換わっただけ。
113 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 02:29:55.28 ] >>109 スタックオーバーフローじゃないの? スレッドプールはたまに新スレッドで入れ替え直す方が良い
114 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 18:29:40.41 ] こんにちは。プログラム初心者です(1週間くらい)。 調べてもよくわからないところがあったので質問させてください。 下記のようなコードを書いたのですが、コード下から7行目の(★)引数に関して 該当する行の引数「kei(int x, int y)」とすると、Printlinされる整数値は「8」となりますが、 引数を「kei(int a ,int b)」とすると、出力される整数値は「3」となり、 フィールド値として定義したa,bと、kei()メソッド内の、aとbは別物の変数になってるようです。 main()メソッドと、pri()メソッドは同じ値なのに、なぜkei()メソッドだけそうなるのでしょうか? よろしくお願いします。 public class sam { static int a; static int b; public static void main(String[] args){ a=3; b=5; kei(a,b); pri(); } static void kei(int x, int y){ //(★)引数に関して a=a+b; } static void pri(){ System.out.println(a); } }
115 名前:デフォルトの名無しさん [2013/12/09(月) 18:43:00.50 ] >>114 static int a; static int b; と keiの引数は別だから。
116 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 18:44:23.85 ] 同じ名前の変数が2つあったら、より内側の方を見るから
117 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 18:48:40.84 ] >>115 様、>>116 様、ありがとうござました!とても気分がすっきりしました 1週間くらい悶々でした。どうもありがとうございました^^!!
118 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 19:05:06.20 ] >>111 LICENSE読めボケェ
119 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 19:45:11.04 ] >>117 死ねよ
120 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 20:21:13.45 ] >>119 どの辺が死に値するんだよw
121 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 20:27:13.03 ] >>117 一生すっきりしてろカス
122 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:03:18.82 ] ずぶの素人です。現在サーブレットの入門書を読みながら設定をしています。 トムキャットのほうでエラーがでてるようなのですが、以前までできてた操作ができなくなりました。例えば、以下のURLで以前までは結果がけってきてたのですが、今は帰ってきてません。 localhost:8080/entry/OracleServlet web.xmlにエラーがありそうなので、教科書と比較してみてるのですが、余分な文はいれてないように思います。 具体的にはlocalhost:8080/ ここでトムキャットのHPを映すくとはできます。 localhost:8080/entry/OracleServlet ここになると404 The requested resource is not available. となります。 エラーっぽいメッセージ WEB-INF/web.xml;の解析エラーです。 linenumber 53; columnNumber:9 XMLドキュメント構造は、同じエンティティ内で開始及び終了する必要があります。 startup.ContextConfig parseWebXml 重大:53行目の9列目で発生しました。 前のエラーのためにこのアプリケーションは利用できないようにマークします。 トムキャットのコンソールがコピペできないので、これだけで情報になるかわかりませんが、原因がわかる方いましたら、教えてもらえますでしょうか?よろしくお願いします。
123 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:17:00.54 ] ゆとりってバカだな
124 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:18:42.78 ] web.xmlにエラーて書いてあんだろ
125 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:43:17.95 ] >>123 いや、書いてあることもわかるし、該当の場所もみてるんですが、何が間違えてるかわからないのです。 よって何かアドバイスいただければと思います。
126 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:58:25.70 ] 最近はエラー日本語なのか。でも読まない人には意味ないし、読む人は英語でも調べるから意味薄いな。 >>122 xmlの補助をしてくれるエディタで見れば、すぐわかりそう。
127 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:59:10.44 ] >>125 タグの対応がおかしいんだろ。
128 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 23:02:49.01 ] プログラム書くよりデバッグは難しい
129 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 23:15:39.04 ] クライアントよりサーバーのプログラムの方がデバッグは難しい
130 名前:デフォルトの名無しさん [2013/12/09(月) 23:45:29.09 ] all in oneのnetbeans使いやすいなー eclipseは環境を作らなきゃいけないから、めんどい netbeansの方が軽い気がするのは気のせいか
131 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 23:56:03.47 ] >>127 >XMLドキュメント構造は、同じエンティティ内で開始及び終了する必要があります。 このエラーがポイントっぽいのですが、どういう意味を表すのでしょうか?
132 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 23:57:03.29 ] すいません。>>131 自己解決しました。 スレ汚し申し訳ないです。
133 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 00:29:29.18 ] >>130 統合されてるのが好きならIntelliJはもっと気に入ると思う
134 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 00:37:43.78 ] トムキャットとjavaの関係を一言で言うとなんですか?
135 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 00:52:17.65 ] 恋人同士
136 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 01:35:33.37 ] すいませんここで聞いていいのか分からないのですが、 Breaking the Towerというゲームができないのです https://mojang.com/notch/ld12/breaking/ メインVista sp2 サブXP sp3 Java Plug-in 10.45.2.18 使用中のJREのバージョン 1.7.0_45-b18 Java HotSpot(TM) Client VM ユーザーのホーム・ディレクトリ = C:\Documents and Settings\pc java.lang.ArrayIndexOutOfBoundsException: 1 at com.mojang.tower.HighscoreManager.getTopScores(HighscoreManager.java:40) at com.mojang.tower.TowerComponent$2.run(TowerComponent.java:138) Failed to get highscores セキュリティレベルを中、次世代のJava Plug-inを無効、Javaキャッシュ削除し、 ブラウザをFirefox25、Chrome31、IE8と変えてみましたが、 どうやっても最初のタイトル画面が表示されて止まった(固まった)ままで動きません ご教示ください
137 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 01:54:54.98 ] ゲーム作った奴に報告しろ
138 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 04:13:25.08 ] echo.jsp <%@page contentType="text/html; charset=Windows-31J"%> <HTML><BODY><H2>EchoServletの入力</H2> <FROM ACTION="../servlet/input.EchoServlet"> <INPUT TYPE="TEXT" NAME="message"><INPUT TYPE="SUBMIT"> </FORM> </BODY> </HTML> EchoServlet.java package input; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class EchoServlet extends HttpServlet { public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {String msg = request.getParameter("message");response.setContentType("text/plain; charset=Windows-31J");PrintWriter out = response.getWriter(); out.println("message=" + msg);}} この二つのファイルを置いてコンパイルを実行したところ、jspで呼び出したボタンを押しても、ボタンが反応しないのですが 原因わかる方いますでしょうか?
139 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 04:22:19.73 ] ゆとりってバカだな
140 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 04:28:03.23 ] >>139 そんな簡単な間違え犯してますでしょうか?
141 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 04:30:06.78 ] やってましたwwwwwwすいません。
142 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 04:31:02.39 ] ありがとうございます。
143 名前:136 mailto:sage [2013/12/10(火) 07:42:07.80 ] >>137 あ、みなさんも動きませんか 数年前からあるらしいのでjavaのバージョンが進んで動かなくなってるのかな ありがとうございました
144 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 08:40:42.52 ] トムキャトは俺の横で寝ている
145 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 01:06:31.10 ] close関数を呼んで明示的にリソースを閉じているのに 長期的に動作させるとtoo many open fileとなってしまいます。 Javaではclose呼んでも閉じないことがあるのでしょうか?
146 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 07:12:15.34 ] >>145 throwで飛び越えてるとか。 Finalyでcloseしてるか?
147 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 07:46:45.51 ] closeしてるつもりで できてないとしか思えんな
148 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 15:51:39.62 ] FirefoxでAppletの扱いがさらに酷いことに… Appletってなんとかならないのかね?まだ使っているんですけど…
149 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 23:07:58.17 ] import java.io.PrintWriter; って API として、何かを呼び出してるのでしょうか? 初心者なんですが、ほかにも import javax.servlet.servletexception とか、何を表してるのか知りたいのですが、わかるような本、もしくはサイトありますでしょうか?
150 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 23:10:18.73 ] 「Firefox 26」(!!!!!!)公開、すべてのJavaプラグインの起動にクリックが必要に engawa.2ch.net/test/read.cgi/poverty/1386757688/ 【悲報】Firefox26.0リリース engawa.2ch.net/test/read.cgi/poverty/1386690380/
151 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 23:10:52.09 ] >>import java.io.PrintWriter; >>って API として、何かを呼び出してるのでしょうか? 呼び出しているよ >>import javax.servlet.servletexception >>とか、何を表してるのか知りたいのですが、わかるような本、もしくはサイトありますでしょうか? あるよ
152 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 23:19:40.36 ] 基本、クラス定義の外側にある行は実行の対象じゃないんで・・・
153 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 23:51:24.70 ] アプレット実行可にしてるやつなんていたのか
154 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:01:40.04 ] 今やセキュリティホールの代名詞だよね
155 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:03:43.39 ] >>151 >>とか、何を表してるのか知りたいのですが、わかるような本、もしくはサイトありますでしょうか? あるよ 教えていただけますでしょうか? package filter; import java.io.IOException; import javax.servlet.filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class EncodingFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { このpublicから始るものは 関数と考えていいのでしょうか? 読み方がわかりません。詳しく纏められてるサイト、本の紹介をお願いいたします。
156 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:09:12.64 ] >>155 publicの読み方がわからないの?
157 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:10:56.77 ] >>156 さすがにわかりますが、他はわかりません。 たとえば、 import javax.servlet.ServletResponse; は何をしてる構文なんでしょうか? わからずとりあえず打ってますが、一つ一つの単語?がわかれば理解が早いとおもったしだいです。
158 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:14:36.64 ] 過去レス読め、ggrksまたはスレチ
159 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:16:04.71 ] >>157 そのレベルだったら本来は入門書の最初から読み進めるのが最も望ましい 今すぐ特定のコードを理解しなきゃいけない事情があるのなら俺には近道は思いつかない
160 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:16:48.33 ] そもそもこのプログラムはどこから引っ張ってきたのでしょうか?
161 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:20:15.61 ] >>159 一応 java入門は一通り読んで、 今サーブレットを作成しながら進んでます。Cを少し齧ってたのですが、いいかげん構文読めないと思いました。 入門の本は読んだのですが、どこあたりにこれらの構文の 単語の意味が書いてあるかわからずそれを訪ねています。 >>160 サーブレット入門書を読みながら、今はサーブレットフィルタの設定をしてるところです。
162 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:22:02.87 ] >>159 貴殿がおっしゃってることは至極最もだと思いますが、 たとえば、 publicは どこどこに公開することを表していて・・ とか一つの単語ごとに言い切ることは不可能でしょうか? 勿論、それができるなら、分厚い入門書必要ないといわれそうですが。。
163 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:23:32.90 ] >一応 java入門は一通り読んで、 ほんまかいな、それに後出しは嫌われるとしってるよね
164 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:25:22.35 ] 脳内完結厨房か、お休み
165 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:30:24.45 ] >>162 importは「クラスの名前を省略したいとき」に使う。 javax.servlet.FilterChain と書かなければいけない場所があった時に、 import javax.servlet.FilterChain; を最初に書いておけば FilterChain と書くだけで javax.servlet.FilterChain を指し示すことができる。 ただしクラス名が衝突する場合はimportはできない。 import javax.servlet.FilterChain; と import myclass.FilterChain; を同時に記述するとFilterChainクラスがどちらを指すのかが不明になるので同時にimportすることは出来ない。 publicは「クラスの外側からその要素にアクセスすることを許可する場合」に使う。 publicの代わりにprivateと記述した場合、その要素はそのクラスの中からしかアクセスすることはできない。
166 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:36:27.80 ] 年齢をお聞きしても宜しいでしょうか?
167 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:40:44.53 ] >>166 今年66になるオジさんです。定年後の趣味としてjavaを習い始めました。
168 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:43:55.05 ] 初心者に教えるにしては随分手の込んだコードだぜ? インターフェースまで使ってるし
169 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:44:17.27 ] その息子の正志です
170 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 01:02:36.31 ] >>167 残念ですがここ(2ちゃんねる)は初心者に優しくしてくれるサイトではないです モチベーションをそがれるだけだと思います ですので別の場所に助けを求めるか、自力で奮闘することをおすすめします
171 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 01:28:15.59 ] >>145 ProcessBuilderとかは 標準出力・入力・エラーの3つのストリームを 勝手に作成するから そいつら使ってないか?
172 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 02:17:19.15 ] トムキャット7.0.47なんですが、 conf下のweb.xmlに invokerサーブレットの項目がないようなのですが、デフォルトでしょうか?
173 名前:デフォルトの名無しさん [2013/12/12(木) 07:02:25.40 ] >>172 tomcat3辺の古いのにはあった記憶があるが、 最近のバージョンはセキュリティ上の理由で存在しないと思うよ。
174 名前:デフォルトの名無しさん [2013/12/12(木) 12:26:55.30 ] JAVA7をインストールしたはずなのにバージョン情報が6表示のままなのはどうしてなんでしょうか? この7が偽者ってことなんですか?
175 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 12:46:48.61 ] >>174 両方インストールしてんだろ。
176 名前:デフォルトの名無しさん [2013/12/12(木) 14:08:44.97 ] >>175 ということは、先に6を手動でアンインストールしないといけないということですか 自動で入れ替えしてくれるものとばかり思ってました(失礼)
177 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 14:23:41.92 ] >>176 環境書いてないからエスパーになるが、環境変数PATHの設定でそうなってるだけだと思うぞ。設定するかフルパスで指定して実行すれば好きな方を使えるはず。 Javaだけでなく環境の使い方も学んだほうがいいぞ。
178 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 14:55:08.51 ] OSによって切り替え方法が異なる。
179 名前:デフォルトの名無しさん [2013/12/12(木) 16:13:51.14 ] >>177 ありがとう、勉強してみるよ
180 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 20:54:16.47 ] ユーザーJREはside by sideだけどシステムJREはversion新しい方で上書きだからパス通してないだけだろうな
181 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 21:56:01.44 ] 異なるスレッドで扱うため、リストとそれに登録したオブジェクトの操作に対して同期を取りたいのですが synchronizedListを用いて生成したリストを用いる場合は、以下のような使い方で正しいでしょうか? SampleClass obj = objList.get(i); synchronized(obj) { obj.method(); } リスト操作(addやget)自体はsynchronizedで囲ったりしなくても synchronizedListで生成してる限りは同期が取れていて、 リストから取得したオブジェクトは別途synchronizedを使って同期取らなきゃ駄目って認識です。
182 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:00:53.53 ] それはダメだろ 追加されたりしたらインデックスが狂う
183 名前:デフォルトの名無しさん [2013/12/12(木) 22:12:10.95 ] どういう意味かと悩んでしまいましたが つまり、下のように書けば問題解決かな…? synchronized(objList) { SampleClass obj = objList.get(i); obj.method(); }
184 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:29:13.51 ] >>183 iはどっから来るんだ? for (int i = 0; i < objList.size(); i++) { >>183 or >>181 } たとえばこれだと、ループ回してる最中にリストの途中へ要素が挿入されたら 同じ要素に対して2回以上methodが呼び出されてしまう可能性があるぞ
185 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:36:08.78 ] インデックスはそれに関連する変更可能なコレクションがロックされている間だけ有効と考えるのが無難 つまり>>184 の例ならforの外側でobjListをロックする
186 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:44:39.26 ] >>184 なるほど・・・ ループを使う場合は全体をsynchronizedで囲って↓みたくすべきという事ですね synchronized(objList) { for(int i=0;i<objList.size();i++){ objList.get(i).method; } } ループは考えてませんでしたが確かにiだとループカウンタみたいでした。 ループしなければ>>183 で大丈夫そうかな? ループ扱う際にも注意が必要と分かったので助かりました。
187 名前:181 mailto:sage [2013/12/12(木) 22:47:09.34 ] 名前にレス番書き忘れてた そして>>185 の方も補足ありがとうございます。
188 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:50:29.32 ] ループでなくてもiを一時的に保持してる以上はズレるでしょ。 仮にiがメソッドの引数なら、結局使う側でロックしなきゃいけない スレッドセーフ(笑)なクラスが出来上がる。
189 名前:デフォルトの名無しさん [2013/12/13(金) 00:07:42.09 ] パブリックなメンバ変数のみを持ったクラスを継承して、いろいろメソッドを追加したい それから、継承元のオブジェクトを元に、継承先のオブジェクトを生成する手段も用意したい 継承元は将来頻繁に変更することが想定されているので、継承先オブジェクトを生成するメソッドで 継承元のすべてのパラメータを列挙してうんぬんというのは避けたいところ こういうことするのに簡単な方法ってない? Field使ってやればいけそうだけど、あまりスマートではないなぁと思って あと、Java的にはメンバ変数の継承はなにか問題あったりする?
190 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 00:13:58.23 ] www.ipa.go.jp/security/awareness/vendor/programmingv1/a03.html Javaって怖いね
191 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 00:14:54.97 ] ゆとり乙
192 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 00:23:46.81 ] Lombok使ってみたがこれ他の機能との相性は大丈夫なんか? あとListのゲッターはnullなら新しいArrayList返す実装が好きだからそこが不満
193 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 00:29:14.67 ] >>189 継承しないで包含する インスタンスの生成はコンストラクタに渡すだけ
194 名前:デフォルトの名無しさん [2013/12/13(金) 00:50:42.28 ] >>193 渡したオブジェクトのメンバ変数へどうやってデリゲートすればええのん? 元クラスのメンバ変数の定義変えたときに、先クラスの定義変えるとかはやりたくない あと、型情報落ちるのもできれば勘弁
195 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:01:21.64 ] >>194 パブリックなメンバ変数のみを持ったクラス getパブリックなメンバ変数のみを持ったオブジェクト() { return this.パブリックなメンバ変数のみを持ったオブジェクト; } 難しく考えるな
196 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:09:25.20 ] >>194 元クラスのメンバの定義の変化にまで対応するにはメタプログラミングが必要になる が、到底実用的ではないのでほとんどやってる人はいない
197 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:11:15.66 ] >>195 お前は状況設定が理解できてないな 「いろいろメソッドを追加したい」と言ってるんだから単なるデリゲートじゃ駄目 元クラスのメンバを利用したメソッドを作り、かつ元クラスのメンバの定義が変更されても追加したメソッドに修正せずに済む方法を求めている そんなものはメタプログラミングしかない
198 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:14:36.86 ] >>197 その要件なら包含で満たせるよね
199 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:18:52.01 ] 全フィールドを手でコピーしたりするようなコード書くのは 修正が面倒だから嫌だという意味だろ? それだけなら包含でいい
200 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:19:03.73 ] >>198 コンポジションはコーディング時の元クラスのメンバ定義に依存してしまうので、 コーディング後に元クラスの定義が変更されたらそれに対応することは出来ないよ。
201 名前:デフォルトの名無しさん [2013/12/13(金) 01:22:09.17 ] >>195 すまん、要件が抜けてた フレームワークの仕様上、持ってるオブジェクトのメンバ変数にアクセスするのに1段で行けないと問題がある aInstance.getBVariable() や aInstance.bVariable は おkだけど、aInstance.getB().variable は多分ダメ
202 名前:デフォルトの名無しさん [2013/12/13(金) 01:26:16.82 ] うお、伸びてた みんなありがとう なんか難しいっぽいな… Javaむずいお('・ω・`)
203 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:27:54.73 ] >>201 その仕様になってる理由は?
204 名前:デフォルトの名無しさん [2013/12/13(金) 01:33:47.98 ] >>203 フレームワークがライブラリに依存してる JSONICなんだけど、デコードする際の仕様がそんな感じっぽい 調べきれてないのでもしかしたらなんか迂回策あるかもしれないが…
205 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:36:14.07 ] >>204 オブジェクト指向を正しく使うためにコーディング規約で制限してるのかと思ったよ
206 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:45:03.37 ] 関係ないけど、javaxにjsonのfactory追加されるな。
207 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:50:17.30 ] 問題は内部実装に何使ってるかだな 既存のサードパーティ製のライブラリをjavaxに配置しただけなら特に嬉しくはない
208 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 04:09:03.42 ] 自分は、Androidアプリ作るためにEclipse使ってますが NetBeansも入れています。 そこで、javaのデスクトップアプリを作るには どちらを、使ったほうが良いでしょうか。 漠然とした質問で申し訳ありません。
209 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 04:16:10.64 ] ossforum.jp/node/977
210 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 05:20:16.54 ] >>209 レスありがとうございました。 javaアプリの開発は、NetBeansでおこないます。
211 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 10:12:54.78 ] >>207 Factoryだから実装は隠蔽されるだろし、環境ごとに違うだろう。
212 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 12:46:15.22 ] >>211 JSONのライブラリなんて環境依存な要素がないし、Oracle JDKかOpenJDKかの違いしかないでしょ。
213 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 15:32:04.72 ] >>212 何言ってんだお前は。どのサードパーティでも隠蔽されるって話だろ。
214 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 15:59:02.96 ] >>192 とりあえずandroidでは問題なし allargsコンストラクタ効かないけど。 フィールドに@notnullつければヌルポ投げるゲッター生成可能 使ってないからあまり詳しく知らないが。
215 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 16:15:45.27 ] >>213 ファクトリーメソッドパターンを使ってオブジェクト指向的に隠蔽するという話ではなく、 物理的に内部実装が隠蔽されるという話?
216 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 16:22:47.46 ] >>215 物理的の意味がわかりませんが。 xmlのAPIとかと同じ。
217 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 16:28:39.79 ] >>216 XMLのAPIは内部でどのような実装を使っているか確認できますケド。 ideone.com/l4e1rv
218 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 16:51:28.15 ] androidはスレちがい
219 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:08:10.51 ] >>217 どこらへんが物理的かわからない。 情報だけだろ。
220 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:09:54.06 ] >>216 い み ふ、いみふ
221 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:16:00.54 ] 先ほどから日本語の読み書きに支障が起きている人がいますね。
222 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:17:29.06 ] 隠蔽って依存しないって意味だろ。 確認できたから何だって言うんだ?
223 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:23:22.74 ] >>222 依存度の話は誰もしていませんよ。 JSONを実装するにあたりサードパーティ製のライブラリを取り入れたのなら、 何を取り入れたのかを確認したいだけです。そこに依存も糞もありません…。
224 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:45:26.75 ] JSONを実装するのか、偉い
225 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:49:10.70 ] >>223 なら最初からjar見ろよ。 見て、ふーんで終わりだろ。 コアAPIもソースのauthorで誰が書いたかわかるが、別に気にしないだろう。
226 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:55:54.06 ] >>225 ああ、そのレベルの方ですか。 Java標準ライブラリにはバグや変わった挙動があるので、 サードパーティ製のライブラリを取り入れた場合はそのライブラリの癖を把握しておくことが必須ですよ。 「仕様通りに書いたのに動きません。ライブラリのバグです」は仕事では言い訳にならないからね。
227 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 18:03:08.25 ] >>226 アホか。 問題あるならfactoryでなくて自分でインストールしたライブラリ使え。
228 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 18:03:16.21 ] 「実装する」の意味がわかんやつにいわれてもなー、国語かな
229 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 18:09:04.52 ] なかなか釣れませんね〜^^
230 名前:デフォルトの名無しさん mailto:sage [2013/12/14(土) 02:25:59.52 ] xercesとかXalanとかfastinfosetとかJOGLが複数バージョン内部パッケージにあるとかrhinoとかnashornとかもう嫌だ