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


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

【初心者】Java質問・相談スレッド99【大歓迎】



1 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 01:35:28 ]
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下の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質問・相談スレッド98【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1171787388/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

次スレは>>980あたりで。

196 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 04:09:57 ]
>>195
new Sensyu[0]でも何でもいいからSensyu[]型を放り込んでおけば、
もしサイズが足りなければ新たに確保してくれる。
APIリファレンスのtoArrayの項目をきちんと読むんだ。

197 名前:193 mailto:sage [2007/03/09(金) 04:29:14 ]
>>196さんありがとうございます。
でっ、できました。ヽ(^o^)丿
難解だけどAPIリファレンス出来るだけ読むようにします。
つきあってくれてありがとう‥

198 名前:デフォルトの名無しさん [2007/03/09(金) 04:48:13 ]
音声の再生についての質問です。
好きなタイミングで音声を鳴らしたり消したりしたいのですが、
スレッド処理を用いている場合はどう書いたらいいのでしょうか?
startメソッドにac.loop;と書くと延々鳴ってしまいますし、
runメソッド内に書くとやはり音声の冒頭部分だけが繰り返し再生されてしまいます。

ソース
sourcepost.sytes.net/sourceview.aspx?source_id=29248

startメソッドに再生部分を記述
www.za.ztv.ne.jp/yosi-h/Java_Ski.html

199 名前:デフォルトの名無しさん [2007/03/09(金) 10:26:18 ]
どなたかご存知でしたら教えてください。
JavaでPDFを作成するiTEXTにて
テーブルを作成するときに途中でページからはみ出そうなときは
次ページに改ページしてくれる方法ってないでしょうか?
よろしくおねがいします。

200 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 11:21:38 ]
>>198
アプレットは単音鳴らすか鳴らせ続けるかだからループさせつつ任意のタイミング止めて再開とかしたいなら適当なサウンドエンジン使った方が良いよ。

>>199
どっかで制御方法見た気がするが・・・javadocくらい叩き込んだ?

201 名前:デフォルトの名無しさん [2007/03/09(金) 11:30:17 ]
>200
javadocはよくわかりませんが
こちらのサイトでiTEXTのコマンドについては大体わかったのですが
ttp://itextdocs.lowagie.com/tutorial/
質問した内容のサンプルコードが無かったので悩んでます。

202 名前:デフォルトの名無しさん [2007/03/09(金) 11:36:18 ]
>200
ありがとうございます。
iTEXTのJAVAdoc見つかりました。
理解できるか分かりませんがちょっと読んでみようと思います。


203 名前:デフォルトの名無しさん [2007/03/09(金) 11:39:01 ]
table.tableFitsPage
きっとコレジャン!
200サンクス!

204 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 13:53:33 ]
>>191
いろいろ解決方法はあるみたいだが、

al = Collections.checkedList(al, Sensyu.class);

を使いたくなってくるなあ。これならObjectなど他の型に渡しても
警告が出なくなる。

@SupressWarning("unchecked")でもいいけどさ



205 名前:デフォルトの名無しさん [2007/03/09(金) 14:54:12 ]
https://sdlc6e.sun.com/ECom/EComActionServlet/DownloadPage:~:com.sun.sunit.sdlc.content.DownloadPageInfo;jsessionid=A232C894EA5C4D2F03723CB5357D7872;jsessionid=A232C894EA5C4D2F03723CB5357D7872
まとめ見てここからダウンロードしようとしてるんですけどこの後どうすればいいんですか?

206 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 16:47:43 ]
>>205
Accept License Agreement してから
Java(TM) SE Development Kit Documentation 6, Japanese 選べば?
英語版欲しいなら、English の方選んで。

207 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 16:50:25 ]
>>206
サンクス

208 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 19:47:33 ]
英語読めない奴が英語版欲しいと思えんが、jdk6のl10n終わって良かったな。
相変わらず変な訳だが

209 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 20:04:01 ]
そういやなんでJavaって日本語版あるんだろ?

210 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 20:18:14 ]
むしろ英語マニュアルのが読みやすい俺ガイル

