トップページ⇒tech
1001コメント375KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/11/25(日) 12:36:51
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下の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() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド108【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1194442749/

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

次スレは>>980あたりで。
0153デフォルトの名無しさん2007/11/27(火) 21:45:24
>>152
できねーよ。同じインスタンスだろーが。
0154デフォルトの名無しさん2007/11/27(火) 21:51:20
だから質問の意図がわかんねーと言ってるんだ
変数ごとにメモリは別の領域に確保される
インスタンスごとにグループ化はされている。
あとはどんな型で見るかによって見える範囲が違う
0155デフォルトの名無しさん2007/11/27(火) 21:54:42
でもコンストラクタは上から実行されてインスタンスは下から出来るってどこかに書いてあったけど
0156デフォルトの名無しさん2007/11/27(火) 22:04:44
インスタンスってのはメモリレベルで見れば変数(領域)を幾つかまとめたもの
その確保の順番がスーパークラスからって話で何か問題ある?
0157デフォルトの名無しさん2007/11/27(火) 22:04:56
そのどこかが何を意図して 「インスタンスは下からできる」 と書いたか分からないが間違い。
new A() とすれば A に必要な領域がスーパークラス分も含めて確保される (VMの実装によるが
その領域は連続している)。
0158デフォルトの名無しさん2007/11/27(火) 22:12:37
領域の確保は宣言した瞬間に全部まとめて。
でも、初期化はスーパクラスから
0159デフォルトの名無しさん2007/11/27(火) 22:14:23
でも、スーパークラスにprivateフィールドとpublicのアクセサ作ってサブクラスに継承するとsuper付けないとアクセス出来なくなるような?
0160デフォルトの名無しさん2007/11/27(火) 22:16:45
publicアクセサを上書きしてないなら super 付けなくてもアクセスできるし、
privateフィールドには super 付けてもアクセスできない。
0161デフォルトの名無しさん2007/11/27(火) 22:21:38
アクセス制御とメモリのモデルは全くもって無関係だよ
superを付けるのは、同じ名前のメソッドやフィールドがあった場合に、コンパイラに対してどのメソッド(フィールド)を使うかを明示する為でしかない。
0162デフォルトの名無しさん2007/11/27(火) 22:29:41
こういう細かいところ書いてある仕様書ってある?
0163デフォルトの名無しさん2007/11/27(火) 22:36:49
なんとなく分かった。
154のがわかりやすかった。全部入ってる下からグループ化されるし。
0164デフォルトの名無しさん2007/11/27(火) 22:44:12
>>162
JavaVM仕様
概念的なものであれば、言語仕様でも充分に書いてある
0165デフォルトの名無しさん2007/11/27(火) 22:45:39
Aというベースクラスを継承したB、Cというクラスがあったとして、
分岐を使わずB、Cで処理を分ける方法ってありませんか?
A、B、Cともに生成は別ライブラリなので弄れないです。
0166デフォルトの名無しさん2007/11/27(火) 22:46:06
>>162
ないと思うけど。実装依存な部分の話だし。
0167デフォルトの名無しさん2007/11/27(火) 22:47:57
>>165
そりゃポリモーフィズムのことをいってんのか?
文脈からすると、A,B,Cのクラスは全部固定に聞こえる。
もしその前提で行くとなると、instanceofで分岐するしかないと思うんだが・・・。
0168デフォルトの名無しさん2007/11/27(火) 22:51:17
>>167
ジェネリックとかでできないかなぁと思ったんですが。
0169デフォルトの名無しさん2007/11/27(火) 22:51:17
>>165
サブクラスで挙動変えるのは A, B, C のクラス設計変えないと無理。
もし A がインターフェースなら動的プロキシ使え。
0170デフォルトの名無しさん2007/11/27(火) 22:54:13
使う側で仕分けするというのはパターンマッチとか関数型言語には良くあるやり口だけど
Javaは継承での仕分けしかサポートしてないからね……
場合によってはVisitorパターンで代用できるが、それを使わずに設計されたライブラリに対しては無力
結局instanceofで手動分岐するしかない。
0171デフォルトの名無しさん2007/11/27(火) 22:56:51
弄れないならどうにもならんな
最初から分ける処理の部分を分離できるように設計されてなきゃ
0172デフォルトの名無しさん2007/11/27(火) 22:56:53
>>168
GenericはErasureだから実行時はないものとされるよ。
だから分岐には使えないと……
Classオブジェクトを同時に渡して手動キャストみたいな荒業は出来るがあんまり意味ないか。

