[[Java[TM]]]
INDEX
Java Section.2 How to Get JDK?
JavaのSDK(Software Development Kit 開発ツールキット)は、基本的にフリー(無償)である。最新版や、ドキュメントは、雑誌等の付録CDや、Web上からダウンロード出来るので、なるべく、最新版になるように揃えて置くのが良いだろう。
一応、Web上では、2002年5月8日現在,
Sun Microsystems
+-J2SE
+-J2ME
等のサイトで配布されているので、ダウンロード出来る。また、J-PHONE用アプリ等の作成には、必須とは言わないが、
J-PHONE
サイトから、J-PHONE用ライブラリをダウンロードしておこう。(エミュレータをダウンロードすれば、一緒に入手出来る)…こちらは、ユーザ登録が必要。
オブジェクト指向について語ったところで、他にも幾つか知っておく事が有りそうなので、ここで、まとめて語ってしまおう。というか、今後も基本的な事項で、記述しなければならない事項が出来たらここに追加していく。
  • クラスとインスタンス


  • 継承,多重継承(なぜ、多重継承は危険か?)


  • リソース





  • では、何故、Winodwsでオブジェクト指向か?
    オブジェクト指向の言語として、現在ではC++,Java,オブジェクティブパスカル,Ruby等の言語が認識されているが、この様な言語を使わなければ、Windowsアプリの生成は不可能だと思っている方は居ないだろうか?この考えは半分間違いである。事実、C++のコンパイラを使用しても、Windowsのフレームを1枚表示させる所までは、C言語だけで書けてしまうし、C++特有の記述は全く必要無いのだ。では、何故、Windowsのアプリを記述する言語として、オブジェクト指向の言語が必要なのだろうか?これにも、2つの理由が存在すると考えられる。1つは、WindowsのAPI(Application Programming Interface)へのアクセスが複雑過ぎる(即ち、Windowsシステム自体が巨大で複雑になり過ぎた)為、ユーザがプログラムするインタフェースとしては、オブジェクト指向を適用して、幾つかの単純な部品(クラス)単位で提供した方が遙かに扱い易いと言うわけだ。ここで言うクラスは、有名所を挙げれば、MFC,OWL,VCL等になる訳だが、これらは皆、WindowsAPIにアクセスする為のクラスライブラリである。即ち、複雑で難解なWindowsAPIへのアクセスを、これらのクラスライブラリが、代わりにやってくれているという訳である。これについては、素人が変な値をAPIにセットして、Windowsのシステム自体に悪影響を及ぼす様なプログラミングを避けるという役割が有るのも忘れてはならない。もう1つの理由は、Windowsのフレームワークが、部品を使って組み立てるという方法の方が、遙かに分かりやすい為である。例えば、1枚のフレームを開いて、ボタンを配置したければ、ボタンのクラスを生成して、位置を指定すれば生成されてしまうのだ。

  • BC++では?
    さて、実を言うと、BC++(無償配布のCommand Line Compiler)には、このWindowsAPIをコントロールする為のクラスが定義されていないのだ。OWL辺りならば、どこかのCD−ROMから、かっぱらってくれば何とかなるのだろうが、それでは、BC++を選択した意味が無いのである。では、どうするかというと、直接APIにアクセスするのである。これは、少々危険を伴うが、小規模なソフトウエアであれば、何とかコントロール出来ると思う。また、可能で有れば、クラス化を行って行けば、処理系に依存しないクラスライブラリを構築する事も出来るであろう。


余談である。
Windowsに学んだもの
最近は、当たり前になってしまった為か、Windowsのありがたみというのが忘れられがちで、技術者はLinuxだよ等という声も多いが、ここいらで、一度見直しておくのも良いだろう…と思って、ここを書いている。自分がWindowsを最初に使った時、めちゃくちゃびっくりした事が有った。同じプログラムが、IBM-PC上でも、PC-98シリーズ上でも動作しているのだ。今で言えば当たり前だが、当時は考えも及ばなかった事だったのだ。確かに、CPUは同系列のものを使っているから、マシン語レベルでは同じ訳で、MS−DOSも同様に動作するし、文字表示だけのプログラムなら何とか動作していたのだが、例えば違うハードウエアにアクセスを要するグラフィック画面や周辺ハードウエア制御については、PC-98シリーズ用に造ったソフトは、IBM-PCでは動作しないというのが普通だったからである。自分は、これを、Windowsが各ハードウエア毎にドライバを用意し、これらのインタフェイスを統一した為に出来た芸当だと理解した。グラフィック画面の例を挙げれば、アプリケーションが直接VRAMを描くのでは無く、Windowsに対して、この図形を描いて下さいと伝えれば、その要求を、Windowsが共通のインタフェイスを持つVRAMドライバに伝え、ドライバが、実際のハードウエアに対してアクセスするのである。こう見ると、Windowsというもの。これも、一つの大きなオブジェクトの固まりと考える事が出来る。即ち、このインタフェイスさえ統一されていれば、ハードウエアの事は知らなくても良い訳である。逆に考えれば、ハードウエアがバージョンUPされても、このインタフェイスさえ一定であれば、Windowsや、そのアプリケーションは動作する訳である。この辺りも、Windowsがオブジェクト指向の言語と相性の良い、一つの要因かも知れない。
2002/03/29
HomeSweetHome2
Ozzy's Software