Back To Main


┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ ◆Javaで珈琲ブレイク vol.000◆
┃……………………………………………………………………………………………
┃ [不定期] Melma! ID=m00061296 まぐまぐ ID=0000088576
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

■はじめに
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


皆さんこんにちは。

Mr.Hackです。いよいよ新学期、新年度が始まりますね。新年度は何か新しいことをしていい年度にしたいと思いませんか?そう思ってメールマガジンを購読してくださった方、大変ウェルカムです。このメールマガジンを通して、なにか、ひとつでも、ふたつでも、得るものあれば、いいなと思っています。

このメルマガは、タイトルのように、Javaに対して気持ちを入れ替えてリフレッシュできる内容を扱っていこうと思っています。またJavaを使っていると気持ちが安心する、なんてぐらいまでJavaにはまれれば、という意味も少しこもっています。対象者は、とりあえずJavaを学んだことがある人、です。Javaッテナニ? プログラム言語ハナニモシライゼ、という方はついて行くのにちょっと大変かもしれません。しかしながら、Javaをもっとならいたい、初めてでも、自分でテキストを買って、独学で補習する、という方は、大歓迎です。一緒に基礎も含め、知識をふかめてみましょう。え?自分で独学しないといけないの?そうです。皆さんはすでに独学をしようとしています。このメルマガです。それと同じように、自分がわからないところは、自分で調べたり、聞いたりする、この姿勢がJavaの知識を深める上で、大切な方法だと思います。とりあえず、ほかのメルマガを登録するついでにおまけで登録ッ!!どうせ無料だし・・・、見るだけなら時間かからないや・・・。そう!始めるきっかけはそれでいいと思います。ただ、この創刊号を見たみなさんは、その一歩先、一つでも知識を得て、それを自分のプログラムに生かして見てください。独学って美しい言葉ですよ。

