初心者のよるjavaアプリケーション
■ このスレッドは過去ログ倉庫に格納されています
0001ひろゆき
NGNG早速詰まってしまいました。。。
どうぞ、よろしくお願い致します。。。
0002ひろゆき
NGNGアプリケーションで、フレームをつくって、ボタンとラベルを配置していて、
ボタンを押すと、フレームの中を背景色で塗りつぶして、
ボタンとラベルを消すというのをやりたいのですが、、
消し方がわからず困ってます。。。(;;)
0003衝撃君.
NGNGボタンとラベルを消すんじゃなく、取り除くんじゃだめすか?
java.awt.Container#remove(Component c);
0004ひろゆき
NGNG使い方がよくわからないのですが、、、
パネルを使ってるので、
java.awt.Container#remove(ps2);//ps2はパネルの名前です。
こういった感じでいいのでしょうか?
0005名無しさん
NGNGpanel.remove(button);
だよ。パネル自体を消したいなら、さらにその上位のコンテナから消す。衝撃君が書いたのは、ドキュメント用の文法でそのまま書いてもコンパイラを通らないよ。
0006ひろゆき
NGNGとボタンの名前をいれても、static参照はできないと
怒られてしまうのですが、、、
00071です
NGNGパネル名.remove(消したいオブジェクト);
Panel.remove(d);
これじゃ何からdを削除したいのかわからないよ。
0008名無しさん
NGNG悪い。1じゃない。
0009ひろゆき
NGNG0010ひろゆき
NGNGrei2{ というメソッド内で、ps2というパネルを設定していて、
そこでは、ps2.remove(d)でけせたのですが、
他のメソッドからps2.remove(d)をけそうとすると、
未定義な変数と怒られてしまいます。
どこかのメソッドの変数指定する方法はあるのでしょうか?
0011やれやれ
NGNGこういうオブジェクトをローカルオブジェクトと言います。
普通はフレームクラスの最初の部分にグローバルオブジェクトとして宣言します。
こうすると、フレームクラスの中のすべてのメソッドから参照できます。
これはクラスの基本だし、変数が宣言した関数内でしか使えないのは基本中の基本です。
この程度のことがわかってないってことはオブジェクト指向なんて全くわかってないのと同義だと思いますが。
一度最初から入門書を読むことをおすすめします。
0012ひろゆき
NGNG一応、「独習java」という本は読破したのですが、
自分でコーディングしてみないことには概念がよくわかってなくて、、
変数にpublicで宣言するんでしたっけ、、
ちょっと読み返してみます。ありがとうございますー。
0013名無しさん
NGNGオブジェクト指向の概念を理解してないと、Javaで
まともなプログラムを作ることは不可能に近いと思う。
0014ひろゆき
NGNGパネルって変数だったんですね、、(^^;;
imageとかも変数として扱われてるんでしょうか?
0015衝撃君.
NGNGめだ。今の君に大事なのはさっさと卒論書くことだろ?Java
なんてやめて得意のPerlで作ることを薦める。
じゃ、死期と言って木間ー巣。
0016オブジェクト指向と言うよりは
NGNG対応も飲み込めていないみたい。
これじゃJavaはおろか、CやPASCALですら無理じゃ?
0017>16
NGNGひょっとして、2chの掲示板のスクリプトも、すべて
グローバル変数を使っているとか。
でも、なにはともあれ掲示板のスクリプトを書き上げ
たのはすごい。
(おいらは作ったことがないから、よく分からないけど。)
0018>17
NGNG誰かデバッグしてやってよ>2chのCGI
0019>18
NGNG公開当初はスクリプトを解析して荒らすヤツも現れるだろうが、
バグ取りに協力する者も多く現れるはず。
結果、2chスクリプトは今よりも改善されると思うが。
0020これ
NGNGなかなか良さげなんだけど
なんか動かないものが2つ程。。。
バージョンアップまで待つか
0021ひろゆき
NGNG>なんてやめて得意のPerlで作ることを薦める。
卒論の実験用プログラムをくまなきゃいけないんですよぉ(;;)
cgiだと実現できない部分があって、あえなく他の言語に手をだしてるわけなんです。。
Panel をpublic宣言する方法がわかりません。。。
public ps2 = new Panel(); とかじゃないですよね。。。。
0022え?
NGNGなんでプログラム書かないといけないの?
0023ひろゆき
NGNG実験をしなきゃいけないんですよ。
おいらがやろうとしてるのは、「色のメモリスパン」というやつで、
人間は色をどのように記憶するのかというものです。
んで、そこで、ランダムな色を数個提示して、
それを時系列順に色をクリックで選んで貰うというプログラムを
作らなきゃいけないんですね。。。
0024ひろゆき
NGNG色がついた正方形をクリックするとアクションが起こるようにしたいので、
cgiだと、実現できないんですよね。。。
0025ひろゆき
NGNGPanel をpublic宣言する方法がわかりません。。。
public ps2 = new Panel(); とかじゃないですよね。。。。
0026名無しさん
NGNG外してたらすまん。細かい所は間違ってると思うので、適宜
読み替えてくれ。
rei2というメソッドが定義されているクラス名を仮にayanami2と
おくと、そのクラス定義部で、
public class Ayanami2 {
public Panel ps2;
(rei2などのメソッドの定義...)
}
と定義しておいて、rei2内で
ps2 = new Panel();
というふうにパネルの実体を作成すれば、同じオブジェクト内の
全メソッドから、ps2を参照できると思う。
早いはなしが、ps2の定義をrei2というメソッドではなく、その
一つ外の、ayanami2というクラス定義部でやればいいんじゃないかと。
public宣言をしておけば、Ayanami2クラスのオブジェクトを参照して
いる他のオブジェクトからも、rei2を読むことができます。
ただ、やはりオブジェクト指向やスコープなどの概念の理解が先
だと思う。いくら急いでいるからって、こんな状態で無理にプログ
ラムを作ろうとしても、いつまでたっても完成しないんじゃないかな。
とりあえず、入門書の熟読と、それに沿った簡単なプログラムの
作成が先だと思います。
C++プログラマからの讒言でした。
0027>25
NGNGpublic class test extends Frame
{
private Button button;
public test() {
setLayout(null);
button = new Button("ボタン");
button.setBounds(100@` 100@` 100@` 100);
add(button)
show();
}
}
この場合、button が test 内のどこからでも参照できる。
002827
NGNG>Panel をpublic宣言する方法がわかりません。。。
public宣言ってのは、宣言したクラス以外のクラスからでも
アクセスできるっていう意味だよ。
だから、通常の変数はprivateにしといた方が良いと思う。
0029ひろゆき
NGNG上位概念のところで定義して、そこを消すようにすればよかったんですね。。
入門書を読んだのですが、実際にコードをつくってみないと、
よく分からない気がして、作り始めたものの、、
アプレットのサンプルはいっぱいあるのですが、
アプリケーションのサンプルがあまりなくて、
困っていました。
じわじわ一歩づつすすんで、完成までこぎつけたいとおもってるんですが、、
お手数かけますです。。。
0030ひろゆき
NGNG変数の宣言の違いもいまいちわかってなかったもので、、
ありがとうございます。
003126
NGNGってあるけど、Javaってそのような精度でリアルタイム制御できる
のかな? もちろん、環境にもよるだろうけど。
0032ひろゆき
NGNGperlのcgiだとサーバーを通すので、
アプリケーションのjavaのほうがマシかと、、
それと、perlでミリ秒で止める方法をしらないというのも、、
0033名無しさん
NGNG>アプリケーションのサンプルがあまりなくて、
>困っていました。
今書かれているような部分だと、
アプリケーション例でもアプレット例でも
大して変わりは無いように思うがのお。
0034ひろゆき
NGNGちょっとした変更だけで、逃げ切れるかなとおもってたんですが、、
003511
NGNG違います。パネルはパネルクラスからインスタンスしたオブジェクト。
変数とオブジェクトの区別がついていないようでは、JAVAでGUIプログラムをするのは難しいよ。
オブジェクトとは何か?というのを実感できるようになると楽にプログラミングできるようになるよ。確かに一見CやPerlのいわゆる変数と同じに見えなくもないが、ここが重要。
0036Javaをやるなら
NGNG0037変数ってことで
NGNG細かいこと言えば、パネルクラスのオブジェクト(インスタンス)への
参照を保持している変数ってところか。
まあ変数には変わりは無い。
0038sleep
NGNGどのプラットフォームで動かすかは知らないけど、
PCってことにしてしまうと、
結局、実際に動作する際の最小分解能は55mSecじゃないかな。
まあJVMの実装次第だろうけど、55mSec単位である可能性は
かなり大きいと思う。
それと、sleepって「最低そんだけの時間寝る」ってだけで、
指定時間経過後に遅滞無くすぐに実行再開ってのは保証されてないよ。
0039ひろゆき
NGNG今日1日だけでも、だいぶわかってきました。どうもです。
ジャワハウスの過去ログを読んだのですが、、
レベルが高すぎるような、、(^^;;;;
ひとまず、、がんばるのみですね。。
004026
NGNG参加した当日に、どうでもいいことで、熱いフレームが
勃発したんだよね。かなり寒い気持ちになった。
>「お願いします」「うまくいきません」 は「禁句」に??
これだもんなあ。(笑)
004111
NGNG要するにJAVAの変数には、値をコピーするプリミティブ型と、オブジェクトのポインタを渡すオブジェクトの両方があるんだということを言いたかったんです。
0042ジャワハウスMLは
NGNG0043オブジェクト指向Pは
NGNG0044名無しさん
NGNG以下ジャワハウスの投稿から無断転載
>>さて、System.currentTimeMillis() の精度ってどのくらいのものでしょうか?
>昔作ったcurrentTimeMillisの精度測定プログラムを動かしてみました。
>FreeBSD JDK1.1.7 1mS
>Soraris2.6(86) JDK1.1.6 1mS
>Windows95 JDK1.1β3 1000mS(昔測った)
>Windows98 JDK1.1.7 50〜60mS
>WindowsNT4.0 JDK1.1.8 10mS
>WindowsNT4.0 JDK1.2.1 10mS
一番多く使われてるOSの精度が一番悪い。
TimerクラスってのもあるけどこれもWin98だと精度が全然だめ。
私の場合はJNIを使って何とかしようとしてるんだけど。。
0045ゆきねに☆彡
NGNGそうそう。 PC/ATはタイマー用のICにi8253が載っていて、その動作周波数
×任意の数で割り込みがかかってたような…。 で、ちょうどキリのいい数
字となると、せいぜい1/200秒くらいまでしか駄目だったような記憶がありま
ます。 そのうえ、Timerなんて使った日にゃ本当にイベントの取りこぼしな
く動いてくれるかとか、余計なとこで時間を潰してるんじゃないかと不安で
使いたくないけどなあ。
WindowsネイティブなアプリにしてGetTickCount使うとか、計測用のボードで
も入れた方が、javaでtimerよりは安心できるような気が…。
0046ゆきねに☆彡
NGNG認知心理学で色が云々って懐かしいなあ。
学生時代に、ピラミッドをお好きな色で構成していくとか、呈示した色に
対する印象を聞くなんてプログラムをアルバイトで作ってました。
0047名無しさん
NGNG>んで、そこで、ランダムな色を数個提示して、
>それを時系列順に色をクリックで選んで貰うというプログラムを
からして、0.1秒単位の精度があれば十分なんじゃないかな?
0048ひろゆき
NGNGどうせおいらの卒論だし、、、1000mでプログラムしましたって
言い張れば、教授は納得してくれますし、、、
0049なんにしても
NGNG0050名無しさん
NGNGDirectorとか適当なオーサリングツールでごまかせないのか?
0051ひろゆき
NGNGフラッシュだと、データの書き込みができないので、、、
0052>51
NGNG0053>ひろゆきさん
NGNG0054名無しさん
NGNG0055ひろゆき
NGNG薦められて、立ち読み45分の末、購入しました。
コンストラクタとメソッドの違いがようやくわかってきたような。。。
0056> 55
NGNGCからC++へ移るとき、暫くOOPの概念だけを理解するのに
時間をかけました。
とりあえず、OOPは、めったやたらとデータにアクセスできないように、
関連性のある変数とメソッドをまとめてやる、と捉えておいて良いんじゃないかなあ?
でもなんでswing使わないんですか?
0057ひろゆき
NGNGswingではないのですが、swingの方がよさそうな気も、、
処理速度としては、どうなんでしょうか、、
swingと普通のawtのどちらがお勧めなんでしょうか?
0058単純なアプリだったら
NGNGawtのほうが軽くて、swingは重い。
awtより、swingのほうが複雑。
ただし、一度憶えてしまえばawtよりswingコンポーネントのほうが使いやすい。
0059名無しさん
NGNG0060衝撃君.
NGNG構使えます。とにかくやたらとメモリ食います。swingは一見複
雑ですが、一度概念を覚えてしまうと非常に使いやすく、もう
他のGUIに移るの嫌になりますな。MFCって何脱毛?
0061ゆきねに☆彡
NGNGもうAWTにゃ戻れないし、MFC? ぷぷっ、って感じです。
Pentium Pro 180MHzのマシンでSwing使った開発をやってたので、
今のマシンだと全然ストレス感じません。
0062あの、
NGNG0063ひろゆき
NGNGthread.sleepを入れるには、tryとcatchを使わなければいけないようなので、
tryとcatchを入れたとたんに以上に重くなってしまいました。。
http://www.2ch.net/rei2.java
いったい、、何が原因なんでしょうか、、
わかる方、いらしたらお願いしますです。。。
0064java初心者
NGNGRunnableをImplementして、run()メソッドで
thread.sleep(1000)
paint()
ってな感じにしたら?tryとcatchはいるけど・。
0065えらそうでゴメン
NGNGVBで書いたらいかんのん?
オブジェクト指向がなんなのか分かってないのにプログラム
書き始めるのはいかがなもんかと。。
JAVAって現在のところどうしてもWebで公開したいものか、
今までの手続き型プログラムには将来がないと気がついた人が
構造にこだわって書くもんっしょ。
俺はそういう信念なんだが。
0066衝撃君.
NGNGなんか最近の学生さんはとにかくねこもしゃくしーもJavaなのよ。
学生さんの場合、プログラミング自体の勉強も兼ねていること
が多いのでVBよりJavaで勉強したほうが筋がよくなるとは思う。
でもVB=かっちょわりー、Java=かっちょいいというブランド
イメージでナニゲに選択しているような気もする。
0067java初心者
NGNGう!・・・・・
0068名無しさん
NGNG入れないソースをコンパイル・実行できて
それと比較して重くなったとでも?
って無理だよな。
0069名無しさん
NGNGJDK1.6で作ったプログラムがJAVA2じゃ動かなかったよ。
GUI使ってる奴。
0070JDK1.6なんて
NGNGというのはさておき、1.1.6で作ったのが動かないってなら
oldjavaコマンドは試してみた?
0071>69
NGNGJava2のコーディングスタイルに変更しました。
大変でしたよ・・・
0072>71
NGNG007371
NGNGイベント処理系なんかが全く別物なんですね。
標準クラスのメソッド名も変更されていたり。
旧コードでもコンパイル自体は出来るんですが、
警告がガンガン出て来るんですね。
0074ひろゆき
NGNGrunnableでスレッドを走らせたほうがよかったのかなと考えつつ。。
http://www.2ch.net/rei2.java
VBとJAVAだと、開発環境の予算が違うので、、、、
あと、、VBをいまさら覚えてもなぁ、、と。。。
0075>74
NGNG0076名無しさん
NGNGそのかわり安くて大規模で納期の短い、悲惨な話が
多いような気がします。
0077seven
NGNGpure-javaって、どうなるんでしょうね
0078>74
NGNGListener使うときって別のクラスにしないか?
実害はないが配列の宣言は
Object[] o= new Object[a];
↑こういう書き方が正しいらしい
0079ひろゆき
NGNGひとつのクラスで完結させちゃおうと、同じクラスにいれちゃいましたです。
わけたほうがよさそうですねぇ。。。
0080名無しさん
NGNG特にSwing関係は無理そうだけど、JAVA2がサポートされてないプラットホームって多いじゃない。そんな中でJAVA2使ってプログラムしていいのかなあって思ったりして。
008178
NGNG動かないと思ったほうがいいです
上位互換と思ってください
でもJAVA2とJDK1.1.Xって洗練度が全然違うんだよなあ
WinとSolarisで使うならJAVA2でしょう
LinuxのPre2を使ったがGUI関係でよくフリーズします
0082後ろ向けの
NGNGちなみにSwingだけならJDK1.1.*用のがあるからOK。
問題はコレクションとか、やっと行われたStringBufferの
機能強化部分とか、各クラスに加わった便利そうなメソッド
とか、その他挙げきれないJAVA2以降の部分だわな。
ま、JAVA自体まだ3@`4年ていどじゃないの、
1@`2年後に期待するわ、わし。
008378
NGNGクラスの概念の理解の妨げになる
0084ひろゆき
NGNGやっと、テストができるようになりました。。ふぅ、、
後は、これをループさせて、、、
008578
NGNGこれって動くか?
コンパイルとおらんような気がする
class mmaってどこにある?
クラス名の先頭小文字で書くのは止めたほうがいい
0086初心者A
NGNGですね。大文字の方がなんかでっかいきがするし(笑)
0087大文字
NGNGJavaに限らず、C++どころかCでさえ
型名は先頭大文字がお行儀の良い人の間での確立した慣習よ:-)
#Javaの場合、コーディング規約で定められてなかったか?
0088ひろゆき
NGNGえ、、、クラスの名前って大文字にしなきゃいけないんですか。。
勉強不足でしたー。。
0089ひろゆき
NGNGhttp://www.2ch.net/mma.java
後ほど大文字にかえますー。
009078
NGNGimport java.applet.*;
なんてしている?
Applet使っているようには見えないがよけいなimportはバグの元だぞ
あと前にも言ったがActionListerのimplementをclass rei2でやるのはやめろ
Object指向の理解の妨げになるようなコードになるぞ
private Color colors[] = new Color[6];
を
private Color[] colors = new Color[6];
に書き直せ
上でもコンパイルはできるがはっきり言って間違いだ
Cとの互換性のためにあるそうだが初心者の誤解を招くので
何で禁止しないのか謎だ
0091ひろゆき
NGNGinmplementsする例があったので、そのままぱくったのですが、まずかったのでしょうか。。
アドバイスどうもです。さっそくなおしてみました。
http://www.2ch.net/Rei2.java
http://www.2ch.net/Mma.java
0092えっと
NGNG009378
NGNGsetSizeにsuper.っているかなう髟阡察ト
しかしこのプログラムで卒論になるの?
なんか入門書のプログラムまんまじゃん
>92
ここでいっているスレッドの意味は?
単に起動という瘢陲海箸覆餝ei2のmainだと思う瘢陲韻ノ
009492
NGNGjava.lang.Thread の方です。
0095ひろゆき
NGNGだから、これができないことには、なにもはじまらない。。。
009678
NGNG>92
使ってないのでは?
>95
がんばってくださいね
でもJAVAって他言語より敷居は低いと思うよ
009794
NGNGThread.sleep(1000);
ってあるから・・・
009878
NGNGそれは実行中のメソッドを一時停止させるものです
単にそこで1秒待ってるだけですね
0099ひろゆき
NGNGまた一秒表示するというのに、thread.sleepをつかってます。
93番はなんてかいてあったんでしょうか、、
0100ひろゆき
NGNGjyunという変数なんですが、ひととおり、色を表示して、正誤判定をして、
もう一巡という形にしたいのですが、jyunという変数が0にもどらないのです。
そこらじゅうに、jyun=0;といれたのですが、0に戻っていません。
jyun=他の変数; というコードもないのに、なぜこんなエラーがでるんでしょうか、、、、
0101ひろゆき
NGNGあ、ソースわすれました。。。
0102ひろゆき
NGNG0103ひろゆき
NGNGどうしてこんなにむづかしいんでしょ。。。
01041人の質問スレッドで
NGNG0105名無しさん
NGNGその後jyunの値が増えた後に、画面にjyunの値が表示されてる
ようだけど、それじゃだめなの?
とにかく、ソースのインデントくらいはきちんとやったほうが
いいと思うよ。見づらくてしょうがない。
010678
NGNGちょっと解読に時間がかかりそうだ
105が言ってるがインデントくらいしてくれ
コメントも欲しいな
何をしようとしているかが分かればバグの特定は容易になるぞ
この程度のプログラムなら解読は難しくないが
そこにバグがある場合それがバグなのか仕様(笑)なのかは作者しかわからない
それからそこらじゅうにjyun=0なんて入れるな
入れたい場所というのが分からないようではプログラムなんて出来んぞ
ついでに変なバグがあとで出ることになるであろう
0107ひろゆき
NGNG見やすいソースにがんばってしてみます。
ありがとうございます。
0108ひろゆき
NGNGhttp://www.2ch.net/Mma.java
あれぇ、、、わかりやすくするために、ひとつのメソッドを分割してたりしたら、
エラーがなくなってました。。
やはり、わかりやすくするのって、重要なんですね。。しみじみ・・・
0109名無しさん
NGNG0110ひろゆき
NGNGhttp://www.2ch.net/Mma.java
ついに、完成しました!というか、動作するようになりました。
みなさん、本当にありがとうございますです。
結局、、オブジェクト思考から程遠いプログラムですが、、
徐々にいじっていきたいとおもうです。
0111とりあえずおめでとう!
NGNG0112ひろゆき
NGNGいきあたりばったりで、動けばOKみたいになってしまったです。
まぁ、、それが目的なんですが、時間があったら、
classごとに分けて、オブジェクト指向に走ってみたいです。。
見にくいソースですいませんです。。
011378
NGNG仕事(Javaのプログラム)が終わった後に気分転換に見てました
おお、しばらく見ないうちに見やすくなってる(笑)
0114ひろゆき
NGNGオブジェクト指向ってなんなんかなど。。
未だに、インターフェイスがなんのためにあるのかよくわかってませんが、、
0115ひろゆきさんって
NGNG0116めでたい
NGNG0117>116
NGNG0118>116
NGNG011978
NGNG多重継承が出来ないからその代わり…というのがまず第一
会社などではinterfaceだけ決めて一部のオブジェクトを
外注に出すという使い方ができる(^^;
>118
今のJAVAVMってかなり軽いぞ
さてはアプレットしか知らないな?
0120んー^^: >119
NGNGあたしも言語の理論上のことを深く解っているわけじゃ
ないので、明確に反論できませんが、そんな便法的な面
が第一というような軽いものでしょうか、あれは。
012178
NGNG>あたしも言語の理論上のことを深く解っているわけじゃ
>ないので、明確に反論できませんが、そんな便法的な面
>が第一というような軽いものでしょうか、あれは。
便法的面じゃないですよ全然
はっきり言って言語設計の根本にかかわる大問題だと思いますが
0122確かに
NGNG>多重継承できないクラスの代わりが第一
0123自分も
NGNG何のためにあるのかがわかりません。
詳しい人教えてプリーズ。
0124C++という
NGNG近頃では、実装の継承と型の継承は別に考えよーぜ、
ってことらしい。型というか外から見た振舞いというか。
実際、ベースクラスについ実装を盛り込んで、後で
ベースクラス作成時には考えてなかった新たなクラス作ろうって
ときに、邪魔になったり無駄になったりってのはちょくちょく
ある。俺の先の見通しが悪いだけかもしれんけど。
こういうことは多重継承かどうかは関係無い。
で、classでも全部のメソッドがabstractでインスタンスデータも
持たないようにすれば良いようなものだけど、でもclassだけだと
つい実装盛り込んでしまってもコンパイラは何も気にしてくれない。
interfaceだと「これは振舞いの定義だけだ」ってのをコンパイラにも
判るほど明確にできる。
たぶん、実装を含まないと仕様上明確にできれば、多重継承というか、
振舞いの面を合成しても、あまり困ったことにはならないと判断
されたんじゃないかな。
こうしてしまえば、実装を含むかもしれないclassは多重継承禁止に
してしまえる。
つまり近傍の流れで言われている、多重継承の面で言えば、
・classが多重継承できないから、その代わりにinterfaceを
用意。
ではなく、
・interfaceというものを導入したおかげでclassの多重継承を
禁止できた。
と見る方が良い。
違いは微妙だけど、文章に表された因果は、んー逆と言えば逆かな。
0125名無しさん
NGNG作れば、interfaceと同じことができますね。
(Javaみたいにきれいな記法ではないけど)
多少手段は異なりますが、オブジェクト指向でいう抽象クラスの実現と
いう点では、同じですよね。
0126そう
NGNG後に続く部分を読めばまあ、そういうプログラマの
意識に頼ることの無い、言語の機能としてのレベルの
話として読んであげたよ。
>で、classでも全部のメソッドがabstractでインスタンスデータも
>持たないようにすれば良いようなものだけど、でもclassだけだと
使われている用語はJava寄りだが、
"interface"などというものを使わない場合を
述べておるので、C++にも当てはまるだろうて。
0127名無しちん
NGNGないですが…
ひろゆきくん、Perlって、CGI通さなくても動くよ?(^^;; ってそう
いう問題じゃないってか。GUIが欲しいのか…だったら109さんの言う
通り、JavaScriptの方が、Perl育ちのひろゆきくんにはいいかもよ。
あと、誰かがVB勧めてたけど、もし予算下りるんだったら Inprise
が出してるBorlandの"JBuilder"(ややこしいなぁ)あたりを買って、
それ使うのが早いよ、きっと。あれ?もう用は済んだのかな。だったら
ごめん(笑)
あ、interfaceの話の腰折ってごめん。
0128名無しちん
NGNG言ってる事はだいたい賛成、というか、気持ちは伝わってきます。
専門的に言うと…なんだっけ。"fragile base class"問題(名前合っ
てるか自信ない)ってのを解決する手段なんですよね。interfaceって。
それが、124さんが前半で言ってる話だと思います。
>・interfaceというものを導入したおかげでclassの多重継承を
> 禁止できた。
つまり、「多重継承の禁止」はinterface導入の副産物って事ですよね。
確かにそう。でもちょっとツッコミを入れると、interfaceがないと多重
継承を避けられない訳じゃ、ないです。「汎化−継承」の関係を使う代わ
りに、「集約−委譲」の関係を使えばいいのです。C++の文法忘れちゃった
のでJavaっぽく書きますが
class A { public int hoge(); }
class B extends A {}
をやめて、
class B {
A a;
public int hoge(){ return a.hoge(); }
}
と書き直す手法です。mix-inって言われるテクニックは、この方法を
利用しています。ただし、差分プログラミングのメリットは少し損な
われてしまいます。
本気でinterfaceについてもっと深く読みたければ、fj.comp.oopsに
でも行けば、気が狂ったように議論をしてるスレッドを目にする事が
できますよ(笑)
0129ひろゆき
NGNG0130名無しちん(自己レス)
NGNG>てるか自信ない)ってのを解決する手段なんですよね。interfaceって。
ちゃんと説明というか、フォローというか、124さんの言い直しという
か。
従来のオブジェクト指向において問題だったのは、クラスを再利用する
為には「継承」が強力すぎたことです。本来、コードを独立した小さなモ
ジュールに分割して、モジュール毎に再利用できる、というのがオブジェ
クト指向のメリットだったはずなのが、実はクラス−サブクラス間の依存
度が大きすぎるので、そううまくはいかないぞ、って事になったんです。
その、クラス−サブクラス間の依存を緩和する為に考案されたのが、
「interfaceの継承(≒型の継承)」と「実装の継承」を分離する事だった
んです。
だから、多重継承の禁止とinterface導入は、本来無関係…とは言い切
れないけど、それが目的だった訳じゃないです。
0131名無しちん
NGNGあ、なるほど。じゃ、データ保存するときだけCGI経由でPerlにお願い
すれば?(笑)
0132名無しちん
NGNG>125
抽象クラスとinterfaceの役割は、概念的には少し、違うんです。
というより、interfaceは抽象クラスのサブセットと言えるかもしれま
せん。
具体的に言えば、例えば抽象クラスではprotectedなメソッドを定義で
きたりしますが、それは「interfaceの継承」と「実装の継承」を分離
するっていう、interfaceの定義からは許されない事なんです。だって、
protectedなメソッドって、クラス自身の実装の為に用いるメソッドで
しょ?
interfaceは、そのクラスを使う側の為の抽象クラス、とでも言えばい
いんでしょうか。
0133ひろゆき
NGNGボタンを使いたくなかったもので、、、
さておき、話が突然とびますが、C++のプログラムをメモリ上に
常駐させることは可能なんでしょうか?
mod_perlやサーブレットはメモリに常駐するために、
処理が早くなると解釈していますが、
そうすると、C++をメモリ上に常駐させるのが、
一番高速な気がするのですが、そんな簡単にはいかないんでしょうか?
0134>133
NGNG0135名無しさん
NGNG>きたりしますが、それは「interfaceの継承」と「実装の継承」を分離
>するっていう、interfaceの定義からは許されない事なんです。だって、
そうか、
だからpublicなメソッドしか許されなかったのか。
やっと納得できた。
0136ひろゆき
NGNGC計画と、サーブレット計画がるのですが、
Cをメモリに常駐させられるなら、そのほうがいいのかな?と、、
0137ぽ
NGNG今どきのマシンはたいていマルチタスクだし^^;)
ちゃちゃはここまでにして。
CGIだと毎回起動するので重たい。
Servlet or mod_perl だと 起動は発生しないので軽い。
C だと java or perl よりも速いので Cで同じようなことが
できれば もっと速い?
って ことだと思います。
WWWサーバーを改造して Cで作ったプログラムと通信するような
仕組みまでを作れば 可能ですが、大変だと思います^^;)
Servlet をお勧めします。
複数のWWWサーバーにて掲示板を運営する場合など
RMIを使えば相互管理も楽ですし^^
0138… (116)
NGNG0139ひろゆき
NGNG起動しないですむ形でCのプログラムを使うことはできるのか?
ってことです。
servletのほうが現実的みたいですね(^^;
0140名無しちん
NGNGた。servletって、JavaのServlet APIの事だったのですね。2chが
Servletで動くようになるのか。かっちょいいなー。
でも本当に考えるべきなのは、Servlet と (CGI経由じゃない)C ではなく、
Servlet と CGI+C なのでは? 比較すべきパラメータは
1.純粋なパフォーマンス(マジで知らないんですが、どっちが速いんでしょう?)
2.ひろゆきさんがコードを書くという前提での両者のパフォーマンス
3.ひろゆきさんの習得速度、というより習得できるかどうか(2chを管理・運用できるレベルまで)
4.ひろゆきさんがコードを書くという前提での工数見積もり
ってくらい(^^;;; まぁ、仕事じゃないんだから3と4は優先度低し(っつ
ーかひろゆきさんの趣味の方が優先度高し)ですけどね。
俺は…正直、どっちがいいか、わかんないす。ひろゆきさんはJavaやり
たそうだけど、過去ログみると悪戦苦闘してるみたいだし…でもやっぱ、
Servletに1票、かな?
0141ひろゆき
NGNGMSX-BASICでやれとかいわれちゃいそうなんで、、、
140の名無しさんがいう、1の純粋なパフォーマンスの差でみたら
どれだけ違うのかしりたいです。
0142名無しさん
NGNG今出てるJAVA PRESS(Vol.9)のサーブレットの記事に
簡単なベンチマークでの速度比較出てるよ。
おおまかな参考にはなるのでは。
0143ひろゆき
NGNGserveletの方が、プロセスが多いときは早いんですよね。
serveletかCか、、ということになりそうですが、
serveletが無難でしょうか、、、
0144名無しさん
NGNGCだと気軽にサーバー変えられないから
0145名無しさん
NGNGこれからどうなっていくんでしょう。。。
http://java.nikkeibp.co.jp/Java/News99/1209Sun.html
0146Linux ユーザ
NGNGhttp://www.changelog.net/tmp.html#j2se-no-blackdown
これも気になる。なにがあったんだ Sun よ。
0147マクネリ君.
NGNGけど、元々契約通りです。はい我々はアコギです。IT業界でアコ
ギじゃない企業って生き残れますか?あなたは我々を責めるほど
そんなに慈善家なんですか?
#Linuxの実装はIBMの奴がいいと思うな。
0148名無しちん
NGNG>Cだと気軽にサーバー変えられないから
でも、自分でサーバたてられるならともかく、レンタルサーバやプロバ
イダが貸してくれてるサーバの場合、Javaが入ってなかったり、入って
てもアヤシゲ〜なバージョンのだったりしますよ。一回、俺プロバイダ
のwebサーバでServlet(っぽい事)やろうとしたら、Javaがまともに動
かなくて泣いた事が…
そもそも、ServletってJDKの1.1からでしたっけ?1.2? 1.0…って事は
なかったんじゃないかな…詳しい人教えてちょ。
あ、上は一般論で、ひろゆきさんは自分でサーバ立ててるんだから(です
よね?)、Javaのバージョンさえ気をつければ、問題ないと思うじょ。
0149名無しちん
NGNGけ(?)みたいだから、JDKは1.1以上…ってことで、いいのでしょうか?
間違ってたらツッコミぷりーず。
0150ひろゆき
NGNG使い勝手や、おもしろさでいくと、javaなんですが、
処理速度の面でいくと、Cが速そうな気がするんですが、、
どうなんでしょうか??
0151名無しちん
NGNGうーん、これはあくまで俺個人の勝手な推測ですが
掲示板のサーバプログラムなんて、一般のなんとかサーバに比べたら別
に大した事してないんだし、いくら処理速度に違いがあるって言っても
そんな大きな差には、ならないんじゃないでしょうか。それより、20万
アクセスもあるCGIのプロセス起動のオーバーヘッドを削減した方が、
遥かに効果はあると思います。
そもそも、今Perlで動かしてそれなりの速度が出ているんだし、Java
に変えてそれ以上に遅くなる事は、ないと思うんですが。
あと、扱いなれてる人ならともかく、Cで文字列処理をゴリゴリやるの
は、下手にセキュリティホールをたくさん抱え込んでしまいそうで、ち
ょっと恐いです。Javaで書いた方が安全じゃないでしょうか。
0152>148
NGNG教えてくださいませませ。
0153名無しちん
NGNGさぁ…具体的には、知らないっす。
それに、Servletを試してみた訳じゃなくて、RMIです。たまたまプ
ロバイダのwebサーバ覗いてみたらJavaがインストールしてあった
ので試してみたんですけど、なんかJavaのバージョンがアヤシい
やつで、ちーとも動きませんでした。
つーか、ohayou.comなんてどう?(笑)
0154>153
NGNG0155名無しちん
NGNG誰もServletを試したなんて、言ってませんよぅ。
クライアントをAppletにして、RMI経由でサーバ側のオブジェクトと
接続しただけ。
あなたの言いたい事は、要はこういう↓ことかな?
http://developer.java.sun.com/developer/technicalArticles/RMI/rmi/
0156ひろゆき
NGNGご協力いただいたみなさん。ありがとうございました。
ということで、早速、serveletの本を買ってきました。
2chサーブレット計画始動ということで、、、
いつになるやら、、、
0157すとーるまん
NGNGオープンソースにしません?
効率的に開発できるかも
0158ひろゆき
NGNG今回のスクリプトは、レンタル掲示板をやるときに、
流用する可能性大なので、商用として、
おいらが使う可能性もあるということをご考慮頂きたいです。
ですから、「金儲けの片棒担いでられるか」という場合は、
気をつけてくださいです。。。
ただ、スクリプト自体は、GNUライセンスみたいな感じで配ろうと思ってます。
0159名無しさん
NGNG0160名無しさん
NGNG0161名無しさん
NGNGChance it! の管理人は月600万の収入だそうです
0162名無しさん
NGNGひろゆきは、(自称)アメリカの大学に留学中だったんじゃないの。
やっぱ、あれはウソ?
0163ひろゆき
NGNG食ってく手段がないので、レンタル掲示板でもやろうかと
おもってますです。。。
2ch自体でお金儲けするきはないですけどね。
0164名無しさん
NGNG0165>160
NGNG君は「ひろゆき」氏が元「あめぞう」氏であることを
きちんと認識して話しているのか?
0166>165
NGNG0167名無しさん
NGNG2ちゃんねるも存続。めでたい。
0168>166
NGNG30代中盤の眼鏡をかけたデブ、という濃密なキャラ設定があり、
それに合わせられた“本人の写真”も流れていたからな。
“彼”の不在を実感できない気持ちは分からぬではないが……。
0169名無しさん
NGNG0170おもしろい
NGNG0171>ひろゆき氏
NGNGめちゃイケで有名になったヨモギダくん知ってます?
0172あげ
NGNGまさか、住所ですか?怪しいとは思ったけど・・・
0173>172
NGNGひろゆき氏は帰国後OFFにも出てるんだし。
個人情報は、かつて敵対していた田中三郎が色々暴いたね。
0174名無しさん
NGNG0175>173
NGNG0176>175
NGNG0177ひろゆき
NGNG地図みれば、職業わかります。。
0178遅いレスですが
NGNGところで、サーブレットのホスティングは、
http://www.servletcentral.com/common/hosting.dchtml
>152
0179ひろゆき
NGNGでも、、高い、、(;;)
0180>179
NGNGhttp://www.iod.co.jp/
0181ひろゆき
NGNG武蔵野CATVのバックボーンはいくつなんだろう、、、
■ このスレッドは過去ログ倉庫に格納されています