[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/06 00:12 / Filesize : 302 KB / Number-of Response : 972
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれJava(超初心者用) その2



1 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 11:54:09 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、  
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。  
Java使いが優しくコメントを返しますが、  
お礼はJavaの布教と初心者の救済をお願いします。  

Java SunのHome Page  
www.java.com/ja/

前スレ

くだすれJava(超初心者用)
pc10.2ch.net/test/read.cgi/tech/1126470659/l50


549 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:15:21 ]
ttp://www7.axfc.net/uploader/93/so/File_3636.txt.html
どなたか助けてください。コンパイルはできるのに表示されないんです

550 名前:505 [2008/01/27(日) 21:06:43 ]
>>515でいただいたソースで印刷はできるようになったのですが、
セキュリティー警告のポップアップで取り消しを押すとエラーが出てしまいます。
このエラーを出すとその後印刷ができなくなってしまうのですが、対処法は有りますか?

551 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:27:29 ]
>>549
例外メッセージが出てるはずだから、それをよく読むこと。
ヒント:ArrayList の get() メソッドの引数は、ゼロから size() - 1 までの値を入力するように。


関係ないけど、ヒント2:きみがやりたいのは「/ 3」ではなく「% 3」のはず。

552 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:23:07 ]
>>550
セキュリティーで問題ありそうなのに対処せずに使い続けようとすればどっかにしわ寄せがくる希ガス
大丈夫と判っていても判断するのはOSだけど

↓こんなんみつけたけど別件かな?
ttp://www.losttechnology.jp/Tips/savezoneinformation.html
ご利用は自己責任で。

553 名前:550 [2008/01/30(水) 23:56:46 ]
>>552
そうですか(´・ω・)
レスありがとうございました。

あと使用するのが自分のPCではないので、
URLの先のものはちょっと無理ですね;
でもせっかくなんで自分のPCで少し試してみようと思います。

554 名前:デフォルトの名無しさん [2008/02/02(土) 00:50:16 ]
質問です。ロジックの問題なのですがお願いします。

「名前クラス」はString型の変数kanaとspellを持っています。
@kanaに「けんじ」と入っている場合、spellには「kennji」と入っています。
Akanaに「きんや」と入っている場合、spellには「kinnya」と入っています。
Bkanaに「こんにゃく」と入っている場合、spellには「konnnyaku」と入っています。
ローマ字入力の方式は複数あり、
たとえば「ん」の入力の時に次の文字が子音で始まる場合、
「n」の入力を一回で済ましてしまう方法があります。
「けんじ」の場合、spellに「kenji」と入力する方法です。
この二つの方法に対応するようにspellの内容を入れ替えるメソッドを作りなさい。

以上が問題なのですが、まずkennjiをkenjiにするためのロジックを考えてみました。
Stringクラスのreplaceを使って、
public void change() {
 spell = spell.replace("nn","n");
}
とすると、「ん」の次の文字が母音の場合とYの場合におかしくなってしまいます。
「kinnya」が「kinya」になってしまいます。(「きんや」が「きにゃ」になってしまう)
逆に戻すメソッド(kennjiをkenjiにする)も考えようとするとまったく思いつきません。
どなたかいい方法をお教えください。

555 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:50:51 ]
>>554
replace("ny", "nny");
replace("nn", "n");

556 名前:デフォルトの名無しさん [2008/02/02(土) 02:53:45 ]
>>554
「たんい」と「たんに」の区別をどう判定するんだ?
「tanni」これは単位?単に?


557 名前:554 [2008/02/02(土) 12:06:05 ]
>>555
ありがとうございます
そのやり方はまったく思いつきませんでした。
ほぼうまくいったのですが「こんにゃく」の場合に「konnnyaku」が「konnyaku」になってしまいました
これはどうアレンジすればいいでしょうか ほんとに考えたんですけどまったく思いつきません。
>>556
「tanni」は「たんい」です
わかりにくい説明ですみません。自分なりに整理してみました。
方法1は「ん」の入力のとき必ずnを二回押さなくてはならない。
方法2は「ん」の次の文字が子音(yを除く)で始まる場合のみ「n」は一回押すだけでよいようにする。

方法1を方法2に変換するにはこうやりました。
spell = spell.replace("na", "01");
spell = spell.replace("ni", "02");
spell = spell.replace("nu", "03");
spell = spell.replace("ne", "04");
spell = spell.replace("no", "05");
spell = spell.replace("ny", "06");

