• ベストアンサー

SortDemoについて

現在Javaを勉強中なのですが、James GoslingJames Gosling のSortDemoについての練習課題に取り組んでいたところ、以下の事がよく分かりません・・・。アドバイスお願いします。 (1)ソートに関するプログラムをコンパイルするだけで、SortAlgorithm.javaとSortItem.javaもコンパイルされてしまう理由。 (2)SortAlgorithmというクラスのある理由 (3)アップレット上で古い線を消すのに使われている手法 (4)赤い線と青い線の意味 (5)いくつものアップレットが同時に進行しているのはJAVAではどのような手法が使われているか (6)交換された二つの要素を緑にするにはどのようにすればよいか。

  • Java
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

ご自分で解析しなけりゃ、意味がなさそうだけど。 とりあえず、私の独学JAVAの復習的に回答を付けてみます。 (1)ソートに関するプログラムをコンパイルするだけで、SortAlgorithm.javaとSortItem.javaもコンパイルされてしまう理由。 SortItem.javaがメインクラスです。ここから、demo\applets\SortDemo のフォルダ内のクラスが全て呼び出されます。 ので、全てコンパイルしないと動きませんよ。 個別のアルゴリズムクラスは、SortAlgorithmクラスの拡張で、SortAlgorithmクラスは、呼び出し親をSortItemクラスとしているので、どのファイルからコンパイル指定しても、順番に呼び出されてコンパイルされますけどね。 (2)SortAlgorithmというクラスのある理由 オーバーライドって知ってますか? ここでは、例外関数や変数などの、型や、引数の型指定を一律にするために使われているようです。 (3)アップレット上で古い線を消すのに使われている手法 SortItem.javaの162:// Erase old lines の下の行参照 getBackground()で上書きしてるだけです。 (4)赤い線と青い線の意味 アルゴリズムによって、動きが違うことを見るため (5)いくつものアップレットが同時に進行しているのはJAVAではどのような手法が使われているか example1.htmlは、3つのアプレットタグで別々に動いているだけです。 しいていうなら、OSとかブラウザが、同時にいくつもの動画を再生しているのと同じ。 (6)交換された二つの要素を緑にするにはどのようにすればよいか。 どういう意味?

その他の回答 (1)

  • kacchann
  • ベストアンサー率58% (347/594)
回答No.1

「James Gosling のSortDemoの練習課題」とは何のことでしょうか?? 唐突に「一般的でない単語」を出されても 回答者たちが困りますヨ。 James GoslingがどこかのサイトでJava学習者向けにチュートリアルを書いていて、 その中で「練習課題」として掲載されている、 ということでしょうか? 猛烈に捕捉要求。

matsumai
質問者

補足

すみません。 JDK(J2SDK) に付属の demo\applets\SortDemo のフォルダにあるサンプルのことです。