扱う内容なんですが、お約束のハローワールドプログラムから、テキストエディタ(CPad)でのコンパイル方法、JBuilder6 personalの使い方、Javaスタイル、JavaAPIの使い方、UnitTestingの方法、リンクリスト等のデータ構造、そして、時間と余力があれば、JSP、Ant等も、一つのプロジェクトプログラム(コマンド入力でのアドレス帳プログラム)を通して、学んでいこうと思っています。ここで使うToolは全てフリーのものを使います。Borland(http://www.borland.co.jp/)のJBuilder、稀杜さん(http://hp.vector.co.jp/authors/VA017148/)のCPadはは非常にJavaを学ぶ上で優れたソフトウェアです。JBuilderはあんな高機能なソフトをフリーで提供するなんて太っ腹!!なんて思いましたが、たぶんBorlandはBorlandでポテンシャルユーザーの獲得をねらっているんでしょうね。大学でずーーと使っていれば、そりゃもう、ほかのツールに移れないですよね。機能盛りだくさんだし。移行したら新しい機能覚えるのめんどくさいし。そんだったら、便利のために、Enterprise買っちゃおっかなー、これが作戦かもしれません。また、稀杜さんのCpadはひじょーに優れたツールです。これは、ホントは、超ど級初心者の方に使ってもらいたいエディターなのですが、さらっとおさらいした後で、のちのちは、JBuilderに移っていこうと思います。自分が超ど級初心者だと思われる方は、次の号も購読することをおすすめします。そのあとも、目を通すだけでも、後々Javaでプログラムをするに当たっていいヒントになるかもしれません。ちょっとかじった初級者の方も、Unit Test???とおもっていても問題ありません。初心者の方のために、随所で『おしえてMr.Hack』と題うって、専門用語をなるべく使わず説明していこうと思います。中級者の方は、お互い知識を深められるといいですね(Mr.Hackが中級者といえるといいのですが・・・)。いずれにせよ、このメルマガが終わる頃には、みなさんが、アメリカのコンピュータサイエンス学科のジュニアからシニア(3年から4年)の知識が身に付いているといいなと思います。


■Readability (読みやすさ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Mr.Hackが通っているコンピューターサイエンスのクラスでは、いつも、Sofwareを作るにあたって、Readability(読みやすさ)ということを強調します。Software開発は、programをかいた、softwareが完成した、はいおわり、ではありません。最近では、softwareの初期バージョンは3-4週間で完成させるというのも珍しくありません。そして、Userの声を反映しながら、ちょくちょくバージョンアップをしていきます。そんな中で、簡単なコードならまだいいですが、一ヶ月も前にかいた多大なコードを読み返すとき、何を書いたかわからなくなるときが多々あります。皆さんの場合、一ヶ月前ならまだしも、一年前にかいたプログラムをさっと一目見ただけで何をしているmethod(メソッド)なのか、class(クラス)なのか思い出すことができるでしょうか?Javaは比較的ほかの言語(たとえば、C、C++)に比べて、readabilityを重視する慣習にあります。このメルマガでは、このことを常に起きながら進めていきます。

リーダビリティイ???え?と思った方は、たとえば、次のプログラムの一部を見てください。何をするメソッド(後述、教えてMr.Hack参照)なのかすぐにわかりますでしょうか?


double convert(double f) {return (f - 32) * 5 / 9;}


どうやら、何かをconvert(変換)するメソッドの用ですね。fとは何を意味するのでしょうか?convertは何から何へ変換するのでしょうか?何にもこれからじゃ手がかりがないですね。もし、あなたがこれを書いたのであれば、一年ぐらいたっても、この一行メソッドを思い出すことができるでしょう。しかし、今回のように自分がかいたプログラムではないものを見たときどう見えますか?んーーーー一1行でなんてエレガントなんだ、とおもいますか?それとも、なんて見ずらいメソッドなんだろう、とおもいますか?
それでは、次のコードを見てみましょう。前述と同じ目的を達成するメソッドです。


/**
* 華氏(Fahrenheit)から摂氏(Celsius)への変換
*
*@param fahrenheit 華氏
*@return Celsius 摂氏
*/
double convertToCelsius(double fahrenheit) {
double Celsius = (fahrenheit - 32) * 5 / 9;
return Celsius;
}


どうですか?これなら、一年たっても5年たってもすぐに思い出せそうですか?こっちは10行も使っていますね。しかしながら、このメソッドを理解するに足りる十分な情報が示されていますね。

このように、プログラミングスタイルを変えることによって、後々ソフトウェア開発に多大な効果をもたらします。Readablityを向上させることによって、プログラマーが理解しやすくなり、開発が迅速になり、バグはかなり減らすことができます。

このようなことも随所にまぜならがら、学んでいければいいなと思っています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
教えてMr.Hack
メソッド(Method) : C、C++等では、『ファンクション(Function)』と呼ばれます。例えば、家畜のニワトリ。餌を与えると、ニワトリは卵を産む。つまり、餌ー>ニワトリー>卵というように、餌というインプット(parameter)によって、ニワトリ(method)は卵というアウトプット(return value)を得ます。プログラマーは卵を得るためにニワトリを調整します。しかし一端メソッドを調整(作る)と、餌を与えたことによって自動的にニワトリは卵をはじき出します。上記の例で言えば、華氏(F:Fahrenheit)をあたえれば、methodは摂氏(C:Celsius)をreturn valueとして返します。methodを使うプログラマーはmethodの中身は何でもいいんです。華氏をparameterとしていれて、摂氏(return value)が計算されて、でてくれば。このインプットしたときに、アウトプットだけがちゃんとしていればいい、ニワトリが痩せていようと、太っていようと卵さえ出てくればいいという考え方は、後に出てくる、Encapsulationという概念につながってきます。また、Java APIを使うというのも、このことに密接につながってきます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ところで、私自身まだまだ、Javaについては勉強の身であります。そのため、これ以外にも目的を実現するために方法がある、とか、これ間違っているんじゃないの?とかのフィードバックは大変ありがたいです。あなた、教える人、わたし、教わる人ではなくて、私もこのメルマガの一人として、Javaをとおして、ソフトウェアプログラミングの知識をお互い深められたらいいなと思います。

このメルマガは、一週間に一度発行していく予定です。皆さんも仕事があり、学校がありで忙しい日々を送っていると思いますので、日本の金曜の夜から土曜の朝方にかけて発行できるようにしていきたいと思います。

さて、本題に入っていこうと思いますが、、皆さんは、Javaを独学でも、学校でも、会社でも、とりあえず習った、というのを前提に話を進めていきます。復習もかねて、このメルマガに新出なものは、随時ふれていこうと思いますが、それでも知らないものや、カバー仕切れないところは、本屋で立ち読みするなりして、カバーしていってください。自分で、自分にあった参考書を見つけるのは、とても重要なことだと思います。もちろん、メルマガ等のフリーデバイスを使うことも重要ですが、ある意味、体系だった本が非常に役に立つこともあります。

■Javaの環境設定
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

これから、一ヶ月は、Java Programming環境の設定と、Javaの復習と、ウォーミングアップもかねて、簡単なプログラミングから、入っていこうと思います。JBuilderを使い始めるのは、5月以降になると思います。来週までに皆さんにしておいてもらいたいのは、以下のファイルのダウンロードです。

1.JavaTM 2 SDK, Standard Edition Version 1.3.1_02 (必須)約44.5M
http://java.sun.com/j2se/1.3/ja/download-windows.html

そのページをスクロールしていって、バナーの後の、”Java 2 SDK, v 1.3.1_02 ソフトウェア Windows 95 / 98 / 2000 / NT 4.0 / Me / XP (Intel プラットフォーム) 版のダウンロード ”の”continue”をクリックしてください。そして、英語の"Binary Code License Agreement"をずーと下までスクロールして、”accept”ボタンを押します。そしてリストのうちの好きなところから、FTP downloadボタンを押すとダウンロードが始まります。何個かクリックして保存場所をかえて、一番早くダウンロードしているところを選ぶといいかもしれません。なんと言っても、サイズが、約44.5Mほどあるので、ダイアルアップで接続している人は、心してかかってください。以前は分割ダウンロードというのがあったのですが、今はありません。


2.JavaTM 2 SDK, Standard Edition ドキュメント (オプショナル)約23.5M
http://java.sun.com/j2se/1.3/ja/docs.html

そのページをスクロールしていって、”JavaTM 2 SDK 1.3.0 日本語版ドキュメントのダウンロード - HTML 形式”でwindows環境の人は、zip形式を選択し、"continue" ボタンを押して、"Terms and conditions of the license & export for Java(TM) 2 SDK Japanese Documentation 1.3.0-update1"のページの規約に同意(acceptをクリック)してください。そして、お好きなところから、FTP downloadをクリックして、ダウンロードしてください。 これも、かなり大きなファイルです。これもこのメルマガに必要なものですが、下記の

http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html

でも見ることができます。しかしながら、何とかして、ダウンロードしたいですね。

この1.2.はパソコン書籍においてあるCDの付録に付いているのもあるかもしれません。ダイアルアップでインターネットに接続している方で、テレホーダイに入っていない人は、本屋をのぞいて付録で収録している本を買う方が安上がりかもしれません。

ところで、え????なんで、JavaTM 2 SDK, Standard Edition Version 1.4を使わないの?あたらし物好きの私としては納得がいかないわ!という方は1.4を使ってもかまいません。ただ、1.4の日本語のAPI(2.のドキュメント)が見あたらなかったので、学習の意味も込めて、1.3にしました。英語に自信がある方、新しい物じゃないと生理的に受け付けない方は、1.4にチャレンジしてみてください。英語のいい勉強になると思いますよ。1.4でもJBuilder、CPadともに作動すると思います。

3.CPad for Java2 SDK (必須)
http://www.vector.co.jp/soft/win95/prog/se153698.html

これは、稀杜さんが作ったひじょーに便利なJavaを学習する上で便利なソフトです。5月以降のJBuilderを使い始めるまで、使用させて頂く予定です。むしろこれだけでもいける、ぐらいなソフトです。こんなすばらしいソフトをフリーで提供してくれる稀杜さんに感謝です。ソフトの使い方もhtmlで丁寧に説明してあり、好感がもてます。

さて、来週のJavaで珈琲ブレイクは、Javaプログラミング環境のセットアップと、簡単なプログラミングでウォーミングアップをしていきましょう。一度Javaをかじった人は、来週はお休みでも大丈夫かもしれません。それでは、今週も良い日を!

Have a good day!

Mr.Hack


■ちょっと珈琲ブレイク
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

日本でもやっとコンピュータサイエンス学科(CS)が開設されてきましたね。日本はハード的なエンジニアリングは盛んですが、ソフトウェアエンジニアリングはまだまだ、改善発達の余地はあるような気がします。コンピュータサイエンス学科が法学部、経済学部、文学部等のように、どこの大学でもあるようになれば、日本のCSも世界に通じる技術が養えるのかな、なんておもいます。そんな日ももう間近かもしれません。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆Javaで珈琲ブレイク◆
────────────────────────────────────
【発行者】 Mr.Hack - javacafebreak@hotmail.com
【サイト】 http://mrhack.hoops.ne.jp/
【発行数】 1
【登録解除】http://mrhack.hoops.ne.jp/
※登録・解除は上記のサイトからいつでもできます。
────────────────────────────────────
(c)2002 MR.HACK ALL RIGHTS RESERVED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

 


© 2002 MR.HACK ALL RIGHTS RESERVED