spell = spell.replace("nn", "n");

spell = spell.replace("01","na");
spell =spell.replace("02","ni");
spell = spell.replace("03","nu");
spell = spell.replace("04","ne");
spell = spell.replace("05","no");
spell = spell.replace("06","nny");
しかし方法2を方法1にするやり方がまったく思いつきません。
方法1ももっとスマートなやり方はないでしょうか?



558 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:25:35 ]
質問です。
やさしいJava活用編を元に勉強しているのですが、Tomcatのインストールで失敗してしまいます。

具体的には、
Using Jvm:C:Program Files\jre1.5.0_07\bin\client\jvm.dll
の時点でエラーが出てしまいます。
JDKを1.5から1.6に入れ直して再び試しましたが同じ結果でした。
JAVA_HOMEも設定しました。
インストールしようとしているTomcatのバージョンは6.0.14です。OSはWindows Meです。
どなたかご教授お願いします。

559 名前:デフォルトの名無しさん [2008/02/02(土) 12:58:27 ]
エラーの内容は?

とりあえず、コマンドプロンプトで
%JAVA_HOME$\bin\java -version
って実行したらどうなる?

560 名前:デフォルトの名無しさん [2008/02/02(土) 13:00:01 ]
>>554
正規表現で出来そう

561 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 14:15:24 ]
>>554
n二文字にするのが根本から間違ってるんじゃね?

562 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 16:47:05 ]
ん[あいうえお] nn
(な|に|ぬ|ね|の|にゃ|にゅ|にょ) n
ん(な|に|ぬ|ね|の|にゃ|にゅ|にょ) nnn
こうなのか?

563 名前:デフォルトの名無しさん [2008/02/02(土) 17:13:14 ]
今日はじめたばっかりの者ですが、パス指定がよく分かりません。
C:\>Documents and settings\sela>cd C:\program Files\Java\jdk1.6.0_04>
コマンド構文が正しくありません
正しく入力してあると思うんですが、結果がでません。
どこが正しくないですかね?

564 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:19:01 ]
最後の>は不要

565 名前:デフォルトの名無しさん [2008/02/02(土) 17:47:05 ]
レスありがとうございます。
最後の>はずしたら今度は
'Documents' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
って出てきました。質問ばっかですんません

566 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 17:54:13 ]
とりあえず入力するのは
cd C:\program Files\Java\jdk1.6.0_04
これだけだ。

Javaより、まずはコマンドプロンプトの勉強しろよ。

567 名前:デフォルトの名無しさん [2008/02/02(土) 18:00:36 ]
できました。ありがとうございます。まずはコマンドプロントからがんばって
いきたいと思います。



568 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 18:44:45 ]
>>563
いまから始めるJava 第1回「Java2 SDKで学習の準備」
www.atmarkit.co.jp/fjava/rensai2/javaent01/javaent01.html

569 名前:558 mailto:sage [2008/02/02(土) 22:46:11 ]
>>559さん、ありがとうございます。

インストーラにしたがってnextをポンポン押して進めていくと、インストール中に

「Failed to install Tomcat6 service.
Check your setting and permissions.
Ignore and continue anyway(not recommended)?」

というメッセージが出て来て、中止or再試行or無視の選択を迫られます。
(このときの進捗状況が Using Jvm:C:Program Files\jre1.5.0_07\bin\client\jvm.dll でした)
再試行しても、やっぱりこのメッセージが出てきます。
無視してインストールを進めて、その後
スタートメニュー → プログラム → apache Tomcat6.0 → monitor Tomcat
から起動させてみると、

「C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\tomcat6w.exe
システムに接続されたデバイスが機能していません」

「プログラム開始エラー
TOMCAT6W.EXEファイルがリンクしている
エクスポート NETAPI32.DLL:NetApiBufferFreeは見つかりません」

という二つのメッセージが同時に出て来てtomcatは起動できませんでした。

あとコマンドプロンプトで、「%JAVA_HOME$\bin\java -version」と入力したところ、
「コマンドまたはファイル名が正しくありません」
と表示されました。これはJAVA_HOMEの設定が正しくされていないという事なんでしょうか?