関連するQ&A

  • java ソート

    java ソート ソートプログラムを作ってみましょう ? double型の配列とメソッドを持つクラスを定義 ? コンストラクタで配列を初期化(0.0で初期化) ?配列を昇順,降順に並び替えるメソッドを持つこと ? 2種類のメソッドを持っても良い ? 引数の値で変えても良い ? ソート済み配列をチェックするメソッドを持つこと ? 1000000要素程度のソーティングで時間計測 課題です 全く手が出せず困ってます・・・。 ヒント、手順、解答 なんでも良いので、救いの手をお願いします!!

  • modified bubble sort

     ソーティングについて教えてください.  ソーティングの手法に,バブルソートというものがあります(隣接するふたつを入れ替える).このソーティングでは,最大交換回数は要素数が n のとき, n(n-1)/2 となります.  隣接する要素の交換に加え,先頭と最後の要素の入れ替えも可能だとすると(イメージとしては,サイクリックなバブルソートです),最大交換回数は n^2/4 となるそうです.  この n^2/4 になる,という理由が分かりません(普通のバブルソートが n(n-1)/2 になるのは理解できます).どなたかご教授頂ければと思います.

  • java コンパイルエラー

    java コンパイルエラー java 初心者です。 簡単なプログラムを作りながら練習していたのですが、Exceptionクラスを継承して新しい例外を作る以下のプログラムで、コンパイルエラーとなり、解決できません。 class NewException extends Exception{ public NewException(){ super("エラー"); } } これを javac でコンパイルすると、 NewException.java:3: シンボルを見つけられません。 シンボル: コンストラクタ Exception(java.lang.String) 場所  : Exception の クラス super("エラー"); ^ エラー1個 と言われます。 これを読むと「Exception には String を引数にとるコンストラクタはないよ」と言われているように思えるのですが、そんなはずないのでは。。 もし原因がお分かりの方がいらしたら、ご教示いただけるとありがたいです。

    • ベストアンサー
    • Java
  • Javaのメソッドやクラスを分かりやすく解説した本

    アルバイト先で新人社員のJAVA個別レッスンを頼まれました。 理解している、実行できる ・大体の文法 ・詳細設計書(Class名とそれに必要な要素)があればクラスは書ける。(形式に添ってクラスは書ける) ・オブジェクト指向は大体理解できている 出来ないこと 上のできる内容でClassは書けるとありましたが、 ・複数のClassを作るときに、それらに必要な要素を考えた事がありません。 ・複数のclassを作るときに、必要な全要素を出してあげても、どの要素がどのClassに必要か分からない。 ・Classは書けてもその中のメソッドを考えることができない。 ・引数がよく分かっていない。 この出来ないことを出来るようにするためには、 最初に、必要な要素を出してClassを作る練習 次に、Classに必要な要素を自分で考える練習 次に、メソッドの処理を日本語で出すのでJavaに置換える練習 次に、メソッドを最初から自分で書く練習 次に、引数について理解する・・・練習 が必要だと思います。 この部分だけを分かりやすく解説している本がないか探しています。 できれば本が良いのですが、WEBサイトでもかまいません。 どなたか同じように詰まった方がいらっしゃれば教えて下さい。 どうぞよろしくお願いします。

    • ベストアンサー
    • Java
  • コレクションクラスについて

    ●下記のコードについて質問があります import java.util.*; public class Test { public static void main(String args[]) { ArrayList<ObjectOne> list = new ArrayList<ObjectOne>(); list.add(new ObjectOne()); list.add(new ObjectOne()); list.add(new ObjectOne()); Collections.sort(list); } } class ObjectOne { private int x = 0; private int y = 0; } このソースをコンパイルすると、 シンボル: メソッド sort(java.util.ArrayList<ObjectOne>) 場所 : java.util.Collections の クラス Collections.sort(list); と、エラーが表示されてしまいます。 java.util.*をインポートしているので、上記のようなエラーはでないと 思うのですが、うまくいかないです。おそらく、ObjectOneクラスで 何か処理漏れが起きているのかもしれませんが、エラーとなる原因を 特定することができません。 エラーとなる原因と解消する手立てを教えていただければと思っております。 宜しくお願い致します。 「追記」 ArrayList<ObjectOne> list = new ArrayList<ObjectOne>(); の<ObjectOne>を消せばエラーはなくなりますが、 <ObjectOne>を消さない方針で考えがあればと思っております。

  • エラーが・・・

    javaの初心者ですので サンプルを参考にしまして練習しているんですが どうしても旨くいかないのでご質問させて頂きます。 http://msugai.fc2web.com/java/JDBC/mmMySQL.html の、JdbcSampleを試しているんですが、コンパイルは成功するんですが、クラスを実行すると、 「exception com.mysql.jdbc.driver」というエラーが出てしまいます。 どのように対処したらいいか ご教授して頂けたら幸いです。

    • ベストアンサー
    • Java
  • Eclipseでクラスファイルが生成されない

    Eclipse(Helios)、java(JDK1.6)の環境で作業をしています。 指定した出力フォルダにクラスファイルが生成されません。 先日までは生成されていました。 コンパイルエラーはありません。 Javaのビルドパス ⇒ ソース ⇒ デフォルト出力フォルダの指定です ソースフォルダごとの出力フォルダの指定を可能にするはオフにしてあります。 設定は少しくらい変えたかも知れませんが、重要なところは変えていないと思います。 # あやふやですみません。 考えられる理由を教えてください。

    • ベストアンサー
    • Java
  • クラスTest4を検出およびロードできませんでした

    import java.util.Arrays; public class Test4{ public static void main(String[] args){ int [] array = {298,827,8348,29,892,327,8,9,2,809,32}; System.out.println("配列の要素を表示します。"+ Arrays.toString(array)); System.out.println("Arraysクラスを利用しないと、" + array + "となってしまう"); } } kouzou@GD348ZZD9:/WORK$ java Test4 エラー: メイン・クラスTest4を検出およびロードできませんでした 原因: java.lang.ClassNotFoundException: Test4 コンパイルはできたのですが、実行でエラーが出ました。 何故でしょうか? 教えてください。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • Java
  • コンパイルができません…

    プログラムは以下のようになってます。 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TEST extends InternalFrame implements ActionListener{    ---- 中略 ---- JPanel p = new JPanel(); p.setLayout(new GridLayout(x,y));    ---- 後略 ---- } コンパイルすると、次のようなエラーが出力されます。 シンボルを解決できません。 クラス GridLayout p.setLayout(new GridLayout(x,y));            ^ コンパイルができない理由が分かる方居られましたら、 ご教授願いたく存じます。 できれば、早急にお願いいたします。

    • ベストアンサー
    • Java
  • CLASSPATHに二つのディレクトリ設定するとエラーが出る?

    # 2342062 ではお世話になりました。もう少し質問を明確にします。よろしくお願いします!! CLASSPATHを二つのディレクトリを設定するとエラーが出てしまいます。 理由が分からないので、お願いします! 【状況】 同じディレクトリに 次の2つのファイルがあります。 --- Main.java --- public class Main { public static void main(String[] args) { Sub x = new Sub(); x.test(); } } --- Sub.java --- public class Sub { public void test() { System.out.println("Sub !"); } } 【再現手順】 (1) デフォルトの CLASSPATH は空です。この状態でコンパイルしても問題ありません。 $ echo $CLASSPATH $ javac Main.java $ java Main Sub ! (2) CLASSPATH に . を設定します。この状態でコンパイルしてもやはり問題ありません。 (3) ところが、CLASSPATH にカレントディレクトリ「 . 」ともう一つのディレクトリ(何もファイルがありません)を設定してコンパイルすると、次のようにエラーが出てしまいます。 $ export CLASSPATH=.:tmp $ javac Main.java Main.java:3: シンボルを見つけられません。 シンボル: クラス Sub 場所 : Main の クラス Sub x = new Sub(); ^ ---------------- とりあえず、カレントディレクトリはCLASSPATHに指定してあるので、Sub.classは見つかるはずだと思うのですが、なぜエラーが出るのでしょうか? よろしくお願いします!!

専門家に質問してみよう