1 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:21:29 ] 過去ログ、関連スレッド、よくある質問とその回答、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド101【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1177938653/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980 あたりで。
730 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 19:58:15 ] クライアントサーバ方式のチャットを作っています。 クライアントがメッセージを受け取り、TextAreaに追加する際 同時にキャレットを動かし最新の発言が見えるようにしています。 これだとログをさかのぼり読んでいる最中に発言があると\(^o^)/オワタなので、 スクロールバーが一番下にある状態に時だけキャレットを動かしたいと思うのですが どうやってそういう状態を知るのか分からず、実装できません。 助言をください。 以下が現在使っているメソッドです。 public void addMessage(String str) { messageArea.setText(messageArea.getText() + "\n" + str); try { messageArea.setCaretPosition(messageArea.getText().length()); } catch (Exception ex) { } }
731 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:40:11 ] >>730 JScrollPane#getVerticalScrollBar()で取得した垂直スクロールバーに対して、 getMaximun()で最大値, getValue()で現在のスクロール量が取れる。 スクロール可能な実際の最大値は、getMaximun()の値から縦の長さ分引いた値になるので注意。 あとは、この辺組み合わせればできるだろ。
732 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:50:06 ] >>730 ttp://blog54.fc2.com/g/grodictionary/file/20061015215500.jpg 図解してみた。
733 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:56:09 ] >>732 グロ画像。今時こんなの貼るやついるんだな。
734 名前:sage [2007/06/22(金) 21:13:49 ] コマンドプロントにて javac ファイル名.javaでエンターを押し コンパイラされて文字が出てくるはずだと思うのですが 何故か出てきません public class ExerciseD2L1 { public static void main(String args[]) { System.out.println("ここに文字いれてます"); } } ↑間違っていますか?
735 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 21:17:15 ] コンパイルしただけじゃだめだぞw 後に実行しないと。 >java ExerciseD2L1 エンター
736 名前:sage [2007/06/22(金) 21:27:22 ] 解決できました! >>735 さんありがとうございます><
737 名前:736 mailto:sage [2007/06/22(金) 22:16:59 ] 先ほどのものですが 新しくメモ帳で同じようなものを作ったのですが public class SampleD2L2 { public static void main(String args[]) { System.out.println("文字"); } } これでコマンドプロントでjava SampleD2L2 エンターを押しても Exception in thread "main" java.lang.NoClassDefFoundError: が出てきます。 ・String に == は使うな。equals() を使え。 と書いてありますがそうするとどう書いていけばいいのでしょうか? ちなみに参考書を買ってやっているのですが 参考書ではjavac ファイル名.java エンターなのですが・・・・ ちなみにどちらをやってもできませんOTL
738 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 22:20:17 ] >>737 > javac SampleD2L2.java でコンパイルが成功したら > java SampleD2L2 で実行。
739 名前:736 mailto:sage [2007/06/22(金) 22:27:13 ] >>738 さんありがとうございました>< 無事解決しました
740 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 23:13:03 ] >>736 読んでいる参考書を晒して欲しい もしかしたらば、とんでもなく糞本を読んでいるかもしれない。 丸の内なんとかとか・・・
741 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 23:28:19 ] awtコンポーネントとswingコンポーネントを Frame、JFrame内に共存させてもいいんでしょうか。 試してみたところ不具合は起きませんでしたが、 この先疑問を抱えながら開発するのは不安なので ご存知の方教えてください。
742 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:10:22 ] 不安だったらやめとけ
743 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:29:39 ] うちのPCは家庭用最先端な4コアCPUです。 こういうのはマルチスレッドの処理が速いと聞きましたが、 このスレッドってJAVAのThreadと同じものですか? Thread使って並列処理するとうちのPCの性能を生かせるのでしょうか? それとも、JAVAのThreadとは別物なのでしょうか?
744 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:34:26 ] 匿名クラスってコンストラクタ定義できないっスよね?
745 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:56:02 ] >>744 できない。 インスタンス初期化子使うかフィールド宣言に初期化子付けるか、そーゆーので代用。
746 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 01:34:28 ] 増えたと思ったらw >>741 軽量が先、重量が後に描画される。
747 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 02:17:31 ] >>743 VMの実装によると思われる。 たぶん、凡人が考えるようなことはやっている。
748 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 04:14:36 ] java.util.concurrent.ExecutorService の中にタスクが残っていなければ shutdown したいんですが、 独自の ExecutorService を作る必要がありますか?
749 名前:デフォルトの名無しさん [2007/06/23(土) 07:41:23 ] GUIのレイアウトについての質問です。 ウィンドウを左右二つのパネルに分けています。 左のパネルには可能な限り大きな正方形を表示します。 右のパネルには色々な情報を表示します。 左のパネルの横幅は縦幅以上には広がりません、 (1) ウィンドウが横に広がれば 右のパネルの横幅は変わらず、左のパネルだけが広がります。 (2) 横幅=縦幅の時にウィンドウが横に広がれば 左のパネルは変化せず、右のパネルがだけが広がるようにしたいです。 GridBagLayoutを使い(1)は実現できましたが(2)はどのように実装すれば良いのでしょうか
750 名前:デフォルトの名無しさん [2007/06/23(土) 08:29:27 ] JDKについているHTMLドキュメントが使い難い・・・不親切だし・・・ スレッドでwait()したらsynchronizedも解除されるなんてリファレンスに書いてないし・・・ 勉強中にこんなことで悩んでいたし・・・
751 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:38:06 ] >>750 書いてあるよ。 ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Object.html#wait(long) >現在のスレッドをこのオブジェクトの待機セットに入れるときに、wait メソッドはこのオブジェクトのロックだけを解除します。 最初は慣れないが、ガンガレ。
752 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:47:59 ] >>751 Σ( ̄ロ ̄lll) wait(long)じゃなくてwait()のところを読んでいたので気がつかなかった・・・ 感謝です
753 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:50:42 ] >>750 sunの開発者向けページにあるチュートリアル見ると幸せになれるよ。 sunのjavadocは完全に公開仕様な部分しかふれてないから 実装よりの事は伏せてある(リスナが呼ばれる順に依存しちゃダメな理由とか)。 外部プロジェクトから取り込んだライブラリのドキュメントと見比べると コピペだって事が分かる。javadocの方針は仕様のみ書けって事だからそういうもんなんだろ。 ただ、そのコピペが所々間違えてるんでチュートリアルとかガイドをちゃんと読んだ方が良い。
754 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:57:40 ] >>753 ここですか? jp.sun.com/developers/individual.html
755 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 09:10:18 ] >>749 >左のパネルには可能な限り大きな正方形を表示します。 >左のパネルの横幅は縦幅以上には広がりません、 >ウィンドウが横に広がれば >右のパネルの横幅は変わらず、左のパネルだけが広がります。 矛盾してない?
756 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 09:39:30 ] ウィンドウの横幅を広げれば、自動的にウィンドウの縦幅も広がっていくって事なんじゃない?
757 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 10:56:54 ] >>748 よく知らんが、shutdownは残りのタスクが終了するまで待つとかしないん?
758 名前:749 mailto:sage [2007/06/23(土) 11:43:23 ] 分かりやすい説明がが書けず、すみません。 >>755 ウィンドウが横に広がれば、 右のパネルの横幅は変わらず、左のパネルだけが優先して広がるが、 左のパネルの横幅がウィンドウの縦幅の大きさまで達するとそこからは右のパネルが広がりだすという事です。 >>756 いえ、そうではありません。 ウィンドウが縦に広がった場合は特に特別な事はなく、右のパネルも左のパネルも ウィンドウが広がった分だけ広がります。
759 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 12:11:12 ] ああ、つまり ┏━━┳━┓ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━┻━┛ では無く、 ┏━━┳━┓ ┃ ┃ ┃ ┃ ┃ ┃ ┣━━┫ ┃ ┗━━┻━┛ なんだな。左下にパネルで無い部分があると(右下にもあるかも知れないが)。
760 名前:749 mailto:sage [2007/06/23(土) 12:19:39 ] あ、左のパネルが長方形でもその中に描写可能な最大の正方形をと描くという意味で、 左のパネル自体が正方形という意味ではないです。 この記述は質問レスにいらなかったかもしれませんが、 左パネルの(横幅が縦幅に達した後)広がりが止める理由が分かってもらえればと思い書きました。 実際紛らわしくなっただけのような気もしますが(^_^;)
761 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 13:20:50 ] >>757 shutdown は新規タスクの追加を禁止して、現在のタスクが全て完了したらシャットダウンするんです。 新規タスクの追加を禁止せずに、以後タスクが全て完了したタイミングでシャットダウンを予約〜ってことをするにはどうすればいいのかなーと。
762 名前:デフォルトの名無しさん [2007/06/23(土) 18:04:47 ] 学校でコメントアウトに日本語が含まれるプログラムを自宅のPCでコンパイルすると、 警告:この文字は、エンコーディング MS932 にマップできません。 との警告が表示されます。 学校のPCでは問題なくコンパイルできます。 自宅でのコンパイルの警告をなくしたいのですが、どなたか方法知りませんでしょうか?
763 名前:デフォルトの名無しさん [2007/06/23(土) 18:11:42 ] swingでダイアログを作ろうとして、 Dialog NewDialog = new java.awt.Dialog(new BaseFlame()); と書いても Dialogが解決できませんとeclipseに怒られてしまいます・… 所有者ってなんでしょうか。親フレームだと思ったのですが…
764 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:32:55 ] judeでクラス図を書こうとしてるんですけど、どうかいていけばいいかわかりません。 問題 ある旅行代理店では,宿泊施設と交通機関のチケットをセットにした商品販売を開始することにした. この商品販売のための,計算機システムの導入も検討している. この商品は顧客が店舗に行き,代理店の店員と価格や時間等を考慮し相談しながら販売することを想定している. しかし,将来は顧客自身がウエブサイトや携帯電話等を通して,この商品を購入することが可能となるようにしたいと思っている. この代理店は以下の三つの既存システムを利用可能である.
765 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:35:09 ] * 宿泊施設の空室照会および予約システム: 交通機関の駅等の名前と,宿泊人数,宿泊希望日を入力すると,宿泊可能な宿泊施設の候補を5つ程度教えてくれる. 候補は価格の安い順,高い順でソートできる. 候補として提示される宿泊施設の情報は,施設が提供した自由記述の説明である.そして,空室を予約することができる. * 交通機関(列車,バス,飛行機)の空席照会および予約システム: 人数,出発希望日時,到着希望日時と到着先を入力すると,空席がある交通機関の組合せ候補を5つ程度提示してくれる. 移動時間の短い順,価格の安い順で候補はソートされる. そして,空席を予約することができる. * 最寄駅等の照会システム: 住所を入力すると最寄の交通機関駅等の候補(5つ程度)と,そこまでの距離を教えてくれる. 尚,支払い業務については当面考えなくても良い.
766 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:39:24 ] 上記に示した商品販売のための計算機システムの設計をせよ って問題です。 どうやって作っていけばいいのかおしえてください。
767 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:41:18 ] >>763 たぶんDialogの完全名を解決できていない。 インスタンス生成の方にはjava.awt.を付けてるのに変数名の型に付けてないのは何で? >>764-766 judeの使い方について説明を求めているのであれば板違い。ソフト板とかか?(違うかも) 宿題なら宿題スレへ。
768 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:41:57 ] なんのために学校行ってるの?
769 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:46:44 ] >>762 ソースファイルの文字エンコーディングを調べて、 例えばutf-8なら、 javac -encoding utf-8 ソースファイル のようにコンパイルするか、 自宅のPCのOSで使われている文字エンコーディングにソースファイルを変換してからコンパイルすれ。
770 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:50:48 ] >>763 せっかくswingでダイアログ作るならJDialog使えよw
771 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 19:01:53 ] >>749 >>755-760 これでどうかな? sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29497
772 名前:763 [2007/06/23(土) 19:26:05 ] >>767 ありがとうございます。 単なるimport文抜けのミスでした… >>770 フォントサイズとかレイアウトとかを自分で変更したかったので・・・ JDialogだとなんかフォントおかしくなりませんか?
773 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 19:49:55 ] >>772 現行のswingスレの478あたりからの流れを読むといいかも
774 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 20:44:10 ] intをStringにキャストするにはどうすればいいんですか? int a=1; String s; s = (String)a; これでエラーになります。
775 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 20:51:20 ] Integer.toString(a); あるいは String.format("%d", a);
776 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 20:54:47 ] >>775 ありがとうございます。
777 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 21:04:52 ] StringBuffer sb = new StringBuffer(); String s = sb.append(a).toString();
778 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 21:09:39 ] StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); pw.printf("%d", a); pw.flush(); String s = sw.toString();
779 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 21:11:17 ] >>777-778 面白い?
780 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 21:14:27 ] 「int を String に変換」 はできるけど、「int を String にキャスト」 は不可能だと思うが…… Integer.toString(v) も『キャスト』って呼んでいいの?
781 名前:772 mailto:sage [2007/06/23(土) 23:02:08 ] >>773 おお、そんな方法があったのですね。 自分でダイアログ用のライブラリを作ってしまいましたorz
782 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 23:04:07 ] 変数の帰り値を取得するのってどうするのでしょうか? PHPの場合は function test(&$abc, &$def) { } という感じだったのですが、javaの場合??になっています。
783 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 23:05:10 ] >>780 >>774 に対する回答としては、「キャストできない」が正解だろうな。 >>775 のやり方は「キャストではないけど、変換は可能」だし。
784 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 23:06:46 ] >>782 [戻り値の型] メソッド名(引数1, 引数2){} 適当にJavaの解説サイトくらい読んでから質問しろな
785 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 23:16:01 ] PipedOutputStream po = new PipedOutputStream(); PipedInputStream pi = new PipedInputStream(po); PrintStream ps = new PrintStream(po); ps.printf("%d\n", a); ps.flush(); BufferedReader br = new BufferedReader(new InputStreamReader(pi)); String s = br.readLine();
786 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 03:01:39 ] >>785 パイプが詰まったら止まっちゃうだろう。マルチスレッドで
787 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 05:50:02 ] 詰まらなくても \n 忘れると止まるw
788 名前:デフォルトの名無しさん [2007/06/24(日) 14:21:26 ] Javaでフォーム最前面表示って可能ですか? toFront();ループでやってみたんですが 常に最前面表示される方法は無いでしょうか? アクティブでなくても構いません
789 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 14:42:47 ] SwingかHTMLか話はそこからだ
790 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 14:49:27 ] >>788 1.6以降なら java.awt.Window#setAlwaysOnTop(boolean) それ以前だと標準APIじゃ無理。 JNI使って自力でやったりするしかない。
791 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 14:50:30 ] >>790 1.5以降だった。
792 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 15:07:20 ] main(String[] args) の argsの引数を受け取って、 String s1 = args[0]; String s2 = args[1]; という文を書くと、 引数無しで実行するとエラーになってしまいます。 エラーではなく、正常に実行されてif文で「引数を入れてください」みたいなコメントを出したいのですが どういう条件にすればいいんでしょうか?
793 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 15:17:25 ] >>792 args.length でチェック。
794 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 15:38:05 ] プロパティファイルって普通どこにどんな名前で保存するんでしょうか
795 名前:デフォルトの名無しさん [2007/06/24(日) 17:26:43 ] JFreeChartに関して 同じグラフの中に棒グラフと折れ線グラフを表示する方法はありますか
796 名前:792 mailto:sage [2007/06/24(日) 17:29:46 ] >>793 出来ました。ありがごうございます
797 名前:デフォルトの名無しさん [2007/06/24(日) 17:36:52 ] 質問があります。入門書に以下のようなサンプル例文があったのですが、 実際のJavaプログラムではこのようなオブジェクト作成、クラス利用は どのように使われているのでしょうか? class roadstarCar{ int type; int engine; } void output(){ System.out.println("車の型は" +type); System.out.println("車のエンジンは" +type); } class honban{ public static void main(String args[]){ roadstarCar eunos = new roadstarCar(); eunos.type = NA6CE; eunos.engine = B6; eunos.output(); }
798 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 17:42:19 ] >>797 それが書かれてた入門書って何?
799 名前:デフォルトの名無しさん [2007/06/24(日) 17:57:58 ] SWINGで ボタンにキーを割り当てる方法を教えて頂けませんか? 例えばOKボタンがあって クリックしてもALT+スペースを押しても 同じ動作をする様にしたいです
800 名前:デフォルトの名無しさん [2007/06/24(日) 18:00:32 ] コンストラクタが無いね 例で之は酷くない?
801 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 18:02:41 ] >>797 勘違い系の入門書の筆頭だな、そりゃ
802 名前:デフォルトの名無しさん [2007/06/24(日) 18:05:42 ] >>798 やさしいJavaって本です。 本当はCarクラスで、フィールド名はnumとgasだったのですがつまらないんで マツダのロードスターをメインに書き換えてみました。 >>800 この本読んでもつかめなかったのですが、コンストラクタとはいったい何でしょうか?
803 名前:デフォルトの名無しさん [2007/06/24(日) 18:15:16 ] ダイアログを消したいのですが、なぜか 「dispose() は型 new ActionListener(){} で未定義です。」 と言われます。 サンプルとか見てもこれで消えると思ったのですが… OK_button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { dispose(); } });
804 名前:ぴっころ [2007/06/24(日) 18:26:56 ] はじめまして。ぴっころです。 Cとは少し違うかもしれませんが、キャリフラグとオーバフローフラグ の違いを教えて頂けないでしょうか?
805 名前:ぴっころ [2007/06/24(日) 18:27:47 ] すみません。誤爆でした。
806 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 18:42:19 ] やっぱ、やさしいjavaか。最近エンカウント率高いな。 そんな本すぐに窓から投げ捨てろ!! コンストラクタとはインスタンスを初期化するためのしくみ。 あ〜ちなみにやさしいjavaがどういう本かと言うと、 やさしいC++のポインタの説明が無くなったがだけ。 コードがまるっきし同じで説明もまあ、同じ事言ってるかな。 java独自の仕様にはとくに触れてないというか説明してないというか。 んでやさしいC++がCを知らんでもわかるようにってコンセプトでやさしいCって本と内容がかなり重複してる。 第3版なんて5.0対応と謳いつつ、内容は5.0の新機能を使ってないんで5.0でもコンパイラ通るだけ。
807 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:12:18 ] すげー
808 名前:デフォルトの名無しさん [2007/06/24(日) 19:17:55 ] >>797 色々直してみた class RoadstarCar{ // クラス名はClassNameのように単語ごとに大文字で始める String type; String engine; // 文字列はString型(正確にはクラス)で public RoadstarCar(String type, String engine){ this.type = type; // コンストラクタでインスタンスを生成すると同時に初期設定する this.engine = engine; // ここでは引数で渡された文字列で型式とエンジン名を初期化する } public void printInfo(){ System.out.println("車の型は" + type); // メソッド名は具体的に分かりやすい名前をつける、 System.out.println("車のエンジンは" + type); // methodName()のように小文字で始めて単語ごとに大文字に } } class Honban{ public static void main(String args[]){ // コンストラクタに型式とエンジン名を文字列として渡して初期化 // 文字列を表現するには" "で囲めばよい // いきなりNA6CEとか言われてもコンパイラが困っちゃうよ RoadstarCar eunos = new roadstarCar("NA6CE", "B6"); // ↑クラス名とインスタンス名、メソッド名を明確に区別するためにも // 大文字と小文字を使い分けるのは重要でしょ eunos.printInfo(); // 最後にeunosオブジェクトに情報を表示させる } }
809 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:24:44 ] >>808 個人的な意見だが、俺なら type と engine は public final にする。
810 名前:デフォルトの名無しさん [2007/06/24(日) 19:25:57 ] やさしいJavaか・・・乙 コンストラクタを説明するにはインスタンスを考えなきゃいけないんだが、インスタンスはOK? クラスってのがデータの設計図で、実際にデータとするのがインスタンスだ。 クラスが携帯のアドレス帳のフォーマットで、インスタンスが登録した1件1件のデータと思いねぇ。 コンストラクタってのは、このインスタンスを生成する時に1回だけ呼び出される特殊なメソッド。 何か特別なこと(初期値の設定)とかする場合もあれば、何もしない場合もある。
811 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:30:03 ] てか、やさしいjavaは576頁あって半分以上が変数・配列・制御文だからな。 >>808 コンスタラクタ付けただけかい。 carクラスにpublic void printInfo()はやめようぜ。
812 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 19:44:54 ] >>803 ・取り囲むクラスに dispose() が無い。 ・>>803 が静的文脈内にあるので、インスタンスメソッド dispose() を呼び出せない。 のどっちか。
813 名前:デフォルトの名無しさん [2007/06/24(日) 19:47:08 ] >>811 それってどんなボッタ?
814 名前:797 [2007/06/24(日) 19:54:22 ] すいません。やさしいJavaのレッスン8からレッスン10をずっと読み直していました。 >>806 本屋のPC書籍のところに大ベストセラーで置いてあって、他の本より安かったんで買ってみました。 この手のプログラミング言語は初めてだったので、これでいいかと思い選びました。 Javaはオブジェクト指向言語らしいのですが、本にはオブジェクト指向プログラムとは何かの説明がまったくないので 広辞苑で調べてみたのですが、ひとつひとつのクラスに役割をもたせて、複数のクラスでひとつの処理をする、という事であっているのでしょうか? カバーの後ろ開きに載ってるやさしいシリーズ、全部おなじ内容だったんですね。流石、経済学部卒ですね>作者 >>808 補足ありがとうございます。今、理解しながら読んでいます。 >>810 本には「コード上で作成される車1台1台の事をオブジェクト、またはインスタンスと呼びます。 本書ではオブジェクトと呼ぶことにしましょう。」 とあるのですが、>クラスが携帯のアドレス帳のフォーマットで、インスタンスが登録した1件1件のデータと思いねぇ。 と説明されれば一発でわかるのに対して、車で解説されると逆に混乱してしまいますね。 本書に、Car car1 = new Car(); とあり、これでインスタンスを作成してるっぽいのですが これを宣言する事によって、>>797 で書いた例文だとhonbanクラスからroadStarCarクラスを呼び出す事が出来るようになる という事でしょうか?
815 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:01:30 ] >>814 君に「安物買いの銭失い」という言葉を贈ろう。 本は複数買ったほうが良い。1度に一気に買わなくてもいいから。 それぞれの記述の違いを見比べると本質が理解できる場合が多いよ。
816 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:04:40 ] Core Javaに一刀入魂!
817 名前:デフォルトの名無しさん [2007/06/24(日) 20:07:14 ] 前面にIE 後ろにJavaアプリ(SWING) の状態でIEがアクティブの時にキーストローク送って裏に有るJavaアプリを 操作する方法は無いでしょうか?
818 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:09:10 ] >>799 InputMap
819 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:10:07 ] JSPのELで、オブジェクトのアクセッサを介さずに、publicなインスタンス変数に直接アクセスすることはできますか。 他人の作ったクラスで、publicなインスタンス変数にアクセスするものがあるので。
820 名前:810 [2007/06/24(日) 20:17:31 ] クラスとインスタンスの例えで、車とか動物だったらその本はまずNG >>814 インスタンスを生成するってのは、まんまデータを作るって事。 変数を宣言してるので、car1はそのデータに名前をつけていると考えればいい。 つまり、Car car2 = new Car() と書けば、もう1つデータ(インスタンス)が作成させる。 (この辺の例えもアドレスデータで考える方が納得しやすい) なんで、呼び出すことができるってのは間違っていないけど、まずはデータとして利用できるようになるって考えるべき。 アドレスデータであれば、登録(インスタンス化)したんで、見ることができるようになったわけだ。 例えばこんな感じ System.out.println("車の型は" + car1.type); car1のtypeを読み出している ここまで理解できてから、「メソッド」という機能を習得する これはクラス(データ)に操作(振る舞い)を持たせることができる機能
821 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:26:03 ] メソッドや変数にstaticをつけると、クラスメソッドやクラス変数になるのはわかるのですが、 classにstaticをつけると、どのような処理になるのでしょうか?
822 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:28:51 ] >>821 静的メンバクラスになる。 static がなければ内部クラスになる。
823 名前:808 [2007/06/24(日) 20:29:27 ] >>812 ありがとうございます。 なぜか、ダイアログをfinalでnewしたらいけました・…
824 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 20:31:20 ] >>821 前提として1つのクラスの中に別のクラスを記述する場合にしかclassにstaticは使わない インナークラスっていうんだが、暫くはないものとして考えてOKだと思われ
825 名前:デフォルトの名無しさん [2007/06/24(日) 21:00:10 ] >>822 ,824 ありがとうございます。 調べてみたところ、静的メンバクラスというのは、 クラス配下に静的メンバだけしか持たないということらしいのですが、 一体、どういったときに使用するのでしょうか?
826 名前:736 mailto:sage [2007/06/24(日) 21:04:04 ] >>740 さん 10日でおぼえるJava入門教室 第二版 という本なのですが・・・・ どうでしょうか?
827 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:17:13 ] >>826 思いっきり丸の内じゃねーかwww
828 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:21:17 ] >>825 > クラス配下に静的メンバだけしか持たない 逆。内部クラスは静的メンバをもてない。 内部クラスって用語は、結構混乱があるので注意。 本や人によっては「入れ子になったクラス」全般を指してたりする。 俺は言語規定の > 内部クラス(inner class)は,明示的又は暗黙にstaticと宣言されない入れ子クラスとする。 って定義にしたがってるだけ。
829 名前:797 [2007/06/24(日) 21:32:30 ] >>815 大体読んだのですが、そんな気がしてきました。 表面を軽く説明して読者をわかった気にさせる感じですね。 明日、>>816 さんが奨めているCore Javaという本を大きめの書店に探しにいってみます。 >>820 ちょっとアドレス帳で作ってみました。こんな感じでしょうか? この場合のメソッドとは何でしょうか? 本の方には、「クラスの機能を表す仕組み」とあるのですが、このプログラムの場合 アドレスブックに載っているデータを表示するのが目的なので、system.out〜の部分がメソッドになるのでしょうか?
830 名前:797 [2007/06/24(日) 21:38:47 ] 改行が多すぎると言われたので分けました。 class Addressbook{ String name; String address; int phonenum; public Addressbook(String n, String a, int p){ n=name; a=address; p=phonenum; } public void show(){ system.out.println("名前は"+name); system.out.println("住所は"+address); system.out.println("TELは"+phone); } class Sato{ public static void main(String args[]){ Addressbook sato = new Addressbook(); sato.name = "佐藤"; sato.address = "東京都港区赤坂4"; sato.phone = 0355490000; sato.show(); } }