570 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 01:38:03 ]
インストール済みの既存の
Tomcatサービスをとめればいいんだよ。
Windowsだったら、常駐プログラムとしてTomcatサービスが起動していると思う。
まずはそれを切る。常駐アイコンが見当たらなければタスクマネージャでtomcatを強制終了するか
設定-サービスでTomcatのサービスを探してTomcatサービスを終了すればいい。

もしくは、既存のTomcatをアンインストールしてみてはどうだろう?

571 名前:558 mailto:sage [2008/02/03(日) 13:05:55 ]
>>570さん
常駐プログラムとしてTomcatは起動していないみたいです。
タスクマネージャって、[Ctrl]+[Alt]+[Delete]押して出てくるやつですよね?
そこにもTomcatの名前はありませんでした。

[アプリケーションの追加と削除]からTomcatをアンインストールして
再びインストールを試みても、>>569のような状況になってしまいます。

572 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:56:21 ]
正直言って tomcat の事はあまり詳しくないんだけど
あんまし有用なレスもついてないっぽいので・・・

OS は Me だという事で、それじゃ「サービス」には登録できない。
9x 系 (Win95, 98, Me) には「サービス」が無いから。
もしかしたら「Failed to install Tomcat6 service.」はその警告なのかも。

> エクスポート NETAPI32.DLL:NetApiBufferFreeは見つかりません

これ、Win2000 や XP 専用のアプリを 9x 上で動かそうとした時に
よく見かけるよなあ。9x には NETAPI32.DLL が存在しないんだっけ?
もしかしたら tomcat6 って、もう 9x 系じゃ動かないのでは?
あるいは、別バイナリが配布されているとか???

573 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 19:09:01 ]
あわわ、追記。
tomcat ってピュア java なんだっけ?
EXE ファイルは、起動やらモニタリングを便利にする、ただのオプション?
じゃあ JRE さえ動くなら、java -jar tomcat.jar みたいな感じで手動で起動できるのかも。

574 名前:558 mailto:sage [2008/02/03(日) 21:28:09 ]
>>572-573
>9x には NETAPI32.DLL が存在しないんだっけ?

[ファイルやフォルダの検索]から NETAPI32.DLL を検索かけてみたところ、
[C:\WINDDOWS\SYSTEM]フォルダにありました。

>java -jar tomcat.jar みたいな感じで手動で起動できるのかも。

プロンプトから入力してみたところ、
「Unable to access jarfile tomcat.jar」
と表示されました。

575 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:43:20 ]
Apache-TomcatとEclipseを使っているのですが、

追加したディレクトリがlocalhostで表示されません。

localhost:8080/プロジェクト名/
のディレクトリは見えるのですが、
Eclipseで追加した、
webapp直下のxxxxというフォルダが見れません。

どうしたらいいでしょうか?

576 名前:575 mailto:sage [2008/02/03(日) 23:58:18 ]
web.xmlを直せばいいかもしれないと分かりましたが
どう直せばいいのか分かりません。
どなたかアドバイスいただけますか?

577 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:10:17 ]
お前さんには、そう当たりで試して切り開いて行く精神が足りないと思う



578 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:48:57 ]
>>575は意志が弱いが総当り方式が効率が良いとはとても思えんぞ。
>>576の態度ではいつまでたっても何も成就できないが

579 名前:デフォルトの名無しさん [2008/02/06(水) 00:06:52 ]
質問です。

java3DのPoint3dで書いた頂点をcanvasに表示し、その座標値をテキストフィールドに表示できるのですが、
自分でテキストフィールドに書い座標値をその頂点に対応させることができません。
たぶん、getText()で持ってきた値を頂点の座標に対応させれば出来るとは思うのですが、
String型をPoint3d型に変換することが出来ません。
どなたか、型の変換方法か、それに代わるもっとよい方法があれば教えていただけないでしょうか?
よろしくお願いします。

また、板違いでしたら申し訳ありません。


580 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:19:01 ]
たぶんこんな感じか?
String s = ... ;
Scanner sc = new Scanner(s);
sc.useDelimiter(",");
Point3d p = new Point3d(sc.nextDouble(), sc.nextDouble(), sc.nextDouble());

581 名前:デフォルトの名無しさん [2008/02/06(水) 10:37:15 ]
デバッグ用に、メソッド実行中に自分のクラスの名前をprintfしたいです。
で文字列で "hoge" とか hoge.class.getName() とか、自クラス名 hoge を
ソース中に書きたくありません。

