- - PR -
James Gosling のSortDemoについて
投票結果総投票数:6 | |||
---|---|---|---|
Windows | ![]() |
2票 | 33.33% |
Linux | ![]() |
1票 | 16.67% |
Mac OS | ![]() |
3票 | 50.00% |
|
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-09-27 11:13
現在Javaを勉強中なのですが、SortDemoについての練習課題に取り組んでいたところ、以下の事がよく分かりません・・・。アドバイスお願いします。
(1)ソートに関するプログラムをコンパイルするだけで、SortAlgorithm.javaとSortItem.javaもコンパイルされてしまう理由。 (2)SortAlgorithmというクラスのある理由 (3)アップレット上で古い線を消すのに使われている手法 (4)赤い線と青い線の意味 (5)いくつものアップレットが同時に進行しているのはJAVAではどのような手法が使われているか (6)交換された二つの要素を緑にするにはどのようにすればよいか。 | ||||
|
投稿日時: 2004-09-27 11:54
unibon です。こんにちわ。
JDK(J2SDK) に付属の demo\applets\SortDemo のフォルダにあるサンプルのことですよね。 たしかに、ソースコードに
と書かれていますね。なんだかちょっと笑ってしまいます。 JDK に付属するサンプルは、古いし、あまりキレイに書かれていないので、初心者の学習用にはそれほどは向いていないと思います。とは言っても、標準で付属するものだし、歴史的な経緯もあるので、やはり見たほうが良いのでしょうけど。 > (1)ソートに関するプログラムをコンパイルするだけで、SortAlgorithm.javaとSortItem.javaもコンパイルされてしまう理由。 「ソートに関するプログラム」とは何を指されているのでしょうか? SortItem.java のことでしょうか?SortItem がその中で SortAlgorithm を使っているから SortAlgorithm もコンパイルされるです。というと簡単な仕組みのように見えますが、実際はちょっと仕組みが複雑でして、要は javac コマンドが make の機能を併せ持っていて、依存関係を追ってくれているからです。 #長くなるので、ひとまずここまで。 | ||||
|
投稿日時: 2004-09-27 12:13
説明不足ですみません・・・。
ソートに関するプログラムとは、今回は3つでQSortAlgorithm.java , BiDirBubbleSortAlgirithm.java , BubbleSortAlgorithm.javaです。 その3つの中でextends SortAlgorithmという記述があるからですか? またSortAlgorithmの中にsetParent(SortItem p)という記述があるからコンパイルされるのですか? | ||||
|
投稿日時: 2004-09-27 13:39
その通りです。 extendsというのはJavaでは継承を表すキーワードですが、継承の仕組みは理解されて いますか?継承するということは、サブクラス(or インタフェース)にとっては 必然的にスーパークラス(or インタフェース)の情報が必要になりますから、 サブクラス(or インタフェース)のコンパイルと同時にスーパークラス (or インタフェース)のコンパイルも行われます。 unibonさんがおっしゃる様にこのようなクラス(or インタフェース)間の依存性の チェックは、コンパイラjavacが自動的に行ってくれます。 | ||||
|
投稿日時: 2004-09-27 14:53
なるほど!
ではprivate SortItem parent;という記述でSortAlgorithmはSortItemuを継承したということですか? [ メッセージ編集済み 編集者: matsumoto 編集日時 2004-09-27 15:09 ] | ||||
|
投稿日時: 2004-09-27 16:32
それは違います。単にメンバとして参照を持っているだけです。 ただ、依存関係はあるので、これを元にコンパイラが参照先のクラスを 連鎖的にコンパイルするのでしょうね。 | ||||
|
投稿日時: 2004-09-27 16:37
単にメンバとして参照を持っているだけ
というのはどうゆうことでしょうか??SortItemにかかれている関数は使えるということですか? | ||||
|
投稿日時: 2004-09-27 22:21
これ以上は、Javaの基礎の基礎になってしまいます。
私が個別にここで説明するよりも、@ITさんの記事で良いのがありますよ。 ・Eclipseではじめるプログラミング(3) http://www.atmarkit.co.jp/fjava/rensai3/eclipsejava03/eclipse03_1.html まずは掲示板より、こういった記事をよく読んで基礎を勉強される方が良いと思いますよ ![]() |