第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 2026 ExpyDoc