普通のメソッドだと
this.class.getName()
で名前がとれるのだけど、staticメソッドだと this がないので
どうやってとればいいのかわかりません。

教えてください。

582 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:39:21 ]
スタックトレースとってこればいいんじゃね?

583 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:44:50 ]
1.5以降だったら
StackTraceElement[] s = Thread.currentThread().getStackTrace();
で、それ以前だったら
StackTraceElement[] s = null;
try {
  throw new Exception();
} catch (Exception e) {
  s = e.getStackTrace();
}
で取得できるよ

584 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:05:55 ]
ありがとうです。でも
StackTraceElement stack = Thread.currentThread().getStackTrace()[0];
System.out.printf(stack.getClassName() + "\n");
だと、java.lang.Thread が表示されました。

Thread.currentThread() を (new Throwable()) にして得たい表示ができました^o^v

585 名前:デフォルトの名無しさん [2008/02/06(水) 12:31:03 ]
>>515のコードが読める位まで到達するにはどうすればいい?

SJC-P持っているけど、コードが読めないorz

586 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:19:06 ]
リバーシを作ってるんですが
どこかオススメのサイトとかありますかね?
いろいろ見たのですが盤を作るところからよくわからないのですが

587 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:23:25 ]
>>586
盤って int[][] board = new int[8][8]; とかじゃだめなのか?



588 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:28:00 ]
>>586
Javaでリバーシを作る初心者向けの本があったはず…

これだ
www.amazon.co.jp/dp/4875934289/

589 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:33:07 ]
その本マジでやめといたほうがいい。
JavaにしてもC++にしてもかなりダメなくせが付く、最低の本

590 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:03:11 ]
>>587
どうもです
配列でそうやってやるだけでいいんですね……


>>588-589
そうなんですか……
どこかオススメとかないですかねぇ

591 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:58:14 ]
>>587
これをどうやってパネル化すればいいんですかね……?


592 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:08:41 ]
>>589
まじですか

設計に関しても最低?

593 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:12:03 ]
>>590
もちろん配列でも良いけど
Javaの勉強と言うことなら、盤・列・マスといったクラスを設計する方が楽しいぞ

594 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:13:00 ]
設計に関して最低。
アルゴリズムとかは別に悪くない、
というか、普通なんだけど、
「オブジェクト指向」を謳っておきながら酷い設計
というか、オブジェクト指向をなんか勘違いしてる本。
ってことで、よほどの初心者じゃなければ別にいいのかも。
ただ、>>591じゃね・・・

595 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:50:07 ]
ttp://javagame.main.jp/index.php
ttp://netresearch.ics.uci.edu/kfujii/java/howto-othello/index-j.html
まあこの辺でどうかな
パネルは使ってないみたいだが

596 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:24:43 ]
8x8のGridLayoutにJLabelを64個置くのが簡単かと

597 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:38:42 ]
なんというVB



598 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:24:20 ]
ボタンの表示を反転したいんですが、
現在のボタンがTrueなのか、Falseなのか、取得する方法ってありませんか?
お願いします。

599 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:04:56 ]
ありますよ

600 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:30:06 ]
ボタン自身にON/OFF有ったっけ?フラグはアクションリスナーで実装するんでないけ?

601 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 08:56:23 ]
現在のボタンがTrueかFalseか言ってる時点でラジオボタンか何かか、
有効無効のことを言ってるんだと思ったけど。

602 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:55:19 ]
ButtonModel#isPressedかisSelectedあたりだろう

603 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:07:32 ]
Java3Dを使わずにJavaで立体を作りました。
ボタンをクリックするとx軸を中心に回転させるプログラムを作りたいのですが
どうすれば良いのでしょうか?

ボタンは↓のようにしています。
btn1 = new Button("x軸を中心に回転");
this.add(btn1);


604 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:22:49 ]
ガワだけですか…

x軸を中心に回転させたいなら回転行列を使って各点座標を変換すれば良いだけでは?

605 名前:デフォルトの名無しさん [2008/02/07(木) 18:10:14 ]
私も少し分からなくて検索してみて自分なりの解答を作ってみた。
プログラムはエクリプスなので一番上のpackage Chap2;は
要らないと思うけどね。

>436

