【初心者】Java質問・相談スレッド79【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/01/11(水) 15:23:13質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・内部クラスから外部クラスのローカル変数は使えない。他の方法を考えろ。
前スレッド
【初心者】Java質問・相談スレッド78【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1135217569/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
次スレは>>980あたりでお願いしまする。
0232デフォルトの名無しさん
2006/01/14(土) 23:31:300233デフォルトの名無しさん
2006/01/15(日) 00:52:02クラス名を表示させるにはどう記述すればいいんでしょうか?
0234デフォルトの名無しさん
2006/01/15(日) 00:54:030235デフォルトの名無しさん
2006/01/15(日) 01:06:130236デフォルトの名無しさん
2006/01/15(日) 01:38:17アプリなら取れる
アプレットならアプレットに発行したCookieなら取れるが
アプレットが乗っかっているブラウザに発行したCookieは取れない
このアプレットとブラウザは別のクライアントとみなされる
ブラウザ2枚立ち上げた場合は取れる、なぜなら通常Cookieの保存場所は同じブラウザでは共有するから
0237デフォルトの名無しさん
2006/01/15(日) 02:01:00たとえば、main.javaとexample.javaと二つのファイルがあるときに
main.javaからexample.javaに書かれたクラスの利用
0238デフォルトの名無しさん
2006/01/15(日) 02:02:16同じパッケージならそのままクラス名書けば使える。
違うパッケージならインポートすればいい
0239デフォルトの名無しさん
2006/01/15(日) 02:12:21ありがとう でけた
0240デフォルトの名無しさん
2006/01/15(日) 02:32:00>インタフェースのメリット一つとして、
>実装を差し替えられることを挙げておこう。
>たとえば、以下のコードは便利だとは思わないか?
>interface Executale { public void execute(); }
>があったとして、
>Executable exec = (Executable)Class.forName("HogeExec").newInstance();
>exec.execute();
>この"HogeExec"という文字列を外部ファイル化しておけば、
>コードを再コンパイルせずに、実装を切り替えることができる。
>ファクトリーやランチャー、デバッグモジュールなど
>アイデア次第で使い道が広がるだろう?
すごいオブジェクツ思考ですな
否定はしないが、同じことが通常のクラスでも出来てしまう例だな
0241デフォルトの名無しさん
2006/01/15(日) 02:46:54プラグイン系は全部そういう実装だろ
0242デフォルトの名無しさん
2006/01/15(日) 02:48:30わからんやつだな
インターフェースの話になっていないと言うことだ
0243デフォルトの名無しさん
2006/01/15(日) 02:52:41アレと一緒なんだよ文字列の==比較は・・・・
おまえら全くわかっていないよな
「文字列の==比較は常に答えが決まっているわけではない」と言うことだよ
「大抵の場合、trueになるが・・・」というだけ
0244デフォルトの名無しさん
2006/01/15(日) 02:54:020245デフォルトの名無しさん
2006/01/15(日) 02:59:16243 のブログ ご来店 100000人突破記念
===========================================================
今日の訪問者 10人
次のキリ番は? 110000人目です
ごゆっくり
お茶でもどうぞ
^^)っ且
だからさ、GCが走るタイミングなんて決まっていないだろ?
アレと一緒なんだよ文字列の==比較は・・・・
おまえら全くわかっていないよな
「文字列の==比較は常に答えが決まっているわけではない」と言うことだよ
「大抵の場合、trueになるが・・・」というだけ
RSS
この記事のトラックバック
http://pc8.2ch.net/test/read.cgi/tech/1136960593/243
===========================================================
0246デフォルトの名無しさん
2006/01/15(日) 03:43:41何か嫌なことでもあったのか?
0247デフォルトの名無しさん
2006/01/15(日) 08:28:47まず最初にユーザIDとパスワードを入力するログイン画面を作りました。
ここからその画面にある「ログイン」というボタンを押してログイン後の画面
を描画したいのですがどのような記述をすればよいのでしょうか?
アプレットのようにrepaint()のようなメソッドが用意されているのでしょうか?
0248デフォルトの名無しさん
2006/01/15(日) 08:31:430249247
2006/01/15(日) 08:51:48なるほど!それは使えそうです!
・・・でも、いくつか画面を遷移していくのでやっぱり画面を再描画する処理が必要なんです('A`)
0250デフォルトの名無しさん
2006/01/15(日) 08:53:210251247
2006/01/15(日) 09:23:26それなんかいけそうっすね!ちょっと調べてみます
0252247
2006/01/15(日) 10:38:47これ簡単だ('A`)
0253デフォルトの名無しさん
2006/01/15(日) 13:35:50質問するレベルじゃない
0254デフォルトの名無しさん
2006/01/15(日) 13:40:08ほんと、馬鹿多いな
0255デフォルトの名無しさん
2006/01/15(日) 13:42:16現在JAVAで、4つの数字を四則演算を使い10にするゲームを作っています。
4つの数字をランダムメソッドで生成して、その4つの数字が10になるかを確かめて、10になる数字であれば、rabelに貼り付け、四則演算+−×÷記号はチョイスで選択する形にしました。
しかし、イベント処理で答え合わせの際、チョイスで選んだ四則演算が、答え合わせの式に使えません;_;
この問題で行き詰っています。
どなたか、良いアイディアをいただけないでしょうか??
また、参考になるプログラム等ありましたら、教えてください!!
ご教授お願い致します。
0256デフォルトの名無しさん
2006/01/15(日) 13:48:22宿題スレ行け!
0257デフォルトの名無しさん
2006/01/15(日) 13:54:46if("+") {
kotae=a+b;
}
else if("÷"){
kotae=a/b;
}
とかやるしかないんじゃないの?
0258デフォルトの名無しさん
2006/01/15(日) 13:56:550259デフォルトの名無しさん
2006/01/15(日) 13:59:07オブジュクト指向言語使ってるんだから
それらしく考えれば答えは見つかるよ
メソッドとかメッセージってキーワード出てきたでしょ?
0260デフォルトの名無しさん
2006/01/15(日) 14:02:46イベントで取得した演算子を表すオブジェクトor数値だと、そのまま計算ができない
ということだろうか?
この流れは計算スタックの生成ですか・・・
0261デフォルトの名無しさん
2006/01/15(日) 14:04:42>>109とか?
チョイスって何なんだろ。。。
0262デフォルトの名無しさん
2006/01/15(日) 14:05:47を使えば全然速度も出ると思うんです。
(実際に1日数万PVのサイトを上記の構成で使ってます)
みたいなことを思わず面接で言ったら
「うちは Javaで飯食ってるので、そういう低レベルな言語を得意げに話されても困ります」
と言われました。
0263255
2006/01/15(日) 14:06:35javaを独学で学びゲームを作ってみることにしたのですが、初めてで、おそらくjava経験者にとっては単純なプログラムなのでしょうが、私は頭が混乱してきました。
もう一度やってみます。
>>256
宿題ではなく独学でやっているので、こちらに書いてしまいました。
申し訳ありませんでした。
0264デフォルトの名無しさん
2006/01/15(日) 14:09:56アセンブラの方が速いですよ
と言ってるのと変わらんな
とりあえず貴方は面接する会社を間違えている
0265デフォルトの名無しさん
2006/01/15(日) 14:13:52JAVAで10分間に6万トランザクションっていう
システムあるよ
0266デフォルトの名無しさん
2006/01/15(日) 14:25:58どっちみちレスポンスはJavaServlet/JSPの方が速いと言うのは知っているよな?
0267デフォルトの名無しさん
2006/01/15(日) 14:26:210268デフォルトの名無しさん
2006/01/15(日) 14:27:48GUI で「チョイス」ならば、AWT の Choice かな
Swing だと JComboBox だし
0269デフォルトの名無しさん
2006/01/15(日) 14:29:46数字が0〜9まであったとして(0も含むと仮定して)
単純に最大でも10000パターン
正解パターンはそんなに無いからあらかじめ他のプログラムでprintしておくのもいいかもね
0270デフォルトの名無しさん
2006/01/15(日) 14:31:52表示部分と値を格納できずに
選択されているそのもののオブジェクト(例えば文字列)か、選択されたインデックスしか拾えないのか
0271デフォルトの名無しさん
2006/01/15(日) 14:46:37楽な気がする。
int cal(int i1
int i2)みたいな定義をしたインタフェースを用意して…
0272デフォルトの名無しさん
2006/01/15(日) 14:52:44全体の相関性も考慮しないといけない
0273デフォルトの名無しさん
2006/01/15(日) 14:56:48in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
とすると文字列しか受け取れないのですが、
文字列以外を受け取りたい場合どうすればいいでしょうか?
0274デフォルトの名無しさん
2006/01/15(日) 14:58:31でいいじゃないか?
0275デフォルトの名無しさん
2006/01/15(日) 15:03:18(API から引用)
InputStreamReader はバイトストリームから文字ストリームへの橋渡しの役目を持ち、…
0276デフォルトの名無しさん
2006/01/15(日) 15:04:23普通、逆の質問が来るんだけどな
0277273
2006/01/15(日) 15:10:45今までは
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
in.readLine();で受信できたのですが、
InputStream is = socket.getInputStream();
とすると、is.readLine()で出来るはずもなく・・・
どうすればよいでしょうか?
0278デフォルトの名無しさん
2006/01/15(日) 15:20:29とりあえず >>1 読んできてください
0279デフォルトの名無しさん
2006/01/15(日) 15:21:35int data;
while((data=is.read())!=-1) {
System.out.println(data);
}
とかやる
結果として何がやりたいのか全部言った方が話が早いと思うけど?
0280273
2006/01/15(日) 15:32:23ちなみにサーバとクライアントというものを作り、
クライアントが数式を送って、サーバが解析して、
答えを返すって感じなのですが、
サーバから帰ってくるのは文字列なので
一回一回doubleとかに変換してたので
変換せずにdoubleのまま受信できないかなと思いまして
0281デフォルトの名無しさん
2006/01/15(日) 15:43:29たとえばアプレット起動中に「Ctrl」キーや「print screen」を押したことを読み取ったり、それを自サーバに送信するなど
0282デフォルトの名無しさん
2006/01/15(日) 16:03:40この人に文句言ってやってください><
http://homepage3.nifty.com/hippo2000/perltips/javaperl.htm
0283デフォルトの名無しさん
2006/01/15(日) 16:51:43どうも1つの関数が長くなりがちなのですが・・・
0284デフォルトの名無しさん
2006/01/15(日) 16:53:54読み取り側でdoubleで扱いたいのなら、最初に、サーバ側でdoubleのデータとして送らないと意味が無いのだよ
OutputStreamでもいいけど、doubleって確定してるんならDataOutputStreamでwriteDouble()して
クライアント側でDataInputStreamでreadDouble()してやればらくだと思う
だから
>サーバから帰ってくるのは文字列なので
とは限らない
仮に文字列だとしてもDouble.parseDouble()っていうメソッドでdoubleに変換できる
0285デフォルトの名無しさん
2006/01/15(日) 16:56:23共通に使えそうな固まり部分だけを別関数にする
コレを究極まで押しすすめると、中身1行のみの関数がズラーっといっぱい出来ちゃって逆にわかりづらくなるという
0286283
2006/01/15(日) 17:03:29確かに、1行関数が多発しそうですね。
適度に使えそうな固まりを見つけられて居ないのがやはり原因でしょうか。
私は簡単に分かるような関数以外は
処理を一通り書いた後に分けようとするのですが、
余り上手い方法だと思えないのですが・・
固まりを見つける方法って色々あると思いますが、
皆さんはどういった見つけ方・分け方をしていますか?
0287デフォルトの名無しさん
2006/01/15(日) 17:11:20■機能で分ける場合
・ファイル関係扱うもの
・DB関係扱うもの
・文字列の変換作業を行うもの
■オブジェクト指向設計をしていくと自然と決まっていく場合
>私は簡単に分かるような関数以外は
>処理を一通り書いた後に分けようとするのですが、
>余り上手い方法だと思えないのですが・・
開発初期の段階でクラス設計が完璧な人はいない
作っていくうちに設計上の矛盾とかがあって当然なので
その方法でいいと思う リファクタリング
0288283
2006/01/15(日) 17:20:59ありがとうございます。
とりあえず動く物を作ってからってのは
割と共通なんですね。
0289デフォルトの名無しさん
2006/01/15(日) 17:38:100290273
2006/01/15(日) 17:58:33クライアントの受信が
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
なので文字列しかないと思うのですが・・・
in = new DataInputStream(socket.getInputStream());
とすると、推奨されない API を使用またはオーバーライドしています
って表示されますorz
0291273
2006/01/15(日) 18:01:39API見たらreadLineはダメみたいらしいですね
もうちょっといろいろいじってみます
0292130
2006/01/15(日) 18:04:52htmlへの貼り付け方教えていただけ無いでしょうか?
Eclipseでは正常に動いているので後はhtmlファイルだけだと思うのですが・・・
ttp://49uper.com:8080/html/img-s/105708.zip
0293デフォルトの名無しさん
2006/01/15(日) 18:14:34定数とか以外でもつけた方がいいのでしょうか?
例えば、
final HttpServletRequest request ・・・・。
とか。
0294デフォルトの名無しさん
2006/01/15(日) 18:39:34しないほうがいい。
参考
http://www-06.ibm.com/jp/developerworks/java/030117/j_j-jtp1029.html
0295デフォルトの名無しさん
2006/01/15(日) 18:45:24クラス・メソッド→必要なものには付けること。必要でもないときは付けるべきでない。
メンバ変数→immutable目指すなら付けまくる。beansならあまり付けない
仮引数→付けること推奨。
一時変数→付けられるなら付けとけ。
仮引数・一時変数にfinal付けとくと後で変更されることがないので、
コードを読む時に頭の中で押さえておかなければならない要素が減らせて少し幸せになれます。
ちなみに、速度の点では変わらないと思って差し支えないです。
0296デフォルトの名無しさん
2006/01/15(日) 18:53:31<applet code="shooting.Shooting" width=350 height=600></applet>
0298デフォルトの名無しさん
2006/01/15(日) 21:26:56%JAVA_HOME%\jre\lib;%JAVA_HOME%\lib;.;%CATALINA_HOME%\common\lib\servlet-api.jar
にしようとすると環境変数を置き換えることはできません。(%は1つしか使用できません)
となって設定できません。
[Monitor Tomcat]→[Start service]でhttp://localhost:8080/を表示させるというものなのですが。
0299デフォルトの名無しさん
2006/01/15(日) 21:29:440300デフォルトの名無しさん
2006/01/15(日) 21:48:39クラスの final 宣言について、
>final の使用によって、そうした決定が設計を制限する可能性がある
>複雑でステートフルなクラスを final と宣言すると、オブジェクト指向の設計を妨害し、
>より小さく、より整合性のあるクラスに簡単にリファクタリングできない
と書いてあるが、よくわからん。必要になった時点で final を外せば良いんじゃないのか?
通常は、継承はカプセル化を壊すため、
継承を前提として注意深く作ったりドキュメントを充実させたクラス以外の public なクラスは
final を宣言すべきなのではないか?
0301デフォルトの名無しさん
2006/01/15(日) 21:52:37コンストラクタをprivateにしておく方がいいよ
0302デフォルトの名無しさん
2006/01/15(日) 22:16:29final つけるより、クラス自体を public にしない方が良いんじゃないか?
0303デフォルトの名無しさん
2006/01/15(日) 22:33:52public じゃなければ、そのパッケージを実装した人の責任において
継承すればいいからな。
仮引数に final を付けるかつけないかみたいなもの、
それを使う側にとっては、見掛けが変わらない。
0304298,299
2006/01/15(日) 23:01:24たぶん父親はXPを持っているのでCD借りる&学校でやるしかないですかね。。
0305デフォルトの名無しさん
2006/01/16(月) 00:13:21マニュアル読まないで決め付ける人は嫌いです
0306デフォルトの名無しさん
2006/01/16(月) 02:35:37JRunとかいろいろありそうなんだけど、転職にも有利になりそうな経験という
意味ではどこのを使ってたらいいの?
0307デフォルトの名無しさん
2006/01/16(月) 03:38:36それを調べるのも経験。
0308デフォルトの名無しさん
2006/01/16(月) 03:43:16数分おきにタスクを実行したい場合にThread.sleep()使って
お手軽に作ってるんだけど、これとTimerの違いって一言で言うと
なんなんだろ?
0309デフォルトの名無しさん
2006/01/16(月) 10:18:25基本という意味ではTomcatですが、転職を考えているのなら
JRunなりWeblogicなりWebsphere Application ServerなりJOnAsなりResinなり、
幅広いサーバに慣れておいて損はないと思います。
その意味で>>307は正しい。
0310デフォルトの名無しさん
2006/01/16(月) 12:21:31マニュアル見ればTimerのやれることがわかるとおもうんだけど
実際定期処理するならsleepでまわすほうが面倒
0311306
2006/01/16(月) 12:32:25やっぱり近道なしかぁ。。。どのみち今の実力じゃ何でも同じかも知れないけど、
とりあえず聞いたことのあるTomcat,JRun,Websphereあたりから地道にはじめてみます。
どうもありがとう。
0312デフォルトの名無しさん
2006/01/16(月) 13:08:28サービスに頼るからそうなるんだ。
まさかWinMeなんて穴だらけなトンデモOSをサーバとして
Tomcat運用するわけではあるまい。
拡張子がexeやmsiになってるの選ばないでzipやtar.gzに
なってるのを選んでインストールしろ
0313デフォルトの名無しさん
2006/01/16(月) 13:09:310314デフォルトの名無しさん
2006/01/16(月) 13:16:34a. OSの種類にかかわらず同じVMをインストールすれば、Javaプログラムを動作させることができる。
b. 使わなくなったメモリを自動的に開放する仕組みを「メモリリーク」と呼ぶ。
c. すべてのOSでマルチスレッドを実現する事ができる。
d. JavaとJavaScriptとは動作環境が違うだけで文法上は同じである。
0315デフォルトの名無しさん
2006/01/16(月) 13:18:03お願い誰か解いて下さい。
0316デフォルトの名無しさん
2006/01/16(月) 13:18:170317デフォルトの名無しさん
2006/01/16(月) 13:18:370318デフォルトの名無しさん
2006/01/16(月) 13:20:440319デフォルトの名無しさん
2006/01/16(月) 13:21:450320デフォルトの名無しさん
2006/01/16(月) 13:21:55まだまだ問題あるのでどんどんいいっすか?
0321デフォルトの名無しさん
2006/01/16(月) 13:22:32a. str1 == str2
b. str1.equals(str2)
c. str1 = str2
d. equals(str1, str2)
0322デフォルトの名無しさん
2006/01/16(月) 13:24:58a. str1 == str2
b. str1.equals(str2)
c. str1 = str2
d. equals(str1, str2)
0323デフォルトの名無しさん
2006/01/16(月) 13:25:50public class Foo
public int calculate(int a, double b) {
//省略
}
}
a. public int calculation(int a, double b) {…}
b. public int calculate(int c, double d) {…}
c. public abstract int calculate(int a, int b){…}
d. public abstract int calculate(double a);
0324デフォルトの名無しさん
2006/01/16(月) 13:25:59a. str1 == str2
b. str1.equals(str2)
c. str1 = str2
d. equals(str1, str2)
0325デフォルトの名無しさん
2006/01/16(月) 13:27:14a. str1 == str2
b. str1.equals(str2)
c. str1 = str2
d. equals(str1, str2)
0326デフォルトの名無しさん
2006/01/16(月) 13:27:24http://pc8.2ch.net/test/read.cgi/tech/1133778112/
0327デフォルトの名無しさん
2006/01/16(月) 13:27:50public class Foo
public int calculate(int a, double b) {
//省略
}
}
a. public int calculation(int a, double b) {…}
b. public int calculate(int c, double d) {…}
c. public abstract int calculate(int a, int b){…}
d. public abstract int calculate(double a);
0328デフォルトの名無しさん
2006/01/16(月) 13:28:37public class Foo
public int calculate(int a, double b) {
//省略
}
}
a. public int calculation(int a, double b) {…}
b. public int calculate(int c, double d) {…}
c. public abstract int calculate(int a, int b){…}
d. public abstract int calculate(double a);
0329デフォルトの名無しさん
2006/01/16(月) 13:32:070330名無し募集中。。。
2006/01/16(月) 13:42:110331デフォルトの名無しさん
2006/01/16(月) 15:22:27コンパイルエラーにはなっていないのですが、
サーブレット実行時に、「クラスが見つからない」というエラーが発生します。
なお、見つからないクラスは、フリーのjarファイルで、クラスパスには追加してあるんですが、
それ以外に何か設定が必要なんでしょうか?
どなたか教えてください。
■ このスレッドは過去ログ倉庫に格納されています