1 名前:デフォルトの名無しさん [2010/05/01(土) 12:46:59 ] 1 名前:デフォルトの名無しさん[] 投稿日:2010/03/16(火) 10:23:04 プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 ttp://pc11.2ch.net/hp/ Webプログラミング ttp://pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 ttp://www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド ★★Java質問・相談スレッド137★★ pc12.2ch.net/test/read.cgi/tech/1268702584/ 次スレは>>950 あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 ttp://www.wikiroom.com/java/
263 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 02:59:58 ] >>261 定数クラスはclass装飾子が抜けてたりCONSTANT_Aが二つあったり、 enumの方は,が.になってたり、コンストラクタやメンバ変数が必要だったりしませんか?
264 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 03:15:30 ] また Effective Java かぶれが暴れてんのか。
265 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 03:32:53 ] カオティックな板だな
266 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 03:50:49 ] 初心者じゃなくなったって実感した時って どんな事を理解・実装できたあたりからですか? 教えてる新人の場合なら〜ってケースでも 教えてもらえると有難いです
267 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 04:22:36 ] 30年もJavaばかりやってると新人って気持ちじゃなくなるな
268 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 04:24:09 ] 30年なんてまだまだ新人だろ
269 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 04:27:58 ] 15年前、これは世界を震撼させる!と思って始めて まったくそんなことは無かった
270 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 04:28:13 ] >>266 interface の使い方を理解したときも、その1つと言えるんじゃないかな。 interface には実装のないメソッド宣言だけがあって、 それを implements したクラスはメソッドの実装を書かなくてはならない、 ということ事態は初心者でも理解できるんだけど、 実際どういうふうに interface を使えばいいかが、初心者には難しい。
271 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 04:30:28 ] 厳密に定義するなら、始めてから一定の期間が経過していれば初心者ではなくなるな Javaの場合どの程度の期間が妥当かは知らんが、自動車なら1年だな
272 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 04:32:59 ] 入門書に書いてあること 一通り、入門書見ずに出来るようになれば 初心者を脱したと。初級者だ 入門書レベルのことじゃ仕事にはならないし 趣味でやってる人間なら十分かもしれないがw
273 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 04:34:47 ] まぁそんなところだな。
274 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 04:43:35 ] 未だに初心者のころと同じようにわからないことばかり。
275 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 04:46:12 ] たいていの新人は、Java初心者ってだけじゃなくプログラミング初心者も兼ねてるから >>261 が紹介してるような本をそういう初心者が最初から読んだってあまり効果は無いと思う 入門書クリアレベルじゃたいしたソース書いたことないだろうし せめて中級者くらいの人が参考に読めばいいと思うよ
276 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 05:59:01 ] 本は勉強開始してから、1、2年くらいの新人が読むものかと。 それを過ぎたら面白そうなOSSのソースでも読んで、知的欲求を満たすもんだと思う。
277 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 12:57:27 ] すみません、実行時に unable to load native library: can't find dependent libraries と でてしまいます。どうすれば実行できるように なるのでしょうか?
278 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 13:00:02 ] >>258 読んだ 読書会みたいなのもあるみたいね >>207 *.Z知らないから的外れかもしれないけど ライブラリ commons.apache.org/compress/ windows用exe www.gzip.org/
279 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 13:02:29 ] >>277 Classpathとjavaのバージョン
280 名前:277 mailto:sage [2010/05/09(日) 13:23:50 ] >>279 レスありがとうございます。 バージョンはjdk1.6.0_20で、 classpathはカレントを指定してます。
281 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 13:33:25 ] >>280 カレントにjarファイルをコピー
282 名前:277 mailto:sage [2010/05/09(日) 13:56:06 ] >>281 カレントに置いても実行できませんでした。
283 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 14:09:53 ] >>282 エラーメッセージは?
284 名前:277 mailto:sage [2010/05/09(日) 14:16:06 ] >>283 同じエラーです。 jdkインストールしてから一度も実行できてないです。 別のパソコンにインストールしたのは普通に使えているのに、 なぜかできないです。
285 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 14:45:02 ] >>284 カレントにコピーしたファイル名は?
286 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 15:53:03 ] 例外処理で整数が入力されるまで、何度も再入力を求める場合はどういう風に書けばいいのでしょうか? まず整数かどうかを判別する式が思い浮かびません。
287 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 15:54:46 ] 小数点以下は丸め込むと注意しておいてintにキャストすればいいじゃん
288 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:07:16 ] >>287 おまい、Java 知ってるか?
289 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:49:51 ] 288はなんか脊椎反射で煽っている気がするなぁ。 普通に読んで Integer.decode(入力文字列) とかで変換しちまえという話じゃないのか。
290 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:53:07 ] と、小数入っていると変換できなかったか。
291 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:59:12 ] んーと、Double.valueOf(入力文字列).intValue() とやればいい。
292 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 17:02:30 ] 整数じゃなかったらという判定がいいなら Integer.decode(入力文字列) で例外catch。
293 名前:デフォルトの名無しさん [2010/05/09(日) 17:35:03 ] ようじょクラスを継承するようちえんじクラスがあって、 ようじょ ょぅι゛ょ = new ようちえんじ(); という感じにスーパークラスの型でサブクラスを インスタンス化する場合がありますが、 何の為にわざわざそんな事をするのでしょうか。 ようちえんじ ょぅちぇんじ = new ようちえんじ(); と何が違うのでしょうか。 教えて下さい。
294 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 17:41:38 ] ようじょクラスに対する操作を書いておけば ようじょクラスだろうがようちえんじクラスだろうが適用できる 継承関係がなければ ようじょクラス用とようちえんじクラス用に それぞれ別々に同じような操作を書かないといけなくなる
295 名前:デフォルトの名無しさん [2010/05/09(日) 18:01:12 ] >>294 有難うございます。 その、継承関係でオーバーライドが機能するのは分かるのですが、 ようちえんじ ょぅちぇんじ = new ようちえんじ(); では 継承関係は反故になってしまうのでしょうか。
296 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 18:15:11 ] 別に継承関係があって、 共通処理をようじょクラスで記述できるのなら、 ようちえんじクラスで持っててもいいよ
297 名前:デフォルトの名無しさん [2010/05/09(日) 18:55:48 ] >>296 うーん難しいですね。 よく本とかにのっている List list = new ArrayList(); は ArrayList arraylist = new ArrayList(); とどうちがうのか分かりかねているのです。
298 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:13:48 ] どっちでもいいけど、ある日ArrayListの代わりに パフォーマンス上の理由でLinkedListを使わざるをえなくなった場合、 ArrayList arraylist のコードの方は直さなきゃならないね。 同様に、以下のようなメソッドを別に用意していたとしよう、 void method(ArrayList arraylist){ arraylist.add("unko"); } 上記メソッドはaddメソッドにしか用事がないのに ArrayListで型宣言してるばっかりにLinkedListが渡せない。 これは大いに問題。 上記のような問題が起こらないと言える範囲、 もしくはArrayList特有のメソッドが重要な場合とかは ArrayListをそのまんま変数宣言で使っていいよ。
299 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:14:47 ] >>263 素で間違い 片方はCONSTSANT_Bに でもあれでもまだ問題あり とにかくEffective Javaでも読む .は,に戻す
300 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:17:26 ] List list = new ArrayList(); やっぱり ArrayList じゃなくて LinkedList にしようとか思った時に List list = new LinkedList(); にすれば動く。 ArrayList list = new ArrayList(); だと LinkedList list = new LinkedList(); に修正したとしても、例えば list.ensureCapacity(100); とかいう文があったらエラーになる。 まあ普通はこういうことは起こらないけど、あくまで例として。
301 名前:デフォルトの名無しさん [2010/05/09(日) 19:34:36 ] >>298 >>300 分かりました! 有難うございます!! 余談ながら、実は『=』の左側で型を宣言するのはメモリに 領域を確保する為だという考え方がぬぐえず、だから大抵の 場合スーパークラスよりサブクラスの方がメソッドとかも 増えているので、スーパークラスで確保した領域にサブク ラスを代入すると、オーバーライドや独自メソッドなど 確保領域からはみ出る部分が切り落とされると思えて仕方 なかったのです。
302 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:39:19 ] >>262 thisつけるかどうかはどこのスコープかによる。 迷ってるならCheckStyleを使うべき。CheckStyleがthisの付け忘れを指導してくれる。 もしEclipseを使って開発してるならEclipseにもCheckStyleプラグインがあるからそれを使うといい。 > 内部クラスにもthisとかつけたほうがいいの? > ClassAという内部クラスがあったとき > this.ClassA a = new this.ClassA(); そもそもnewのあとにthis.は不要。 型の頭にthis.つけたらコンパイルエラー。 インスタンス生成のことをよくわかってないようなので 基礎から勉強し直した方がいいと思う。実際に自分でそのソースコードを書いて、 コンパイルして自分の目で確かめてみましょう。 内部クラス等の扱いについての詳しい解説は『Java言語仕様』を読むかそこいらのJava入門サイトでも読んだほうが早い。 >>263 CONSTANT_A(1)という書式は無理にする必要ない。 CONSTANT_Aでもいい。toString()が返す値が1になるかわりに"CONSTANT_A"にかわるだけ。 そこいらのサイトを検索して出るJavaのenumの仕様とサンプルを見るべし。
303 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:40:58 ] >>267 Javaはそんな老けてない。それってC/C++の間違い。Javaは登場してからまだ15年しか経ってないから。 >>269 10年前にJava始めたときは興奮した。それまではC/C++大学で弄っててついでに大学の鯖でHTMLとかCGIとか弄ってたから。 あの頃の多くのJava本がまえがきでJavaの魅力を熱烈にアピールしてC++とここが違うということを強調しまくっていた。 あの頃にあんなまえがき読んだら興奮する。当時はC/C++が最強と言われていたんだから、身震いを覚えた。「C/C++に慣れきっていたら なんだこの変な言語」と思っていたがまだC++もほとんど十分に把握していなかったこととC言語の煩雑さに不満を覚えていたから あのときのインパクトは衝撃的だった。 >>276 しかし、Java以外の言語にある程度経験がある場合、とくにC/C++経験豊富でJava初心者の場合はEffective Javaはおすすめできる。 enumのところに書いてあるコードはそれほど難しくないから読む価値はある。というかenumだけなら買わなくてもここでほとんどそっくりな解説を読めたりする。 惑星から物体の重量を計算するenum型のサンプルとかもろにEffective Java第2版と同じことがかいてある。 java.sun.com/j2se/1.5.0/ja/docs/ja/guide/language/enums.html あとインタフェースを定数にするのがなぜいけないかは、ここを読むのがおすすめ。 www.ibm.com/developerworks/jp/java/library/j-enums/
304 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:52:54 ] >>286-292 文字列の中にドットが含まれていれば小数をみなす というんなら、そんなめんどうくさいことやらずにこうすればいい while(true){ //コンソールから小数を入力するコード if(!input.contains(".")) break; } } 例外のことは考えてない
305 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 20:55:12 ] "one"とかだったらどうするよ?
306 名前:286 mailto:sage [2010/05/09(日) 21:48:41 ] みなさん回答ありがとうございます。 >>305 さんがおっしゃってる通りなのですが、文字が入力された場合などの判別も条件に入れての質問です。 条件があいまいな質問になってしまい申し訳ございません。
307 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 22:04:39 ] >>303 >>267 はジョーダンだろw ジョーダンにマジレスすんなよw
308 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 22:42:27 ] まあ問題はlistでやると使えないメソッドがかなりあると void addFirst(E e) void addLast(E e) void clear() E getFirst() E getLast() boolean offer(E e) boolean offerFirst(E e) boolean offerLast(E e) E peek() E peekFirst() E peekLast() E poll() E pollFirst() E pollLast() E pop() void push(E e) E removeFirst() boolean removeFirstOccurrence(Object o) E removeLast() boolean removeLastOccurrence(Object o)
309 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 22:54:09 ] >>308 それらはListではなくDequeだな
310 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 23:14:49 ] >>305 java.util.regexか Apache Jakarta ProjectのApache OROを使って正規表現で文字列を除外する。
311 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 23:15:44 ] >>308 何の話題? 元の話の流れがわからないのでリンク元を
312 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 23:53:18 ] >>311 linkedlistで使えてlistで使えないメソッド
313 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 00:21:48 ] なるほど。 そやな。 あれはDequeのメソッドも混じってるからな。
314 名前:262 mailto:sage [2010/05/10(月) 00:51:56 ] >>302 ありがとうございました
315 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 01:18:31 ] 内部クラスの内部クラスの内部クラスの内部クラスをオーバーライド
316 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 02:39:19 ] 勢いで作った www51.tok2.com/home/rg550/cgi-bin/hosoku/img0051.java 改良点があれば・・・・
317 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 02:44:17 ] ご苦労さんとしか言いようがないが…
318 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 03:38:57 ] >>316 ('a') ('A') ('3') ('-') 顔文字に見えた
319 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 12:44:29 ] >>318 static importして sysout(MINIS10 +" massage "+ MINIS10) って便利かなと思うけどどう考えてもGRAVE_ACCENT100とか使わないよね・・・
320 名前:デフォルトの名無しさん [2010/05/10(月) 18:00:50 ] どうでもいいことかもしれんけど 式書くとき n=m+12; ←のように詰めて書く? n = m + 12; ←のようにスペース空けて書く? 引数とかでも hoge(n,1,true,a,"abc"); 詰めて書く? hoge( n, 1, true, a, "abc"); 空けて書く?
321 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 18:10:28 ] >>320 Eclipse で Ctrl+Shift+F
322 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 18:10:37 ] >>256 定数にenum使うってswitch文とかで分岐に使うような複数ある定数の場合でしょ? 他の定数と関連付ける必要ない定数はenum使っちゃだめじゃないの?
323 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 18:23:14 ] エフェ厨に構うなよ。2ch 用語覚えた中学生みたいなもんだから。
324 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 18:37:18 ] 俺が昔読んだ入門書には定数だけのインターフェース作る様なこと書いてあった気がした
325 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 18:48:10 ] 昔の入門書といえば、そんなもんかも
326 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 19:10:12 ] 文字列を10文字幅にして、足りない部分は先頭に'0'を付けるにはどうすればいいですか? 例えば "deadbeef"を入力すると"00deadbeef"と返還する処理を書きたいです。 String.format("%010s", "deadbeef"); とやってもダメでした
327 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 20:09:07 ] >>322 あとは多少気持ち悪いけど、 Java上でSingletonやりたい場合かな。
328 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 20:18:59 ] >>322 駄目っていう理由はないと思ってるんだけど。 何でそう思ってるのか知りたい。
329 名前:デフォルトの名無しさん [2010/05/10(月) 20:24:25 ] public class Rect{ package a; public class AA{ int ai; protected int aj; } package b; import a.AA; class BB extends a.AA{ BB(){ AA aa = new AA(); aa.ai = 7;(1) aa.aj = 9;(2) ai = 7;(3) aj = 9;(4) } } (1)-(4)のなかで正しいのはどれですか?
330 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 21:51:29 ] >>329 目の前のPCで動かせばいいだろうが。 何でも聞けると思ってんじゃねえぞ。