【初心者】Java質問・相談スレッド76【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/11/27(日) 19:24:09質問をする前に、貴方が見なければならないサイトについての情報は、
下の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質問・相談スレッド75【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1131860937/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
次スレは>>980あたりでお願いしまする。
0159デフォルトの名無しさん
2005/11/29(火) 22:10:230160デフォルトの名無しさん
2005/11/29(火) 22:35:280162デフォルトの名無しさん
2005/11/29(火) 22:48:57>>113くらいよめ
0163111
2005/11/29(火) 22:56:25すいません。
レスアンカーが無かったので気づきませんでした。
フレーム内のWebページはJSPなどにして、そこで表示するデータは
セッションから取得するって感じですかね?
確かにそれでいけそうな気がします。
0164デフォルトの名無しさん
2005/11/29(火) 22:59:42StringBuilderと互角?
0165デフォルトの名無しさん
2005/11/29(火) 23:01:470166デフォルトの名無しさん
2005/11/29(火) 23:02:310167デフォルトの名無しさん
2005/11/29(火) 23:21:00オブジェクト指向(カプセル化)の観点からは望ましくないですか?
0168デフォルトの名無しさん
2005/11/29(火) 23:24:200169デフォルトの名無しさん
2005/11/29(火) 23:39:550170デフォルトの名無しさん
2005/11/30(水) 00:34:19彼の目的はRMIじゃなくてチャットを作ることだけなら
別にRMIもなにもって感じだと思うのだが。
0171デフォルトの名無しさん
2005/11/30(水) 00:36:15なんで全部のノードにTomcatを載せる必要があるんだ?
一つのサーバにTomcatをいれて
クライアントサイドのブラウザからチャットすればいいだけの
話だとおもわれるンだが。
0172デフォルトの名無しさん
2005/11/30(水) 00:38:18BufferとBuilderとの違いもわからんのか。
おまけにWriterと間違えてるし
Javadocちゃんと嫁よ
0173デフォルトの名無しさん
2005/11/30(水) 00:38:48Eclipseに任せて設定できればいい。
0174デフォルトの名無しさん
2005/11/30(水) 00:40:34>>168のいうとおりfinalなら問題なし
だがfinalではないなら、
インスタンスであるばあい、private
にするのが望ましいだろう。
フィールドを継承することは望ましくない。
面倒なことになる。
privateつけてアクセッサメソッドを実装した方がいいだろう。
0175デフォルトの名無しさん
2005/11/30(水) 00:45:42お前こそちゃんと読めよ
StringWriterも知らんのか
0176デフォルトの名無しさん
2005/11/30(水) 00:55:01比較できるものだと思ってるの?
0177デフォルトの名無しさん
2005/11/30(水) 01:08:47対等の立場でやりたいものなんじゃないの?
あとはコマンドラインベースかGUIベースあたりかと
WEBアプリでの話ならそういったほうがはやいし
0178デフォルトの名無しさん
2005/11/30(水) 01:12:51ここでお聞きします。
アホな質問かも知れませんけど
インターフェイスで
swingのボタンアクションはactionPerformed(ActionEvent e)を実装して
使いますよね?
まぁスレッドでも良いですが
でもインターフェイスは本来は何にも実装は無いんだからボタンアクションを
起こすのは何か別のクラスとかで定義されてるって事ですよね?
インターフェイス振る舞いを定義して使う人が実装するから便利なのは
分かるんですけども。
自分で作ったインターフェイスにこの様な挙動を持たせるには
どんな風なクラスを書くのか気になって。
それともインターフェイスはやっぱり再利用するだけのモノ
何でしょうか・・・・?
0179デフォルトの名無しさん
2005/11/30(水) 01:21:27JFrameに直接描画するのとCanvasに描画するのでは違いはありますか?
下のサンプルではCanvasを使っているようですが、
自分が持っている本では直接JFrameに描画しています。
速度や容量などを考えた場合、どちらの方が良いですか?
http://www.fk.urban.ne.jp/home/kishida/kouza/block/block.html
0180デフォルトの名無しさん
2005/11/30(水) 01:22:28それって1対1のツーショットチャットかい。
それはなー、よく昔使われていたperlのゆいちゃっと
と比べるとチャットって気がしないぞw
0181デフォルトの名無しさん
2005/11/30(水) 01:24:21interfaceについて知りたければ
結城浩の『Java言語で学ぶデザインパターン入門』
を読むと良く分かるだろう。初心者にもわかりやすいし
喩え話を使って丁寧に説明している。
0182デフォルトの名無しさん
2005/11/30(水) 01:25:28JFrameのような希ガス
CanvasはJFrameをはみ出してもかまわず(ry
するやつかとオモタ
0183デフォルトの名無しさん
2005/11/30(水) 01:29:351.4.2はうごくけど5.0は消えるはず
普通はBufferStrategyをつかう
0184デフォルトの名無しさん
2005/11/30(水) 01:32:04細かいことはJavaのゲーム開発のスレに行ったほうがいいかも
そこで見かけた
http://shin.cside.com/product/pw/index.htm
はジョイスティック以外はPureJavaらしい
0185179
2005/11/30(水) 01:47:19BufferStrategyとか色々調べてみます
0186デフォルトの名無しさん
2005/11/30(水) 01:51:52>それともインターフェイスはやっぱり再利用するだけのモノ
>何でしょうか・・・・?
インタフェースはその名の通り、インタフェースを定義するものです。
コーディング時にインタフェースのみ定義しておくだけで、
具体的にどのクラスがその実装を行い動作するのかを知らなくても良いのが長所です。
再利用云々は、的外れだと思います。
0187デフォルトの名無しさん
2005/11/30(水) 02:05:43ってかその理屈は分かるんですけど
インターフェイスって自分で定義して書くよりも
ライブラリーで使う方が多いと思うし
例えば何でRunnableインターフェイスのrun()の実装した
内容がスレッドになるのか・・・・ってのが
まぁjavaVMがそのメソッド名を実装してるクラスは
自動的にする様に定義されてるクラスが有るんでしょうけど
それで納得して使った方が良いのかな。
0188デフォルトの名無しさん
2005/11/30(水) 02:08:22インターフェイスだけコミットしておいて、中身は後付けででとか、
てきとうにマルナゲとか、現実でもよくやるでしょ。そういうのに
使うのよ。
0189デフォルトの名無しさん
2005/11/30(水) 02:13:16普通のクラスはそのものに実装も有って。
インターフェイスは実装は使うクラスに任せて
それを実装したかどうか判断する第三者(javaVM)に
判断させて黒幕のスレッドを動かすクラスも存在する
って考えれば
インターフェイス=抽象メソッドで何も挙動しない
って考えるよりもライブラリー使う分には納得出来ますね。
この認識でとってもヤバイ間違いを犯す可能性が無いなら
これでやって行きたいんですが・・・・
0190デフォルトの名無しさん
2005/11/30(水) 02:17:24javaとUMLで学ぶオブジェクト指向の考え方
と
オブジェクト指向でなぜつくるのか
を図書館や友達に借りて詠んでるんですが
もっと勉強しなおして出直してきます。
結城って名前良く出るからこれも詠むしかないっぽいですね。
失礼しました。
0191デフォルトの名無しさん
2005/11/30(水) 05:28:30食うだけ食って遅い能無し言語だと言うことが解った。
なんでこんな言語を必死に使おうとしているのか
理解に苦しむ
0192デフォルトの名無しさん
2005/11/30(水) 05:30:280193デフォルトの名無しさん
2005/11/30(水) 05:56:17君のコードがウンコちゃんだからなのでは
メモリ4GBも乗せる金は有っても
頭がアレではアレ?だろう。
何でもwindowsって時代でも無いだろう。
でも金は無いのでjavaでxpで作ってますけど・・・・
習得の苦労さへ厭わなかったら商用と変わらん品質のモンが使える。
Java Studio Enterprise 8やJava Studio Creatorもフリーだし
sunも何処に行くんだろうって思うけど。
ってか.NETって確かに楽しそうなイメージは有るけど
MSの株価の為にaspから.netになってまた突然変わったりして
windowsでは.netが良いだろうけどunix系でも稼働出来る様にしたら
金の卵のwindows使う人が減るから絶対しない(筈)
大体javaを叩くのはC,C++,C♯使いじゃなくてvisualbasicの人が多い。
どうでも良いけど。
0194デフォルトの名無しさん
2005/11/30(水) 06:13:26もう少し整理してから書いた方が良いと思う
0195デフォルトの名無しさん
2005/11/30(水) 08:32:180196デフォルトの名無しさん
2005/11/30(水) 08:42:220197デフォルトの名無しさん
2005/11/30(水) 09:22:52それをCで作ったらどうなるか報告求む
0198デフォルトの名無しさん
2005/11/30(水) 09:46:39コンパイル時に
private SessionManager mngrSession;
という宣言で「型SessionManagerは使用すべきではありません」
とだけエラーが表示され理由も何も表示されません。
何が悪いのでしょうか?
0199デフォルトの名無しさん
2005/11/30(水) 10:36:53そのSessionManagerってのが何者なのかはオマエしか知らんわけだが
それのドキュメントでも読んでみたらどうだ。 deprecatedなんじゃねーの?
0200デフォルトの名無しさん
2005/11/30(水) 13:40:14> >>186
> ってかその理屈は分かるんですけど
> インターフェイスって自分で定義して書くよりも
> ライブラリーで使う方が多いと思うし
> 例えば何でRunnableインターフェイスのrun()の実装した
> 内容がスレッドになるのか・・・・ってのが
デザインパターンの一つ、Template Methodパターン
について読んでみれ。
ソースコードサンプルを読めばああなるほど、とわかるはずだ。
あれは抽象クラスではあるが、Threadクラスのrun()メソッドと同じ。
start()メソッドの内部でrun()メソッドを呼び出す命令がかいてあるから、
オーバライドしたrun()メソッドを書くだけでスレッドとして動作できる。
0201デフォルトの名無しさん
2005/11/30(水) 13:43:00おまいの作ったまたは拾ってきたJavaプログラムが
古いコンパイラで動く駄目なものなのか
おまいが動かしているVMが糞なんだな。
それかもしくはおまいのCPUが300MHz以下の糞マシンであるか
もしくはおまいの使ってるOSに糞サービスが大量に
常駐してJavaを使う前から4GBのメモリをすべて占有しているとかなw
0202デフォルトの名無しさん
2005/11/30(水) 13:47:11> >>191
> 君のコードがウンコちゃんだからなのでは
> メモリ4GBも乗せる金は有っても
> 頭がアレではアレ?だろう。
>>191は頭が馬鹿だからメモリ4GB載せてもJavaは遅いとか言ってるんだよw
>>191の頭にメモリ4GB積んだほうが>>191のためになるわなw
> ってか.NETって確かに楽しそうなイメージは有るけど
.NETは仕事もプロダクトもAPIもろくになくて何も楽しくないなw
> MSの株価の為にaspから.netになってまた突然変わったりして
M$はC#を推してるかと思ったらVB.NETのほうを強く推してるしw
> 大体javaを叩くのはC,C++,C♯使いじゃなくてvisualbasicの人が多い。
ワラタ。なんでだろーねw
VB.NETやC#がJavaにそっくりでJavaのような文法を覚えさせられる
ことが気に入らないのかねw
0203デフォルトの名無しさん
2005/11/30(水) 13:58:05押し入れにはVJの箱が入ってるとかさ。
0204デフォルトの名無しさん
2005/11/30(水) 15:00:020205デフォルトの名無しさん
2005/11/30(水) 15:16:22見当たりません。
点の数が少なくても適当な補間を行ってくれる、グラフのライブラリってありますか?ff
0206デフォルトの名無しさん
2005/11/30(水) 15:27:21> JVMのソースコードが公開されたのは
> Java SE 6 Mustangになってからだぞ。
http://www.sun.com/software/communitysource/j2se/java2/download.xml
ライセンス違うけど、1.2の頃からソースは見れるようになってるよ。
0207デフォルトの名無しさん
2005/11/30(水) 15:49:09XYPlotかな?
XYItemRendererを好き放題に実装して使ったらいいよん
0208デフォルトの名無しさん
2005/11/30(水) 16:40:11public String getKey() { return "super"; }
}
class Sub extends Super {
public String getKey() { return "sub"; }
}
この getKey を、Super またはそれを継承したインスタンスを一切作らずに実行することって出来ないですよね?
リフレクションでも出来ないし……(´・ω・`)
0209デフォルトの名無しさん
2005/11/30(水) 16:48:050210デフォルトの名無しさん
2005/11/30(水) 16:51:13public String getKey()
0211デフォルトの名無しさん
2005/11/30(水) 16:52:31public static String getKey() { return "super"; }
}
class Sub extends Super {
public static String getKey() { return "sub"; }
}
0212デフォルトの名無しさん
2005/11/30(水) 16:54:340213208
2005/11/30(水) 17:03:06いや、やりたいことは
[1] インスタンスAから、Aが属するクラスと対応した文字列を取得したい
[2] 一部の処理では、Class オブジェクトから直接 [1] の文字列を取得したい
だから……素直に getKey を static にして、リフレクション使って [1] を実現するメソッド新たに作るです (´・ω・`)
なんだろう。『一部の処理』 のために全体が複雑になってる気がする……。
0214デフォルトの名無しさん
2005/11/30(水) 17:06:20画像の周りは白です。
白白白
白田白
白白白
こんな感じです。もちろん田の中は何ピクセルかは決まってません。田の中の4つの色情報を得るには、左上から1ピクセルづつrgbの値を読みこむのは出来るのですが、黒の中の色情報を得るのが難しいです。
意味不明な質問かもしれないけど、お願いします。
0215デフォルトの名無しさん
2005/11/30(水) 17:08:460216デフォルトの名無しさん
2005/11/30(水) 17:13:29class.newInstance().getKey()
ではアカンの?
0217デフォルトの名無しさん
2005/11/30(水) 17:18:18設計が間違ってるんじゃね?
0218デフォルトの名無しさん
2005/11/30(水) 17:24:29完全に黒の部分は田の線の所だけです。この田は2×2ですが、5×5でも、取り合えず田の線の中色情報(RGB値)を得たいのです。
0219208
2005/11/30(水) 17:29:06引数なしコンストラクタ作っとけば良いんですけど……引数有りで全体組んじゃったんで(´・ω・`)
>>217
間違ってると思いたいけど、やりたいことは間違ってない。・゚・(ノД`)・゚・。
0220デフォルトの名無しさん
2005/11/30(水) 17:30:21やってみてなぜ出来ないと思ったの?
紙にアルゴリズムでも書いてみた?
0221デフォルトの名無しさん
2005/11/30(水) 17:39:58田の線無しの4つの画像のRGB値を得る事が出来ていないんです。
赤青
黄緑
(正方形で1色のピクセル値は例えば50×50)
簡単で当たり前ですが、1ピクセルなら読み込むことが出来ます。
が、ピクセル数が多すぎると、どういう風にすればいいのか分かりません。
0222デフォルトの名無しさん
2005/11/30(水) 17:43:06適当だけどこんなんはどう?
getKeyをstaticにすると駄目な所が出たりしない?
public class Hoge {
public static void main(String[] args) {
System.out.println(getKey(Super.class));
System.out.println(getKey(Sub.class));
}
public static String getKey(Class<? extends Super> c) {
try {
return (String) c.getField("KEY").get(null);
} catch (Exception e) {
return null;
}
}
}
class Super {
public static final String KEY = "super";
public String getKey() { return KEY; }
}
class Sub extends Super {
public static final String KEY = "sub";
public String getKey() { return KEY; }
}
0223デフォルトの名無しさん
2005/11/30(水) 18:01:01しこしこがんばります。ありがとうございます。
0224デフォルトの名無しさん
2005/11/30(水) 18:18:56ありがとうございます。getKey が各クラスにコピペされるのがちょっと違和感あるですが、
何とかやってみます(`・ω・´)
0225デフォルトの名無しさん
2005/11/30(水) 18:39:50もともとgetKeyてつかってないの?
だったら public String getKey() { return KEY; } は要らないよ。
0226デフォルトの名無しさん
2005/11/30(水) 18:40:06(例えば、exeをクリックすると実行するとか)
教えてください
0227225
2005/11/30(水) 18:41:21を忘れてたorz
0228デフォルトの名無しさん
2005/11/30(水) 19:00:32ん?ちょっと良く分かんないですが、私が気にしたのは 「全く同じコードが随所にある」 ってことです。
今回の getKey は短いですから、気にしなければ良いだけなんですけどね。
0229デフォルトの名無しさん
2005/11/30(水) 19:10:48なるほど、そういうことですか。
instance.getKey()が少し遅くても大丈夫ならこれでも良いかも。
class Super {
public static final String KEY = "super";
public final String getKey() { return getKey(getClass()); }
public static final String getKey(Class<? extends Super> c) {
try {
return (String) c.getField("KEY").get(null);
} catch (Exception e) {
return null;
}
}
}
class Sub extends Super {
public static final String KEY = "sub";
}
0230デフォルトの名無しさん
2005/11/30(水) 19:25:22警告を表示する際に数回実行する程度なので、それで大丈夫そうです。
本当にありがとうございます。
0231デフォルトの名無しさん
2005/11/30(水) 19:32:50super.clone() を呼んだ時に、どのような動作がどのような順番で行われるのか詳しく教えて下さい。
0232デフォルトの名無しさん
2005/11/30(水) 19:59:32jar
0233デフォルトの名無しさん
2005/11/30(水) 20:03:21それで軽い初心者だと思ってるのかよ・・・重症だな
0234デフォルトの名無しさん
2005/11/30(水) 20:25:01どうも
単なる圧縮形式だとおもてました笑
0235デフォルトの名無しさん
2005/11/30(水) 20:40:34超初心車です。
RandomAccessFileを使わずにseekってできるのですか?
テキストファイルの先頭から任意の位置にSeekしたいのです。
テキストファイルをreadLine()見たいなメソッドで一行づつ処理をするプログラムです。
RandomAccessFileを使用すれば希望する動作はします。
ただ・・・・遅すぎて現実的には使用不可能です。
0236デフォルトの名無しさん
2005/11/30(水) 21:11:07はーいせんせー。遅いのには別の理由があると思いまーす。
0237デフォルトの名無しさん
2005/11/30(水) 22:33:590238デフォルトの名無しさん
2005/11/30(水) 23:18:310239デフォルトの名無しさん
2005/11/30(水) 23:50:52正解です
0240デフォルトの名無しさん
2005/12/01(木) 00:56:20以下のコードを実行すると、毎回必ず[1000]が出力される事を期待しているのに
何回か実行を繰り返していると、1000未満の数値が出力されます。
これは何故でしょうか?環境はjava1.5.0_5です
public class ThreadTest {
static volatile int c;
public static void main(String[] args) throws Exception {
Thread t0 = new MyThread();
//この間にt1〜t8もnewする
Thread t9 = new MyThread();
t0.start();
//この間にt1からt8もstart()する
t9.start();
t0.join();
//この間にt1からt8もjoin()する
t9.join();
System.out.println("[" + c + "]");
}
}
class MyThread extends Thread {
public void run() {
for (int i = 0; i < 100; i++){ThreadTest.c++;}
}
}
0241デフォルトの名無しさん
2005/12/01(木) 01:03:450242デフォルトの名無しさん
2005/12/01(木) 01:06:26コメント有難うございます。
volatileは変数へのアトミックなアクセスを行うための修飾子であると
理解していたのですが、それは誤りだということでしょうか?
volatileの修飾子を使う事により、どのような効果があるのでしょう?
0243デフォルトの名無しさん
2005/12/01(木) 01:08:48volatile 使って劇的に結果が変わるコードを書いたことがない (-∀-;
ちなみにアトミックな方は synchronized で、volatile は変数のキャッシュを抑制するはず。
volatile は無視されるという話も聞いたことがあるが……正直どうだったか。
0244デフォルトの名無しさん
2005/12/01(木) 01:10:14大体10クラス程度、8000ステップぐらいで納めたいのですが
どんなもんでしょう?
0245デフォルトの名無しさん
2005/12/01(木) 01:12:33volatileはスレッドで行なった変数書き込みがちゃんと反映されることを保障するだけ。
だからそのコードでは100以上になれば正しい挙動。
0246デフォルトの名無しさん
2005/12/01(木) 01:15:19Hibernateじゃいかんのかい?
0247デフォルトの名無しさん
2005/12/01(木) 01:17:28なるほど、無視される可能性があると言う事ですか。
実装はVMに依存されていると言う事なのかな・・。
>>244
一番簡単なテストプログラムならば
Entityを1つ、それとMainクラスを1つの2クラスで十分だと思います。
Java5を使うならば、Annotationを使う事をオススメします。
それならば、あとはhibernate.cfg.xmlを1で合計3つのファイルだけでOKだと思います。
サンプルは
http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/
を参考にすれば大丈夫だと思います。
簡単に書く為には、Entityのクラス名とプロパティ名はテーブルと全く同一にし、
classに@Entity、pkのプロパティに@IdをつけるだけでOKです。
あとはDBにあるデータをSelectしたり、Updateしたりするだけのコードでも書けば
資料としては十分ではないでしょうか。
0248デフォルトの名無しさん
2005/12/01(木) 01:21:050249デフォルトの名無しさん
2005/12/01(木) 01:27:35>volatileはスレッドで行なった変数書き込みがちゃんと反映されることを保障するだけ。
私のテストプログラムでは、10あるスレッドがそれぞれ変数cを100インクリメントしています。
なので、インクリメントが必ず反映されるならば、cの値は1000になると推測しました。
しかし、1000未満の値になる場合があるので、これはスレッドで行った変数書き込みが
他のスレッドに反映されていないケースがあるのだと理解しました。
これは私の理解に誤りがあるのか、プログラムに問題があるのか・・。
ちなみに、volatileは単なる興味でテストしてみただけで、
実際に使う事は永遠にないとは思います。
0250デフォルトの名無しさん
2005/12/01(木) 01:29:44volatileとインクリメントの併用は間違えやすいポイントだよ
c++はワンステップで行われるわけでは無く
1)cのロード
2)c += 1の実行
3)cのストア
の3ステップがある。この場合タイミングによっては、
スレッド1 スレッド2
1) c = 10 1) c = 10
2) c += 1 2) c += 1
3) c = 11 をストア
3) c = 11 をストア
となる事がある
volatileは各1)2)3)をアトミックにしてくれるだけ
意味無いじゃんと思うかも知れないが、longやdoubleでは意味がはっきりするよ
0251デフォルトの名無しさん
2005/12/01(木) 01:30:200252デフォルトの名無しさん
2005/12/01(木) 01:31:01>>240 の場合はAtomicIntegerで良いんじゃない?
0253デフォルトの名無しさん
2005/12/01(木) 01:31:12syncronizedやLockのatomicとは違う
0254250
2005/12/01(木) 01:32:290255デフォルトの名無しさん
2005/12/01(木) 01:33:37たまたまカウントが分かりやすいから例に出しただけとおもわれ
当たり前だけどatomicは融通が利かないしね
一般のアプリでソースにatomicでてきたらぶちころすかも
0256デフォルトの名無しさん
2005/12/01(木) 01:34:03なるほど!そういうことだったのですね!
ご回答有難うございました。謎がすっきりしました。
longやdoubleが何故はっきりするかが判りませんが
それは自分で調べてみます。
0257デフォルトの名無しさん
2005/12/01(木) 01:43:47無視されてるというよりは
同時に書き込まれてるんでない?
0258デフォルトの名無しさん
2005/12/01(木) 01:47:52自分が結城先生の本を立ち読みしてちょっと考えたのは
インターフェイスとは
public interface Understandable {
void implCode();
}
class User implements Understandable {
public void implCode() {
System.out.println("実装コード");
}
}
class X_interface {
public X_interface(Understandable code) {
//此処にスレッドなり、ボタンアクションなりの挙動を書く。
//このコードが複雑でも再利用が可能。例えば
for(;;){
code.implCode();
}
}
}
でスレッドとかはjavaVMに何か仕掛けが有ってX_interfaceを呼び出すとか
考えました。
まぁインターフェイスの使い方とかはこんな感じと思うですけど
■ このスレッドは過去ログ倉庫に格納されています