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