質問時期より結構遅れてしまったけど
こんな感じで良いかと。

package Chap2;

import java.util.Random;

class En29{
public static void main(String[]args){
Random rand=new Random();
double x=rand.nextDouble();
double y=rand.nextDouble()*9.9;
double z=rand.nextDouble()*1.9-0.9;
System.out.println("xのランダム実数値:"+x);
System.out.println("yのランダム実数値:"+y);
System.out.println("zのランダム実数値:"+z);
}
}


606 名前:デフォルトの名無しさん [2008/02/07(木) 18:15:10 ]
>477
これで良いかと。

package Chap2;

import java.util.Scanner;

class En28{
public static void main(String[]args){
Scanner stdIn=new Scanner(System.in);
System.out.print("整数値:");

int x=stdIn.nextInt();
int y=(int)(Math.random()*-11)+5;
int z;
z=x+y;

System.out.println("その値の+-5の乱数を生成した。");
System.out.println("それは"+z+"です。");
}
}

明解java入門編 柴田望洋(著)の
演習の解答の1つの例となれば幸いです。

607 名前:デフォルトの名無しさん [2008/02/07(木) 18:45:34 ]
訂正です。
1.9-0.9だと低確率で1が出てしまい1未満ではなくなるので
1.9-0.9を1.9-0.91に修正。

>436

package Chap2;

import java.util.Random;

class En29{
public static void main(String[]args){
Random rand=new Random();
double x=rand.nextDouble();
double y=rand.nextDouble()*9.9;
double z=rand.nextDouble()*1.9-0.91;
System.out.println("xのランダム実数値:"+x);
System.out.println("yのランダム実数値:"+y);
System.out.println("zのランダム実数値:"+z);
}
}




608 名前:デフォルトの名無しさん [2008/02/07(木) 19:12:15 ]
zが0を表示した際に-0.91になり
それ以下の数値を表示できない点
yが9.9より上の9.999999999等を表示できない問題点を
忘れていました。^^;

>>436

以下、訂正後のプログラムです。
何度もすみません。

package Chap2;

import java.util.Random;

class En29{
public static void main(String[]args){
Random rand=new Random();
double x=rand.nextDouble();
double y=rand.nextDouble()*9;
double z=rand.nextDouble();
double a=rand.nextDouble();
double b=rand.nextDouble();


System.out.println("xのランダム実数値:"+x);
System.out.println("yのランダム実数値:"+(y+b));
System.out.println("zのランダム実数値:"+(z-a));
}
}

609 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 19:22:18 ]
二ヶ月以上前のになぜいまさらそんなにがんばるwwwwww

610 名前:デフォルトの名無しさん [2008/02/07(木) 21:06:03 ]
>>609
私もつい最近この本を買ったばかりで
今日ちょうどココをやってたんですよ。

で、問題は一応無かったと思って見直したら
問題点が出てきて直して見直してを繰り返して
これならほぼ問題ないだろwという所まで
凝ってしまったんですよww

611 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:16:05 ]
>>604
古い本を使ってるのでボタンを押して動作するという事が載ってないです
マウスでドラッグしたら動くようにはしてるんですが…

btn1 = new Button("x軸を中心に回転");
**************←普通はここに記述すれば良いですかね?
this.add(btn1);

x = x * cosθ + z * sinθ

612 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:40:01 ]
>>611
いや、イベント処理になるから
回転・表示させるactionPerformedメソッドを書いたActionListnerを用意して
(JFrameにimplementsすることが多い)
そのボタンにそのActionListnerを登録すればいい

613 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:25:15 ]
> (JFrameにimplementsすることが多い)
MVC派の俺様はコントローラクラス作ってそこにactionPerformedを書くぜぃ
とか言ってみる

614 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:15:57 ]
無名クラス派ですが何か?

615 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:27:44 ]
>>603
>ボタンをクリックするとx軸を中心に回転させるプログラムを作りたいのですが

作ってみた。
rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/209.java

616 名前:デフォルトの名無しさん [2008/02/08(金) 23:28:19 ]
インスタンスって何?ラーメン?

617 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:43:18 ]
それはインスタント



618 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:29:28 ]
素朴な疑問なんですが、Javaのキャッチコピーって
「一度コードを書けばどんな環境でも動作する」ですよね
欠点って何でしょう?

