第1章 Javaの基礎 1 Sun Microsystems社の開発チームによって 1991年に作成 開発環境で多種多様なハードウェア/ソフト ウェアが使用されていたため、プラット フォームに依存しない言語である必要があっ た 明確で徹底したオブジェクト指向プログラミ ングへのアプローチによりソフトウェアの再 利用と保守がとても簡単になっている 2 ソースコード オブジェクト コード プログラム ソースコード • プログラムのテキスト版 • 人間に読みやすい形式 オブジェクトコード • プログラムの実行可能な形態 • 特定のCPU専用であり異なるプラットフォームで は実行できない 3 コンパイル時にバイトコードを含める JVMはバイトコードを解釈しプラットフォー ム非依存の環境を実現 プログラム コンパイル後の クラスファイル バイトコード Java Virtual Machine CPU 4 Javaによって作成できるプログラムはアプ リケーションとアプレットの2種類 • アプリケーション -- JVMによって直接実行可能 • アプレット -- Webブラウザが必要 アプレットビューを使用しアプレットを実 行することも可能 • Java 2 Platform Standard Edition Development Kit (JDK)に含まれておりテストなどに使用 5 オブジェクト指向プログラミングの基盤を 説明する際の3つの機能 • カプセル化 • 継承 • ポリモーフィズム 6 データとデータを操作するコードを関連付 けるメカニズム カプセル化の利点 • データの形式を簡単に変更できる • 機密情報へのアクセスが楽になる • 複数のスレッドからのデータアクセスの同期化が 簡単になる 7 あるクラスを特化することにより他のクラスを定 義するメカニズム すでに定義されている構造体や動作を元に別のク ラスを定義できる ⇒ ソフトウェアの再利用 Object A D E B F C ・サブクラスDはクラス Aを継承 ・クラスAはクラスDの スーパークラス G 8 「1つのインターフェイス、複数の実装」 と表現されるメカニズム 呼び出しているメソッドが一見同じなのに 処理結果が変わる 携帯電波の範 囲を調べる 地域情報を 調べる 雨の地域を 調べる クラスA クラスB クラスC getArea() getArea() getArea() 9 さまざまな種類のクラスライブラリが定義 パッケージ 説明 java.applet アプレット関連の機能を提供する java.awt グラフィカルユーザーインターフェイスを作成する ためのAbstract Window Toolkit (AWT)を提供する java.awt.event AWTコンポーネントからのイベントを処理する java.awt.image 画像処理を行う java.beans JavaBeansアーキテクチャに基づいたBeans機能を 提供する java.io ファイルやネットワークでの入出力をサポートする java.lang Javaの言語中枢機能を提供する 10 アプリケーションやアプレットを作成し実行 するために必要なものが含まれた開発環境 現在の最新バージョンはJDK 6.0 11 プログラム例 class Example1 { public static void main (String args[]) { System.out.println(“This is the output from Example1”); } } 実行例 >Javac Example1.java This is the output from Example1 12 名前の付いたメモリ位置で値を格納できる Javaの8つの基本データ型 型 説明 char 16ビットUnicodeキャラクタデータ boolean 真偽値 byte 8ビット符号付き整数 short 16ビット符号付き整数 int 32ビット符号付き整数 long 64ビット符号付き整数 float 32ビット符号付き浮動小数点数 double 64ビット符号付き浮動小数点数 13 プログラム例 class Example2 { public static void main (String args[]) { int i = 50; System.out.println(“The value of i is ” + i); } } 実行例 >Javac Example2.java The value of i is 50 14 一連のキャラクタを二重引用符(“)で囲む ことで定義 • 二重引用符の前に\をつけることで文字列の内部 に二重引用符を含むことができる • 文字列を連結させるには+演算子で連結 例 String s = “abcde” + “ef \” ghi \” “ ; 15 式とは演算子とオペランドを組み合わせた もの 演算子 説明 + 加算 - 減算 * 乗算 / 除算 % 剰余 += 加算代入 -= 減算代入 ++ インクリメント 16 型の異なるデータを1つの式で組み合わせ て使うことができる 式の最終結果には最も大きい型が使用され る int i; float f; i= 10 f = 23.25f System.out.println(i * f); 17 代入ステートメントで右辺と左辺の型が異 なる場合、左辺の型に変換される 左辺の型が右辺の型より小さい場合は (type)valueを使用 int b; int i = 258; b = (byte)i; System.out.println(i * f); 18 ソースコード内に書き込むメモ • 単一行コメント 「//」ではじまり行末尾までコメントとして解釈 • 複数行コメント 「/*」ではじまり、「*/」で終わり • ドキュメンテーションコメント 「/**」という3文字ではじまり、「*/」という2文字で 終わり 19 共通の名前を使用してアクセスすることが 可能な、同じ型を持つ一連の変数 • 1次元配列の宣言 type varName[]; • 1次元配列の領域割り当て varName = new type[size]; • 1次元配列の宣言と領域割り当て type varName[] = new type[size]; 20 • 1次元配列の要素取得 varName.length; • 1次元配列の初期化 type varName[] = {e0, … , en}; 例 int ia[] = new int[10] ia[0] ia[1] ia[2] ia[3] ia[4] ia[5] ia[6] ia[7] ia[8] ia[9] 21 配列の配列として実装 個々にインデックスを配置することでアク セス可能 int ib[][] = new int[2][2]; ib[0][0] ib[0][1] ib[1][0] ib[1][1] 22 Java言語のキーワードは変数名またはメ ソッド名として使用できない • Abstract, boolean, etc...... 23
© Copyright 2025 ExpyDoc