211 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:09:04 ]
>>208
i10n って、日本語訳終わっただけで中国語訳とかまだじゃない?

212 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:37:28 ]
>>209

1. 市場が大きい。
2. 訳の需要が大きい。

日本語は造語力が大きいので高等教育で用いられる用語も訳すことが出来、
結果として日本語しかできなくても高等教育が受けられる。
アジアの準先進国の言語などでそれほど造語力が高くない場合、そこまで
できないので、英語で高等教育を行わざるを得なくなり、結果として高等
教育を受けた人はみな英語が出来るので、英語で困らなくなってしまう。

という意見を聞いたことがある。


213 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:43:59 ]
日本だろうと曲がりなりにも高等教育を受けたら普通英語ぐらいできると思うのだが

もし高等教育の意味が文字通り高卒の事だったのなら謝る

214 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:49:04 ]
>>213
学校教育英語に幻想持ってないか?




215 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:52:08 ]
ただ単にi18nの一環でかつ日本人は母国語版を欲しがる人種ってだけじゃね?

技術文書の翻訳版を欲しがるのは日本人くらいだし

216 名前:125 mailto:sage [2007/03/09(金) 22:32:27 ]
Rubyでは簡単に実現できたので、再びJavaに戻ってきて作成しています。

ファイルのコピー、移動はFileクラスとFileInputStream,FileOutputStreamあたりを使うことで、簡単に実現できました。

ところでお聞きしたいのですが、InputStreamのread( byte[] buffer )、OutputStreamのwrite( byte[] buffer )で使用する
配列サイズというのは、どれくらいが適しているのでしょうか?
バッファーが大きければ処理が早く済むがメモリの消費量が大きくなる、ということはなんとなくわかるのですが、
適量のバッファーサイズの見当がつきません。

現在主流となっているマシンスペックだと、適量のバッファーサイズとはどれくらいなのでしょうか?

217 名前:187 mailto:sage [2007/03/09(金) 22:37:51 ]
>>190
返事が遅くなってしまってすみません。
提示していただいたコードを参考にやってみます。
ありがとうございました。

218 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 22:40:22 ]
>>213
英語で小説読もうとして三日であきらめたことを思い出した
資料としてなら読み進めるのは大して苦じゃないが大量になるとかなりウザい
メインで英語使うなんて信じられん

219 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 22:54:05 ]
>>216
セオリーは無いと思う。
俺はなんとなく 4kB 〜 16kB あたり取ってるが。

220 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 23:01:30 ]
>>218
小説と技術文書は全然違うでしょ。
語彙空間がまるで違うよ。
俺自分の専攻の論文ならすらすら読めるけど、
一般向けの小説(ハリウッド映画の原作)は
3ページで挫折しかけてるw

221 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:26:59 ]
jarファイルをダブルクリックしても反応してくれません。
(Test.classファイル)
class Test{
    public static void main(String[] args){
        System.out.println("aaa");
    }
}
これを
 jar cf Test.jar Test.class でjarファイル生成
 jar xf Test.jar でjarを解凍
 マニフェストファイルにMain-Class: Testを追加して保存
 jar cfm Test.jar META-INF\MANIFEST.MF Test.class で再びjarに圧縮
こいつをダブルクリックしてもコマンドプロンプトが出てきてくれないです。
エラーメッセージも出ず無反応です。
ただし、コマンドプロンプトから
 java -jar Test.jar と打ち込むと
aaa と表示されます。
どなたかお助けください。


222 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 00:47:21 ]
関連付けの問題か、あるいはコマンドプロンプトが一瞬出ているのに気付かないかのどっちか

223 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:00:44 ]
3つの整数をキーボード入力させてそこから計算させるプログラムを作っているのですが、
入力させた文字列の中に英字または小数がある場合、「○個目には整数を入力してください」という
メッセージを表示させたいのですが、Integer.parseIntでの例外をNumberFormatException
で拾うという手段を取ってみたのですが、この場合何個目の入力が整数でないのかを個別に
表示することが出来ません。どの入力が間違っていても同一のメッセージ表示しか出来ません。

この方法以外に入力された文字列の中で整数以外の入力を判別して、どの入力がエラーなのかを知らせる方法はありますか?


224 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:02:50 ]
ちとその部分のコード書いてみ?



225 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:10:12 ]
>>221
Windowsだとjavaじゃなくjavawに関連づけられてるかもしれない。


226 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:31:23 ]
>>222
>>225
ありがとうございます。今見てみましたが、javawなってました。
javaにかえて再びwクリックしてみると一瞬だけコマンドプロンプトが表示されましたが、すぐに消えてしまいました。
これはこういうものなのでしょうか?コマンドプロンプトの画面をずっと表示させておくことは出来ますか?





227 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:45:48 ]
BufferReaderか何か使ってキーボード入力待ちにするのが一番お手軽w

228 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:50:28 ]
今ならjava.util.Scannerを薦めたい。
ttp://www.javadrive.jp/start/scanner/index1.html

229 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 02:04:30 ]
なるほど。勉強になりました。ありがとうございました。

230 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 03:57:05 ]
空の文字列 "" と、null の違いがよくわからない。。。

231 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:16:57 ]
>>230
空の文字列は、長さは0だけど文字列。つまり、Stringのオブジェクトが存在する。
nullは、何もないということ、オブジェクトがないという状態を表す。

232 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:20:30 ]
>>221
パッケージ作っといて修飾名でクラス指定してないって訳じゃなさそうだね。

winの関連づけはjavawだからそれはいじらないでコマンドプロンプトから打て。

CUIプログラムをクリックしても動きません!って発想が既におかしい。プロンプト立ち上げてからならjavaが終了してもプロンプトが残ってて消えないはず。

OSのしくみとかそこら辺を分かってないだけだからまずそこら辺を勉強した方が良い。
てか独学?専門生?

>>230
MS VMだと同義w
nullはObject派生型なんだけど値は何にも関連付けられてない。

空文字列は"\u000000"になるんだっけ?
他言語やってて言語によって定義が違うから掴めないの?
ただ単にjavaのnullが分かってない?
後者ならjavaの本見ればいい。

233 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:39:01 ]
>>232
> MS VMだと同義w
そんな話は聞いた事がない。

> nullはObject派生型なんだけど値は何にも関連付けられてない。
Java では null は null型だよ。空型とか訳される事もあるけど。
Object からは派生してない特別な型。

> 空文字列は"\u000000"になるんだっけ?
は?

薀蓄語りたいなら、ちゃんと言語仕様ぐらい見てからやれ。

234 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 04:39:56 ]
>>232
>nullはObject派生型なんだけど値は何にも関連付けられてない。

null は null 型のただ一つの値。
Object 派生型でもないし値が関連付けられていないわけでもない。



235 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 05:39:34 ]
>>232
何か自分の知識を語りたいのは分かるんだが
その表現をする言語力が伴っていないようで少し哀れ
相手の理解力を超えた表現しか出来てないよ・・・・

236 名前:223 mailto:sage [2007/03/10(土) 06:45:41 ]
>>224
遅いレスで申し訳ありません。

try{
timeAtBat = Integer.parseInt(str1);
sacrifice = Integer.parseInt(str2);
hit = Integer.parseInt(str3);


average = (double)hit / (timeAtBat - sacrifice);

NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(3);

System.out.println("打率は" + formatter.format(average) + "です。");
}
catch (NumberFormatException e) {
System.out.println("数は0〜1000の整数で入力ください");
}

str1,2,3はBufferedReaderを使って読み込んでいます。
System.out.println("数は0〜1000の整数で入力ください");の部分を
打席数、安打数、犠打数のどの入力が整数でないのかを"〜数は0〜1000の整数で入力ください"
でそれぞれメッセージを表示させたいのです。

助言をいただけたら幸いです。


237 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 09:01:07 ]
>>236
parseInt を3つまとめてtry-catchするんじゃなくて、
ひとつづつtry-catchすればわかるじゃん。
あとはカウンタ変数でも作って、今何番目のparseIntやってるかわかるようにするとか。

238 名前:223 mailto:sage [2007/03/10(土) 09:06:27 ]
>>237
ひとつずつキャッチする手はもうやってみたのですが、やっぱりそれが一番早いですかね?
カウンタ変数のほうをチャレンジしてみたいと思います。
ありがとうございました!

239 名前:223 mailto:sage [2007/03/10(土) 09:17:34 ]
>>237
忘れてました。ひとつずつtryのすぐあとでcatchしていくと例外は拾えるんですけど、
処理をそこで終われないですよね?その後にある計算式は例外でも実行されてしまって
エラーになってしまいました。
もし、ひとつずつtry-catchしていくのであれば、どこに計算式などを入れるべきですか?


240 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 09:41:12 ]
>>236
入力ください
で吹いたw

241 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 09:42:37 ]
>処理をそこで終われないですよね?
return;

242 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 10:39:34 ]
>>239
try-catchだと記述が長ったらしくなるから、parseをラップするメソッドを作る手もある。
引数は文字列、戻り値はInteger但しparse失敗時はnull。
そのメソッドの中でtry-catchを使う。
.NETにあるTryPaseの亜流みたいなもん。

243 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 10:55:31 ]
HashMapを使って文字列と数字を扱いたいのですが
HashMap<String, int>はintがObjectじゃないからできないんでしょうか?
この場合HashMap<String, Integer>とするべきですか?

244 名前:221 mailto:sage [2007/03/10(土) 10:59:49 ]
>>232
スクールに通ってましたが素人同然です('A`)
関連付けはjavawを変更できないとすると、
結局>>221のプログラムはwクリックでは実行出来ないということでしょうか?
誰かにこのプログラムを使ってもらう時に
「コマンドプロンプトからjava -jar Test.jarって入力してね」
と言うのはちと苦しいです。



245 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:03:57 ]
>>243
プリミティブ型は入れられないのでそうする必要がある。
使うときはautoboxing/unboxingが効くので直接プリミティブを使う
コードを書いてもOK。コンパイラがこっそりIntegerに入れたり出したり
してくれる。



246 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:05:08 ]
@echo OFF
java -jar Test.jar

なバッチを一緒に置いておいてもダメだっけか?

最近WindowsでJava使ってないから忘れたわ。


247 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:15:38 ]
>>245
ありがとうございます
色々調べたり実験したりでちょっと遅れてしましました

宣言だけIntegerにすれば、他ではintとして扱っても問題ないんですね


248 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 11:52:50 ]
>>244
ダブルクリックみたいなGUIど真ん中なことやりたかったら、普通はswingとか使う。
コマンドプロンプトがどうしても必要な場合は>>246の言うとおりバッチでラップすればおk。

249 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:31:28 ]
>>219
ありがとうございます。
調べてみたら、Javaの上位IOクラスは内部バッファとして8192byteつかっていることがわかりました。
その値に統一して使いたいと思います。

250 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:34:43 ]
バッチファイル使うんなら、pause で入力待ちすればOKか。

251 名前:221 mailto:sage [2007/03/10(土) 15:47:13 ]
バッチファイルというのは初耳でした。
>>246をTest.jarのあるフォルダにa.batとして保存してこれをwクリックで無事実行できました!
皆さんに感謝します。

252 名前:230 mailto:sage [2007/03/10(土) 17:44:56 ]
なるほど、ヌル文字列とヌルポインタの関係みたいなもんですね(`・ω・´)
遅レスですが、ありがとうございました。

253 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 17:55:32 ]
Cのようなポインタを使用するプログラムだと常識として覚えてるものだが、
JAVAのようなオブジェクト指向だとポインタ意識しなくていいから知らない人が増えてきたな。
便利になると共に起こる、知識不足の弊害だな。

254 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 18:10:00 ]
>>253
>JAVAのようなオブジェクト指向だとポインタ意識しなくていいから
んなアホな



255 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 18:13:10 ]
>>254
ポインタ操作って普通に使わないでしょう。

256 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 19:23:16 ]
ポインタ演算とか冗長な書き方を許容してないだけでポインタを使ってることを意識しないわけじゃないだろ

257 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 19:27:04 ]
意識しなくていいというと語弊があるが、
実際に意識していない初心者が増えてきたってことだと思う。

258 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:02:20 ]
private int id;
public int getId(){return id;}
public void showId(){
  System.out.println("idは" + ● + "です。");
}
この場合、●に入れるのはidかgetId()のどっちがいいんかな。
好みの問題でおk?

259 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:03:49 ]
>>216
つうか、他のIOクラスでデコレートすれば
サイズなんて気にしなくても良いはずだが。


260 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:06:24 ]
>>246
つうか、マニフェストとJava Web Start使えよ

261 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:22:11 ]
>>258
getId() がいいと思う。


262 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:27:19 ]
>>261
thx

263 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:39:39 ]
>>261
おなじ暮らすないならidでもいいとは思うけど。

264 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 23:06:13 ]
>>261
うーん、悩ましい問題だなぁ…好みというか、目的による?
けど、まぁ、getId()のほうが良いと思う。

例えばそのクラスのサブクラスでgetId()をオーバーライドして
getId() { return "00" + id; }
とかしたときに・・・



265 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 23:11:29 ]
>>264を風呂入る前に訂正

まず、アンカーは>>258に。

あと、
×getId() { return "00" + id; } 
○getId() { return "00" + super.getId(); }

266 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 23:13:02 ]
>>265
…駄目だ俺(笑

getId()は int なのな。
まぁ意図は汲み取ってください(汗

267 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 01:21:31 ]
抽象化はその部分における汎用性・再利用性を増すが
同時に複雑さが増し、保守が難しくなる。

また、よく考えられていない抽象化は、
結局それを使う場合に1から考え直す必要があり、
無駄な労力になる。むしろ、誤解を生む弊害すらある。

そして、「よく考える」とは言っても難しく、的外れになることが多く、
無駄な抽象化がプログラム中に散乱することになりやすい。

そこで、アジャイル的には、まず単純に作って、
例えば顧客に叩いてもらって、抽象化が必要なところを早期に発見する。
(テスト駆動なら、まずテストに叩かれるだろう)

その観点から見ると、
必要と分かるときが来るまで getId() よりも id を使うのがいい。

268 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 03:00:38 ]
外から見ることを基準に考えちゃ駄目なのかな。
getId で取得した値と showId で表示した値は、大抵の場合で一致しなければおかしいから、
直感的に考えた場合は id より getId のほうが適切だろうと思う。たとえ getId が final だったとしてもね。

269 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 03:05:07 ]
追記:「外から見る」ってのは、id が private であって外から見れないことも含めてる。
外から見た場合、id を使うと 『何かよく分からないけど ID の内部表現を showId が表示している』 ってなって分かり難いんじゃないかと。

270 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 08:53:30 ]
>>268-269
同意

使う側の視点で考えるのがいいと思う
idという情報をを操作したい人のためのものなのだからその人のことを
考えなければ、悪く言えば独りよがりな実装になってしまうと思う

271 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 09:06:40 ]
俺の経験から言うと、極力生のフィールドは使うべきではない。
ボトルネックになる可能性、どうしても生フィールドでなければできない処理などは
例外的に使用を許可する、くらいの縛りを加えるようにする方が良い。
トラブル対応、仕様変更対応には絶対にこの方針が必要。無いと死ぬ。大規模だとね。

272 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 09:19:12 ]
使う場所によってフィールドを直接参照したりgetter経由だったり
まちまちなのは良くない。


273 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 11:09:41 ]
モジュール結合度の観点から考える結合度は低い方が独立性が高いため、
データ結合で単一のデータを引数として渡すべき。

274 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 11:29:20 ]
iを打てば補完できるのでid。
getterはgetIまで打たないと補完が面倒。



275 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 12:02:11 ]
>>271
同意!

>>274
開発時に面倒臭がって楽しようとすると後々痛い目にあったりする予感


276 名前:デフォルトの名無しさん [2007/03/11(日) 12:32:01 ]
30個近くのclassファイルをjarにコンパイルするにはどうすればいいんですか?

277 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 12:49:20 ]
>>276
jar cf foo.jar *.class
詳しくはここを読め。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/jar.html
「jarにコンパイル」と言われると違和感を覚えるな。

278 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:17:31 ]
>>274
getまで打てば、そのクラスのアクセッサが一覧出来るのでむしろ便利。
フィールド名だとごちゃごちゃしてる。
>>271
んだんだ。
それに、遅延初期化の為にも入れているかな。
private Hogehoge hogehoge;
public Hogehoge getHogehoge(){
if( hogehoge==null ){
hogehoge = new Hogehoge();
}
return hogehoge;
}

(synchronized はどうしたとかややこしい話は取りあえず抜きな、初心者スレだと荒れそうだから)

279 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:25:43 ]
>>278
フィールドが20個あればgetまで打っても20個出てきてそこから選ばないといけない。
変数名なら頭文字打つだけで絞り込める。
まあ俺はthis.をつけるのでそこまで打つだけでOKのときもあるが。

280 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:26:13 ]
>>277
j2re1.4.2_13 をDL、インストールしてみたのですがこの後がわかりません
コマンドプロンプトに打ち込んでも

'jar' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

とでてきてしまいます;;

281 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:59:17 ]
パスが通ってない
>>1を読め

282 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:06:44 ]
>>280
j2re だと jar 入ってないような。 j2dk か jdk 使え。

283 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:07:40 ]
>>280
コマンドプロンプトに
java -version
って打ってみ?

284 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:45:08 ]
フィールドが20個あったらthis打っても20個候補が出るだろうによw



285 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:48:50 ]
JAVAでもプロパティ導入すればいいのに・・・
わざわざ毎回アクセッサメソッドつくるとフィールド参照からメソッド記述にするのめんどくさい。

286 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:49:35 ]
>>284
getと3文字打つのが怠いんだろうね。
って、どんだけwwww

まぁ、publicアクセス不要なフィールドにはgetter付けないから
20個フィールドがあってもホントはもっと絞れるんだけどね。

287 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:55:29 ]
>>285
リファクタリング機能がある開発環境使えば良いじゃん。

288 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:56:56 ]
>>285
jdk7の議論でプロパティは話題に上っている。

[mustang/Java SE 6] 次世代Javaの動向 4 [dolphin]
ttp://pc11.2ch.net/test/read.cgi/tech/1163986696/
の中に、情報へのポインタがあるよ。

まだ本決まりじゃなくて構文は揺れてるだろうけど、
クロージャよりは揉めずに入りそうな気がしてる。

289 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:19:31 ]
>>258
つ もしかして "自己カプセル化"

290 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:38:54 ]
>>265
同じクラスないであればthis.idで良いジャマイカ

スーパーなときだけgetId()

291 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:40:32 ]
>>278
Factory MethodパターンやFlyweightパターンで
改造したくなってくるなあ。


292 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:41:42 ]
>>284
どういうクラスなんだか。委譲も集約を
ちゃんと使っていれば極力減らすこともできよう

293 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:42:06 ]
>>285
IDEで自動生成しろよ


294 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 16:42:11 ]
>>292
たとえば携帯電話のスペックをオブジェクトで表現しようとしたら
20なんて軽く超えると思うけど。どうやって削るの?

高さ

厚さ
質量
連続待受時間静止時
連続待受時間移動時
連続通話時間音声通話時
連続通話時間テレビ電話時
液晶サイズメインディスプレイ
液晶サイズサブディスプレイ
液晶最大同時発色数メインディスプレイ
液晶最大同時発色数サブディスプレイ
液晶解像度(ドット数)メインディスプレイ
液晶解像度(ドット数)サブディスプレイ
名前最大登録件数
電話番号最大登録件数
メールアドレス最大登録件数
メール保存容量送信メール
メール保存容量受信メール
iアプリ保存件数
ミュージックプレーヤー
バックグラウンド再生
連続再生
iメロディ・着信メロディ
バーコードリーダー
赤外線通信対応
Bluetooth通信
FOMAプラスエリア対応



295 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 16:49:44 ]
携帯電話という込み入ったものをひとつのクラスで完結させようとするという発想が恐ろしい気がする
液晶が別のメーカーのだったら一気に変えないといけないんだよな、そのクラス……

296 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 16:54:28 ]
>>294
なんで無理して一つのクラスでやるんだよw






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

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

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