619 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:36:29 ]
>>618
そのせいで起動に時間がかかる
起動時にメモリを食う

がよく言われます
起動したあとの実行速度とかメモリ消費はよく誤解されます

620 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:37:03 ]
特定の環境にしかない機能が使えない
DirectXとかCoreAnimationとか

621 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:34:14 ]
int a = args.length;
上のプログラムでよくわからないことがあるんですが
配列変数名.メソッド;
の形ですよね?

今まで、
インスタンス化したメソッド.メソッド名();
の形でしかだめだと思っていたんですが、どういうことなんでしょうか?

622 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:36:30 ]
>の形ですよね?

違う
配列変数名.フィールド名
の形

>インスタンス化したメソッド

そんなものはない

623 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:45:15 ]
>>622
なるほど、ありがとうございます。

インスタンス化したメソッドは私の参考書に書いてありました。
〜main(){
  keisan keisan1 = new keisan();
  keisan1.tate=1.3;
  p=keisan1.tasizan();
}
class keisan{
double tate;
double tasizan(){


見たいな感じで
keisan1.tateと言う変数がそうなってるみたいです

624 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:18:14 ]
keisan1はkeisanのインスタンスが入ってるローカル変数
tateはkeisanのインスタンス変数
tasizanはkeisanのインスタンスメソッド
君の読み違いでなければその参考書は今すぐ焼き捨てるべき

625 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:52:22 ]
>>619
>>620
ありがとうございます。
やはりどんなモノにも欠点はあるんですね

626 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:11:08 ]
>>621
Javaでは、配列は実質クラス

627 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:57:15 ]
けど length は配列のインスタンスフィールドではない



628 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:28:52 ]
>>624
>>626
>>627
皆様ありがとうございます。インスタンスかした”クラス”でした、。申し訳ありません。
keisan1がインスタンスかしたクラスなんですね。

>keisan1はkeisanのインスタンスが入ってるローカル変数
なるほど、やっと分かりました。これも変数なんですね

そう考えると確かにkeisan1.tateは変数名.フィールド名になってますね。
配列が特殊なんだと考えて起きます
ありがとうございました

629 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 22:16:15 ]
>>627
しかし言語仕様にはフィールドだと書いてある

java.sun.com/docs/books/jls/third_edition/html/arrays.html#10.7
>The public final field length

630 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 22:47:33 ]
変数の型についての質問です。
byte型は1バイト、short型は2バイト、int型は4バイト、long型は8バイトまでの整数を扱えるとのことですが、それ以外の違いはないのでしょうか?
だとしたら、あらゆる整数を格納できるlong型を常に使えば他の整数型を意識する必要がなくなって便利だと思うのですが・・・。
int型の範囲を超える整数を扱うことは滅多にないので通常はint型を使うにしても、byte型やshort型はなんのためにあるのでしょうか?
素朴な疑問って感じですが、お答えお願いします。

631 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:04:02 ]
それだけメモリをたくさん使う
たとえば10000000個のデータを扱う場合、
byteが10000000個だったら10MBで済むが、
longが10000000個だったら80MBになってしまう

632 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:20:53 ]
>>631
なるほど、メモリの問題があるのですね・・・。
回答ありがとうございました。

633 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:35:45 ]
実際、short なんて滅多に使わないね。


634 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:37:03 ]
>>612
>>615
参考にさせてもらいます。
文系の出で、プログラムに触れた事がないので助かります。

635 名前:sage [2008/02/11(月) 17:30:28 ]
javaに近いと思うのですがoctaveというのを使っていて、以下のプログラムを少し変えて出さなければなりません。
(なぜなら以下のプログラムは友達が作ったもののため)
プログラムの本質自体はかわらないようにちょっとでもいいので変え方わかる方いましたらぜひ教えてください。
・ダイクストラ法
☆Dijkstra.m
function [distance, pointer] = Dijkstra(A)
n = size(A)(1); %Aはn×n行列
S = zeros(1, n);
d = zeros(1, n);
for i=2:1:n
d(i) = Inf; % d = [inf, inf, inf, ... ]
endfor
pointer = zeros(1, n); %Pointer for previous check point
check = 0
while(check < 1 && check > -10)
if(sum(S) == 4)
check = 1
else
check -= 1
d
S
[minimum, v] = minD(d, S)
S(v) = 1;
for j=1:1:n
if(d(j) > d(v)+A(v, j))
d(j) = d(v) + A(v, j) %過程を見せたい場合;をのぞく
pointer(j) = v
endif
endfor
endif endwhile distance = d; pointer; endfunction

