┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃.&&&& **** %%%%.  JavaScript&Javaで目指そう!基本情報技術者試験  ┃ ┃&&&&&&******%%%%%%  執筆&編集 斎藤末広 suehiro@he.mirai.ne.jp  ┃ ┃'&┃&''*┃*''%┃%'  発行    江口昌宏 ***  ┃ ┗━┻━━┻━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 広告募集:http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  第3号 2001/05/xx  JavaScriptとJavaを比較 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  プログラムを作成する上での注意事項:  Windows とIE を前提としています。  拡張子を表示するに設定してください。 ------------------------------------------------------------------------ ニュース  JDK の 1.3.1 が発表になりました。   http://java.sun.com/j2se/1.3/ja/  JDK の 1.4 のベータ版が公開されました。   http://java.sun.com/j2se/1.4/ja/index.html  6月4日から,アメリカで,JavaOne が開催されます。サンマイクロシステム 社が主催する Java の最大の行事です。ぞくぞく情報が発表されますよ。  来年の JavaOne は,いっしょに参加しましょう。  http://servlet.java.sun.com/javaone/index.jsp ------------------------------------------------------------------------ JavaScriptのプログラムの作成から実行まで 作成 1 HTMLプログラムを用意します。または,新規テキスト作成で,hello.htmと  ファイル名を変更します。 2 メモ帳などのエディターでそのHTMLプログラムを開きます。 3 で、JavaScriptのプログラムを挟みます。 4 保存します。これをソースプログラムと呼びます。 例:j01-01 Hello JavaScript 実行 1 Webブラウザ(インターネットエクスプロラーやネットスケープ)で、ソース   を開きます。 2 実行されます。  JavaScriptのプログラムは、HTML の中に直接書きこみをしました。ブラウザで すぐに実行ができます。 ------------------------------------------------------------------------ Java のプログラムの作成から実行まで 作成 xHelloプログラムを作成するとき 1 新規テキスト作成をして、名前を xHello.java とします。 2 Javaのプログラムを入力します。 3 保存します。これをソースプログラムと呼びます。 例:j02-01 public class xHello { public static void main(String [] xargs){ System.out.println("Hello"); } } コンパイル 1 DOSプロンプト画面のコマンドラインで、   javac xHello.java  を実行します。   javac をコンパイラと呼びます。 2 エラーがなければ、xHello.class が生成されます。これをバイトコード  ファイルと呼びます。 実行 1 DOSプロンプト画面のコマンドラインで、   java xHello  を実行します。このjava は、JVMを起動します。 2 実行されます。  Javaのプログラム作成では、JavaScriptと違って、コンパイルという作業が 必要となります。 ------------------------------------------------------------------------ インタープリタとコンパイラ  JavaScriptとJavaのプログラム作成から実行までの整理します。 JavaScriptの場合  ソース → (ブラウザ) → 動作 Javaの場合  ソース → (コンパイラ) → バイトコード → (JVM) → 動作  ブラウザは、JavaScriptのステップごと解釈して実行をします。この 作業するものをインタプリタといいます。Javaの場合も、JVM がインタ プリタとなります。  JavaScriptは、インタープリタのみ、Javaの場合は、コンパイルとインター プリタともに必要になります。 ------------------------------------------------------------------------ JavaScriptとJavaが使用される場面  JavaScriptは、ホームページの拡張が主な用途です。  Java は、ホームページに組み込みして使用することもできます。この場合は、 ブラウザを一時的に乗っ取る形となります。また、ワープロのようなソフト、携帯 電話でのゲームソフト、サーバで動作するソフトも開発できます。  JavaScriptは、限定したところでしか使用できませんが、Java は、広範囲で 利用できます。 ------------------------------------------------------------------------ JavaScriptとJavaのソース比較  JavaScriptとJavaのソースを比較しますね。 例:j01-01の一部 例:j02-01 public class xHello { public static void main(String [] xargs){ System.out.println("Hello"); } }  ともに 文字列を表示するだけのプログラムです。上のJavaScriptのプログラ ムは、documentというオブジェクト(ロボットみたいなもの)に writeと命令 を与えて、実行させています。  下のJavaのプログラムは、System.outというオブジェクトに、printlnという 命令を与えて、実行させています。  write と println と命令の言葉は違いますが、おなじようにやっています。  JavaSriptとJavaとでは、利用できるオブジェクトが違います。また、これから じょじょにやりますが、Mathオブジェクト(数学ロボット)のように、ほぼ同様 のオブジェもあります。 ------------------------------------------------------------------------ コラム:オブジェクト(初心者を卒業した人向け)  オブジェクト指向の用語の筆頭は,やはり「オブジェクト」でしょう。  上で説明した j01-01 では、documet オブジェクトが登場しました。  第1号で利用した JavaScript のサンプル j01-02 の日数を数えるプログラム を利用して説明します。 例:j01-02の一部  このサンプルでは,4つのオブジェクトが登場しています。xTdoay,xTextDate, document, Math です。  まず,xToday, xTestDate オブジェクトから説明します。xTestDate オブジェ クトとxTodyaオブジェクトは、getTimeという命令を受けて仕事をしています。 var xToday = new Date(); var xTestDate = new Date(2001,10-1,21);  この2行を説明します。  xToday オブジェクトは、Dateクラスから新しく作成し,値はコンピュー タが自動的にたぶんnewした時点の時刻が入ります。  xTestDate オブジェクトも、Dateクラスから新しく作成して、値は、 2001年10月21日だよという意味です。  xTodayオブジェクトもxTestDateオブジェクトも、Dateクラスの一員です。  xTestDate.getTime()では、テストの日付を手に入れます。  xToday.getTime()  では、今日の日付を手に入れます。 xNokori = (xTestDate.getTime() - xToday.getTime()) / (60*60*24*1000);  は,xNokori に、(テストの日付け)−(今日の日付)を代入するという意味 ですね。  次,document オブジェクトと,Math オブジェクトを見てみましょう。  document, Math には,xTestDate のように,new がありません。いつ作られ たのでしょうか? このように,プログラムが動作する前から,存在している オブジェクトもあります。  document オブジェクトのそのホームページのページごとに住む神様のような 存在です。Math オブジェクトは,Math クラスに住む神様のような存在です。  創刊号のコラムでは、クラスとは、掛け声をかけて、笛を吹いて集まってくる 集団のこと説明しました。  xToday オブジェクトと xTestDate オブジェクトは、Date クラスの一員で、 この場合のオブジェクトを、インスタンス(実現値)と呼びます。  このようなインスタンスとして明確でない,クラスと一体化しているのではと いう,オブジェクトもあります。例えば2年1組というクラスがあって、そこに は学生が一人もいなく、2年1組という名前の神様がいる感じです。学生がたく さんいるクラスは、例えば2年2組には学生が20人いたとすると,そこには、 2年2組という名前の神様がいて、さらに,その神様に似せて、20回、new し て,学生が生まれたいう感じです。  クラスには神様が住んでいます。クラスの神様に似せて,インスタンスが作ら れます。インスタンスを作らない神様もいます。その場合は,クラス=神様です ね。Math オブジェクトがその典型です。  document オブジェクトは,まだ,不思議な性格があるようです。  以後,クラスから,生まれた,オブジェクトは,インスタンスと呼び,神様み たいなオブジェクトは,オブジェクトと呼びます。今回の例では,xTestDate, xTodayは,インスタンスで,documet,Math はオブジェクト。さらに,Math と DATE はクラスでした。 ------------------------------------------------------------------------ 次号の予定  FOR 文  感想は,斎藤まで,suehiro@he.mirai.ne.jp  広告等のお問い合わせ:*** ------------------------------------------------------------------------ 著作権について  このメールマガジンで公開しているプログラムソースは,著作権を当方スタッ フが所有しますが,商用を含めて,再利用,改変,発表を制限しません。  本文に関しては,斎藤末広が著作権を所有します。再利用に関しては,承諾を 必要とします。 広告募集 http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html