>>169
>動的プロキシ
その発想があったか
0173デフォルトの名無しさん2007/11/27(火) 23:01:29
>>168
ああ、それなら関数のオーバーロード使えばできるよ(たぶん見にくいけど)
一つの関数の名前でA,B,Cそれぞれのクラスについて定義すればいい。
ただし、このメソッドはクラスのインスタンスの型ではなく、変数の型に合わせて呼ばれるから、
クラスAの変数にクラスBのインスタンスを入れたとしても、
void func(A a){〜}
void func(B b){〜}
A b_as_a = new B();
func(b_as_a); //<-呼ばれるのは上
となる。インスタンスの型によって処理を変えたいなら、ポリモーフィズムか前述のinstanceofしかない。
0174デフォルトの名無しさん2007/11/27(火) 23:02:53
やりたい事が思い切りずれているような気がしてならない俺
0175デフォルトの名無しさん2007/11/27(火) 23:12:37
>>173
オーバーロードとオーバーライドの違いで苦戦する未来が見えた
0176デフォルトの名無しさん2007/11/27(火) 23:25:23
逆コンパイルは駄目?
0177デフォルトの名無しさん2007/11/27(火) 23:27:54
良いよ。
0178デフォルトの名無しさん2007/11/28(水) 00:01:27
なんかここの流れ見てると久しぶりに言語作りたくなってきた
名前はJapaにしようか
0179デフォルトの名無しさん2007/11/28(水) 00:03:28
>>178
NihongoDeOK をつくってくれ
0180デフォルトの名無しさん2007/11/28(水) 00:03:36
この流れでどうして言語を作りたくなるのかよくわからんが、名前はNyphon(ニフォン)で頼む。
0181デフォルトの名無しさん2007/11/28(水) 00:14:56
言語作るなら 1 バイトのプリミティブ型を符号付と符号なしに明確に分けてくれ。
いちいち 0xFF でマスクするの面倒だし、なんかそこだけ気持ち悪ぃ。

byte → 8bit 符号なし (0〜255) → バイナリデータに使用
tiny → 8bit 符号付 (-128〜127) → 整数値として使用
0182デフォルトの名無しさん2007/11/28(水) 00:20:03
>>181
データ型の要素はすべて直行してるのに、いちいち固有の名前が与えられてるのが不自然なんだよ。
整数型も浮動小数点型も符号のあり/なしと使用バイト数を自由に決められる型にすればいい。
Integer<false, 4> みたいな感じで。もしくはさらに拡大してVar<Numeric.Integer, false, 4>みたいにして全部の型を定義すれば
全部の問題が片付く。頻繁に使うタイプは標準ライブラリで先に定義し解けばいい。
まあ、今のJava言語の使用では到底不可能だけどな。
0183デフォルトの名無しさん2007/11/28(水) 00:21:59
意外に継承ってインターフェイスより難しくないか?
0184デフォルトの名無しさん2007/11/28(水) 00:26:49
浮動小数点に符号なしなんて作ったらコプロ使えなくなるじゃん。
コプロってもう死語か?
0185デフォルトの名無しさん2007/11/28(水) 00:33:01
>>184
(先に断っておく、マジレスしてすまん)
コプロってコプロセッサのことであってる?GPUみたいなもんだと解釈していいんだろうが、
それならGPUの指定する型に合わせたサイズと型をライブラリで指定すればいい。
実際、DirectXは標準のD3DXMatrix型じゃなくとも、byte[8]の構造体で処理できる。
0186デフォルトの名無しさん2007/11/28(水) 00:40:53
ローテート演算子を頼む。
なんでCにはなかったんだろう。
0187デフォルトの名無しさん2007/11/28(水) 00:42:20
>>185
FPU の事。今はもう CPU にビルトイン状態になっているが、IEEE 754 規格に合わない
浮動小数点形式なんか採用したら FPU 殺してるも同然。
0188デフォルトの名無しさん2007/11/28(水) 00:43:56
言語作るならばExcelで仕様書を書けばアプリに変換されるコンパイラを付けてくれ
0189デフォルトの名無しさん2007/11/28(水) 00:51:44
>>187
そうだったのか。それなら、最低限FPUでサポートされる型を標準としてライブラリで定義したらいいんでない?
それとも、FPUで扱えない型があるだけでプログラム全体のスピードが落ちるんだろうか。
0190デフォルトの名無しさん2007/11/28(水) 00:57:25
ユーティリティクラスを作るとき、publicなstaticメソッドを作成して
外部から呼び出す、見たいな事をやってるコードをよく見るんですけど
あんなことして遅くならないのですか?
0191デフォルトの名無しさん2007/11/28(水) 01:02:12
>>189
Java VM は C で書かれてるから Java プログラムで double や float 使わなければ問題はないが、
シミュレーションや数値解析、グラフィック処理やり始めたら他言語にめちゃくちゃ水を空けられる結果になると思う。
ハードウェア未対応な動きをさせる方を BigDecimal のようにライブラリ提供すべきでは。
0192デフォルトの名無しさん2007/11/28(水) 01:02:56
>>190
そうしない方が速いと思う理由は何ですか?
0193デフォルトの名無しさん2007/11/28(水) 01:05:26
>>190
どのくらい遅くなるんだい?
1ミリ秒以上の差が出るならば次から考慮するよ
0194デフォルトの名無しさん2007/11/28(水) 01:21:13
>>191
まあ、現状で特定のサイズ/型に特化したオペレーションがCPU周辺にあるんだから、そうするのが妥当なんだろうけど。
でもそうなると、結局PCの環境によってdoubleやintのサイズが違うとかいう馬鹿なことが起こっちゃう。(Cだけか?
・・・とはいうものの、有効な対策があるわけでもないし、しょうがないのかなあ。
0195デフォルトの名無しさん2007/11/28(水) 01:25:42
>>190
インスタンス参照してクラス解決してから呼び出すよりは速い。
0196デフォルトの名無しさん2007/11/28(水) 01:28:53
>>121
亀レスだが、Commons Collectionsってのがあって内部イテレータ用のインタフェースが用意されている。
また、JDK1.7ではクロージャが追加されるとの話もある。
0197デフォルトの名無しさん2007/11/28(水) 01:30:10
>>190
static自体が実行速度が速いんじゃなかったかな?
01981902007/11/28(水) 01:50:33
多数のレスありがとうございます。

privateメソッドよりpublicメソッドのほうが遅いってことは、globalに近い
別のクラスのメソッドなんてさらに遅いのではないかと思ったりしたわけです・・・
0199デフォルトの名無しさん2007/11/28(水) 01:54:57
>>194
C で int のサイズが違うのは 「2 バイト以上 (でその環境でもっとも効率の良い幅)」 という
最低限の保障しか規定していないから仕方がない (double って IEEE 754 準拠だったと
思うけど幅変えられたか?)。あっちは実行効率重視なんだし。
0200デフォルトの名無しさん2007/11/28(水) 01:57:28
>>198
伝聞を元に推測を展開するより、まずはその手で試してみたほうが良いと思う。
プロマネ志望とかなら良いんだけど。
0201デフォルトの名無しさん2007/11/28(水) 02:06:04
>>198
> privateメソッドよりpublicメソッドのほうが遅いってことは
そもそも、この部分の根拠は?
0202デフォルトの名無しさん2007/11/28(水) 02:06:12
private / public で速度の差は考えなくていいと思う
C / C++ / Java での差はかなりあるよ
0203デフォルトの名無しさん2007/11/28(水) 02:08:11
>>198
Ruby みたいに動的に探しに行く言語なら遅くなるかも知れないけど
Java はコンパイルしてしまえば同じ(コンパイル時に見えるか見えないかの違いだけ)
0204デフォルトの名無しさん2007/11/28(水) 02:15:09
>>203
いやまぁ private は継承の影響を一切うけないから静的で
public は動的ってのはあるから、同じじゃない。
「動的」っても Ruby の動的ってのとは程度が違うけど。

でもまぁ、JITがインライン展開するかの判断には private か public かよりも
メソッド自体の長さとか、使用するスタックサイズとかの方が重要っぽいし、
private だから速いってのは final すれば速くなるって都市伝説と同レベルだと思うぞ。
0205デフォルトの名無しさん2007/11/28(水) 02:24:10
入門書の最初の方にはしょっては有るけど書いてある内容だよね
0206デフォルトの名無しさん2007/11/28(水) 02:25:25
>>204
staticついてなけりゃだけどな。
private/publicでinvokespecial/invokevirtualの差がつくのは。
0207デフォルトの名無しさん2007/11/28(水) 03:05:10
JDBC で PreparedStatement 使って前方一致検索するときってワイルドカードのエスケープ
しなきゃならない仕様だっけ? PostgreSQL 8.2 だと下のが全件検索になってしまうんだが。

PreparedStatement stmt = con.prepareStatement("SELECT * FROM FOO WHERE NAME LIKE ? || '%'");
stmt.setString(1, "%");
0208デフォルトの名無しさん2007/11/28(水) 06:31:16
"SELECT * FROM FOO WHERE (NAME LIKE ?) || (NAME LIKE '%')"
0209デフォルトの名無しさん2007/11/28(水) 09:14:03
javax.xml.xpathの使い方教えてください。
0210デフォルトの名無しさん2007/11/28(水) 09:15:33
import javax.xml.xpath.*;
0211デフォルトの名無しさん2007/11/28(水) 11:19:08
其れ使い方って言うか?
0212デフォルトの名無しさん2007/11/28(水) 15:59:37
Jakarta プロジェクトで J2EE コンテナを作ると言う計画がだいぶ前にあったと
思うんですけど、その後どうなったかご存知ですか?
0213デフォルトの名無しさん2007/11/28(水) 16:44:51
>>212
ん?Apache Geronimoのことか?
http://geronimo.apache.org/
0214デフォルトの名無しさん2007/11/28(水) 17:13:40
下記のプログラムの意味を教えてください。
よろしくお願いします。
import java.util.Comparator;

class A {
public static final Comparator<A> COMPARATOR = new Comp();

private static class Comp implements Comparator<A> {
public int comparator(A d1, A d2) {

----------------------
}
}
}
0215デフォルトの名無しさん2007/11/28(水) 17:15:24
javadoc嫁
0216デフォルトの名無しさん2007/11/28(水) 17:21:57
>>214
Aというクラスがある
Aのstaticな内部クラスとして、Compがある
CompはAクラスのComparatorを実装している
Aクラスには静的変数(定数)としてCompが定義されている

という意味だ。
0217デフォルトの名無しさん2007/11/28(水) 17:28:13
>>214
そのCompクラスはAの中でしか使わないからAの中で定義されてる
>public static final Comparator<A> COMPARATOR = new Comp();
は、毎回Compクラスのインスタンスを作らなくてすむようにするためのおまじない
0218デフォルトの名無しさん2007/11/28(水) 17:30:08
Comparatorを『staticネストクラス』として定義しておくと差し替えが利きやすい。
たとえば複素数の比較に『絶対値で比較』『実数部で比較』みたいな複数の比較演算を用意できる。
しかもインスタンスさえあればprivateなフィールドやメソッドにも触れるので実装を隠蔽したままメソッドを書ける。
02192172007/11/28(水) 17:33:49
見間違えてた
>>217の2行目は忘れて
0220デフォルトの名無しさん2007/11/28(水) 19:09:35
String.hashCode()は、遅延計算(?)してるにも関わらず、
計算時に同期処理をしていませんが、何故問題が起きないのでしょうか。
また、それで問題にならないのにconcurrent.utilの
AtomicIntegerが用意されたのはどんな理由からでしょうか。
0221デフォルトの名無しさん2007/11/28(水) 19:20:05
>>220
String#hashCode()は、何回計算しても毎回同じ結果にしかならないので、同期してなくても問題ない
あるスレッドが計算完了した結果が他のスレッドに伝わってなくても、
再計算することになるので効率は悪いが、計算結果はいつも一緒

AtomicInteger は、そういう単純なケースじゃ済まないときのため
0222デフォルトの名無しさん2007/11/28(水) 19:25:11
あぁ、あと、最終結果が代入されるだけで、計算途中の中間結果は保存されないからだな。
他のスレッドから見えるのは、初期値のゼロか、最終結果かの2択しかない。

別のスレッドが計算した結果がまだ自分のスレッドには見えてなければ、再計算。
別スレッドの方が先に計算完了しても、そのフィールドには結局同じ値しか書き込まれないので、混乱はまったくない。
0223デフォルトの名無しさん2007/11/28(水) 20:42:51
AtomicIntegerが必要なのは値のインクリメントっていうか、
getやset単体ではvolatileつけるだけでスレッドセーフになるのに『getして+1してsetする』という
お決まりの動作は手動でsynchronizedしないとスレッドセーフになってなかったから出てきた。
AtomicIntegerを使えば、システム側がその『getして+1してsetする』みたいな単位で
メモリの処理をやってくれるからsynchronizedしなくても自動的にスレッドセーフになるような、まぁそういうもの。
0224デフォルトの名無しさん2007/11/28(水) 20:46:02
はじめまして。
質問があるので書き込みさせていただきます。


現在アプリケーションを作成していて、AWT/Swing/SWTが混在しています。
元がSWTなんですが、Swingで作っているパネルをSWTと連携させるためにSWT_AWTを利用して
SWTに貼っています。
Swingのpanelは連携するときにAWTのFrameになるため、3つが混在している状態になります。


ここで本題なのですが、Swingのpanel部分にスクロールバーをつけることになりました。
普通ならSwingなのでJScrollPaneを利用したらいいのはわかるのですが、AWTのFrameが挟まれているため上手く出来ません。
対処方法などはあるのでしょうか?
0225デフォルトの名無しさん2007/11/28(水) 20:56:29
AWT/SwingとSWTまぜんなよ
0226デフォルトの名無しさん2007/11/28(水) 21:11:41
>>225
すみません。
Skype apiを利用しているため、SWTありきなんです。
0227デフォルトの名無しさん2007/11/28(水) 21:12:13
AWTのScrollPaneを使うか、Java7を待つ
0228デフォルトの名無しさん2007/11/28(水) 21:15:24
ならばSWTだけで組めばいいじゃん
0229デフォルトの名無しさん2007/11/28(水) 22:05:02
トリプル混ぜは初めて聞いたな。
その発想はなかったわ。

というかSWTはネイティブ依存しすぎてるからAWTより混ぜるな危険なんじゃない?
というかSWT使うならAWT/Swing要らんだろ。
0230デフォルトの名無しさん2007/11/28(水) 22:40:26
混ぜるな危険
いや、マジでちゃんぽんはろくなことないぜ
0231デフォルトの名無しさん2007/11/28(水) 22:55:49
将来それらが大丈夫だとしても、まず保守性を考えた時点で実務じゃやらないなぁ。
似通ったAPIを3種も混ぜるとかちょっとありえない。
awtにFileChooserが登場したら、それだけは使うかもだけど。
0232デフォルトの名無しさん2007/11/28(水) 22:57:05
平気でまぜちゃう神経が怖い
0233デフォルトの名無しさん2007/11/28(水) 23:07:51
Skype API → SWT 必須
プログラマ → SWT 分かんねー、必要最小限にとどめたい

というありがちな構造なのでは。サーバサイドの業務システムでもよくあるし。
Wrapper や Facade で何重にも包んだクラスたちが脳裏に浮かびます。
0234デフォルトの名無しさん2007/11/28(水) 23:11:31
WrapperやFacadeで包むくらいの能力があれば、SWT覚えるだろw
もっとカオスなコードだと思われ
0235デフォルトの名無しさん2007/11/28(水) 23:18:22
担当者のリビジョンが 6 くらいで 3 世代目以降は管理されてないとか。
何で POI の JAR が入ってるかさっぱり分かんないけどとりあえず現状維持みたいな。
0236デフォルトの名無しさん2007/11/28(水) 23:20:49
そういやJSR-198ってどうなったんだろう。IDE共通のプラグイン規格のやつね。
SunもIBMもExpert Groupだったはずだが、可決後もさっぱり音沙汰ないね。
0237デフォルトの名無しさん2007/11/28(水) 23:49:51
>>130
ありがとうございます!↓のような感じで出来ました。
{char source[] = new char[4096];
int len;
while((len = br.read(source)) != -1){
sb.append(source, 0, len);
}}
改行文字をわざわざ付けなくても良くなったのでスッキリしました。ありがとうございました。
0238デフォルトの名無しさん2007/11/29(木) 00:23:13
ApacheのHttpClientを使いmultipartのリクエストを投げたいと考えています。
が、昔あったCommonsの頃にあったクラスがなくなってしまったようで、途方にくれています。
解決策ありましたらばご教授願います。
0239デフォルトの名無しさん2007/11/29(木) 00:34:43
エスパー募集中
0240デフォルトの名無しさん2007/11/29(木) 00:46:36
>>238
ttp://commons.jakarta.jp/httpclient/

以上。後は日本語でおk(ry
0241デフォルトの名無しさん2007/11/29(木) 01:47:09
宿題スレも手伝って〜
0242デフォルトの名無しさん2007/11/29(木) 01:48:26
見てきたが宿題スレはちゃんと機能してるじゃないか。
0243デフォルトの名無しさん2007/11/29(木) 07:25:43
   /⌒ヽ
  / ´_ゝ`)すいません、ちょっとテストしますよ・・・
  |    /
  | /| |
  // | |
 U  .U


public class HelloWorld
{
    public static void main(String[] args)
    {
        System.out.println("Hello, world!");
    }
}
0244おしえて君2007/11/29(木) 07:32:16
すいません。教えて下さい。

例えば
System.out.println
Systemはクラス
outはフィールド(java.io.PrintStreamのインスタンス)
printlnはメソッドですが

このように
A.B.C
の形をしたものというのは、クラス、フィールド、メソッドと思っていいのでしょうか?

また、outはフィールドだけど、java.io.PrintStreamのインスタンスというような使い方
はjavaで何か特別な方法として名前がつけられてるんでしょうか?
(継承、インタフェース、みたいな名前がつけられてる?)

質問がわかりにくいかもしれませんがお願いします

0245デフォルトの名無しさん2007/11/29(木) 09:07:46
> A.B.C
> の形をしたものというのは、クラス、フィールド、メソッドと思っていいのでしょうか?
よくありません。

> また、outはフィールドだけど、java.io.PrintStreamのインスタンスというような使い方
> はjavaで何か特別な方法として名前がつけられてるんでしょうか?
特別な方法ではありません。
0246デフォルトの名無しさん2007/11/29(木) 09:18:10
Systemクラスのoutフィールドにはstaticという識別子が付いています。
staticの付いているフィールドはインスタンス化しないでも使えます。
定数にメソッドが付いているって感じです。以下、サンプル。

import java.io.*;

class MySystem
{
    static int HOGEGE = 12345;
    static PrintStream out;

    static {
        try {
            out = new PrintStream
                (new FileOutputStream("output.txt", true), true);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

public class HelloWorld
{
    public static void main(String[] args)
    {
        for (int i = 0; i < 10; i++) {
            MySystem.out.println(i + " " +
                                 MySystem.HOGEGE + " " +
                                 "Hello, world!");
        }
    }
}
0247デフォルトの名無しさん2007/11/29(木) 09:29:27
>>244
Javaの場合は命名ルールに従っていれば簡単に見分けが付く
最後に()がついている単語はメソッド
付いていない場合、大文字から始まればクラス名、小文字から始まれば変数名(ローカル変数orインスタンス変数orクラス変数)。

System.out.println() である場合、
Systemはクラス名。
outはフィールドになるが、クラスに紐付いているのでクラス変数と判断できる
println()はメソッドであるから、outの型(クラス)のメソッドと判断できる
0248デフォルトの名無しさん2007/11/29(木) 09:45:01
〜秒後に計算結果を表示させるにはどんな
コマンドを使ったらいいですか?
0249デフォルトの名無しさん2007/11/29(木) 09:49:06
Timer クラス

単に処理を止めるだけなら Thread.sleep()
0250デフォルトの名無しさん2007/11/29(木) 10:04:59
>>249
ありがとうございます
0251デフォルトの名無しさん2007/11/29(木) 10:08:04
>>249>250
ScheduledExecutor使え
0252デフォルトの名無しさん2007/11/29(木) 10:10:39
staticな変数の名前は全部大文字&アンダースコア単語区切りにするってのが共通認識だと思っていたんだけど、
最近は普通のインスタンスみたいに先頭小文字方式にするようになったの?SystemクラスしかりColorクラスしかり。
■ このスレッドは過去ログ倉庫に格納されています