636 名前:つづき mailto:sage [2008/02/11(月) 17:31:23 ]
☆minD.m
function [min, min_index] = minD(d, S)
% min : min(d) not included to S
% min_index : d(min_index) = min
% d[] : distance array
% S[] : searched = 1 : not yet = 0
min = inf;
min_index = 0;
n = size(d)(2);
for i=1:1:n
if( S(i)==0 && d(i) < min )
min_index = i
min = d(i)
endif
endfor
endfunction



637 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:34:09 ]
なるほど
つまりまったく一緒だと怒られるから適当にいじりたいけど
まったく分からないからなんとかしてくれということですね



638 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:39:59 ]
そういうことなんです、1mmもわからないので変えようがないのです。。。
どなたかお願いします。

639 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:01:56 ]
Javaに近いとは思いません
>Gnu Octave とは、MATLABと互換性を持ったフリーな数値解析ソフトウェアであり、
>GNUによって開発されている。

640 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:17:07 ]
javaに近いという理由でoctaveの宿題の解答の偽装依頼をこのスレで見る日が来ようとは

641 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:22:30 ]
うん、とりあえず逝ってくれ。
あと、名前欄にsageは入れないほうがいいと思うよw

642 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:24:45 ]
int i,j;

for(i=0;i<2;i++){
for(j=0;j<2:j++){}}
System.out.println(i,j);

ってやるとj「だけ」未定義エラーになるのですが何故なんですかね
両方エラーならまだわかるんだが・・・

643 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:26:18 ]
あ、最後(i,j)じゃなくて

System.out.println(i+":"+j);
ってことで

644 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:31:41 ]
外側のループが条件によっては実行されないから
内側のループでjが必ず初期化されるかは不明としている
この場合は外側のループは必ず実行されるけど
その条件が成立するかどうかまでは検査していない

645 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:57:38 ]
やっぱそれだけのことなのか
どうせソース見るなら最後まで見てくれよな、って思う
型キャストとかのあたりとか特に、
自動でキャストしたりコンパイルエラーだったり実行時エラーだったりはっきりしてくれぃ!


>>644さんくす

646 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:08:17 ]
ttp://java.sun.com/docs/books/jls/third_edition/html/defAssign.html
言語仕様では、(原文ではi,jはn,kだけど>>642に合わせれば)
> a Java compiler must produce a compile-time error
> ...
> even though the value of (i) is known at compile time,
> and in principle it can be known at compile time that
> the assignment to (j) will always be executed
だから、そのエラーについてはコンパイラは言語仕様に従ってるだけ。
フロー解析をどこまで詳細にやるかの規定次第で人にとっては妙に思える結果も出てくるけど、
解析の精度を高めることとコンパイラの負荷とのバランスの問題でここに落ち着いたんじゃないかな。
とりあえず、はっきりしてくれと思ったときにはまず言語仕様を見てみる癖を。

647 名前:デフォルトの名無しさん [2008/02/14(木) 00:28:06 ]
JPanelを継承したMainPanelとJLabelのhazimeとLoadがあるんですが
Startというクラスのコンストラクタで

Start(MainPanel panel){
hazime.setSize(new Dimension(LabelSizeWIDTH,LabelSizeHEIGHT));
Load.setSize(new Dimension(LabelSizeWIDTH,LabelSizeHEIGHT));
hazime.setLocation(100,33);
Load.setLocation(100,266);
panel.add(hazime);
panel.add(Load);
}
と書いてMainPanelのコンストラクタでStartを初期化してJFrameを継承したクラスにMainPanelを貼り付けたんですが
hazimeとLoadに書いてある文字は表示されたんですがサイズと位置が変わりません
なんででしょうか?



648 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:32:42 ]
>>647
MainPanelのレイアウトマネージャがサイズと位置を自分のポリシーに合わせて自動で変更してるとか
レイアウトマネージャはnullまたはコンポーネントの勝手に任せるようなものになってる?

649 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 01:04:21 ]
>>648
MainPanelの引数にも何もとっていないのでレイアウトマネージャーは何も設定していません
自分でnullに設定しないといけないのでしょうか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<302KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef