Java開発環境の構築
Javaプログラミングを始めるには、まず開発環境を整える必要があります。以下の手順で環境設定を行いましょう:
- JDK(Java Development Kit)のインストール
- 環境変数PATHの設定
- 環境変数CLASSPATHの設定
環境変数PATHは、Javaコマンドが存在するディレクトリをシステムに伝える役割を果たします。CLASSPATHは、Javaコンパイラがクラスファイルを検索するパスを指定します。
最初のJavaプログラム
Javaプログラミングの第一歩として、簡単なHello Worldプログラムを作成してみましょう。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("こんにちは、Javaの世界へ!");
}
}
このプログラムをコンパイルして実行するには、コマンドラインで以下のコマンドを使用します:
javac HelloWorld.java
java HelloWorld
Javaの識別子とキーワード
識別子とは
Javaプログラム内でプログラマーが命名権を持つすべての単語が識別子です。識別子は以下の要素を表現できます:
- クラス名
- メソッド名
- 定数名
- 変数名
識別子の命名規則
- 数字で始めることはできません
- 大文字と小文字は区別されます
- キーワードを識別子として使用できません
- 長さに制限はありませんが、適切な長さに保つことが推奨されます
識別子の命名規約
- クラス名:最初の文字を大文字にし、単語の区切りでも大文字(キャメルケース)
- 変数名・メソッド名:最初の文字を小文字にし、単語の区切りで大文字
- 定数名:すべて大文字で単語の区切りはアンダースコア
Javaのキーワード
キーワードはJava言語で予約された単語で、すべて小文字で記述されます。代表的なキーワードには以下のようなものがあります:
public, class, static, void, if, for, while, do, default, byte, short, int, long, float, double, boolean, char, private, protected, switch, true, false, try, catchなど
リテラル
リテラルはプログラム内で直接記述される値のことです。Javaには以下のようなリテラル型があります:
- 整数型リテラル:-10, 100など
- 浮動小数点型リテラル:-3.14など
- 文字列型リテラル:"abc"など(ダブルクォートで囲む)
- 文字型リテラル:'a'など(シングルクォートで囲む)
- 論理型リテラル:true, false
変数
変数とは
変数はメモリ内のデータを格納する領域で、データ型、名前、値の3つの要素から構成されます。
変数の宣言と初期化
// 変数の宣言
int number;
String name;
// 宣言と初期化を同時に行う
int age = 25;
double price = 19.99;
boolean isActive = true;
変数のスコープ
変数のスコープはその有効範囲を指します。メソッド内で宣言された変数はローカル変数、クラス内でメソッド外で宣言された変数はメンバ変数と呼ばれます。
データ型
基本データ型
Javaには8つの基本データ型があります:
| データ型 | サイズ(バイト) | 説明 |
|---|---|---|
| byte | 1 | -128から127までの整数 |
| short | 2 | -32,768から32,767までの整数 |
| int | 4 | -2,147,483,648から2,147,483,647までの整数 |
| long | 8 | -9,223,372,036,854,775,808から9,223,372,036,854,775,807までの整数 |
| float | 4 | 単精度浮動小数点数 |
| double | 8 | 倍精度浮動小数点数 |
| boolean | 1 | trueまたはfalseの値 |
| char | 2 | Unicode文字 |
データ型の変換
Javaでは、異なるデータ型間で値を代入する場合、型変換が必要になります:
- 小容量から大容量への変換は自動的に行われます(自動型変換)
- 大容量から小容量への変換は、キャスト演算子を使用して明示的に行う必要があります
// 自動型変換
int intValue = 100;
long longValue = intValue; // intからlongへの自動変換
// キャストによる型変換
double doubleValue = 123.45;
int intValue2 = (int) doubleValue; // doubleからintへのキャスト
演算子
算術演算子
| 演算子 | 名前 | 例 | 説明 |
|---|---|---|---|
| + | 加算 | a + b | 2つの値を加算します |
| - | 減算 | a - b | 2つの値を減算します |
| * | 乗算 | a * b | 2つの値を乗算します |
| / | 除算 | a / b | 2つの値を除算します |
| % | 剰余 | a % b | 除算の余りを返します |
| ++ | インクリメント | a++ | 値を1増やします |
| -- | デクリメント | a-- | 値を1減らします |
関係演算子
| 演算子 | 名前 | 例 | 結果 |
|---|---|---|---|
| > | より大きい | a > b | aがbより大きい場合true |
| < | より小さい | a < b | aがbより小さい場合true |
| >= | 以上 | a >= b | aがb以上の場合true |
| <= | 以下 | a <= b | aがb以下の場合true |
| == | 等しい | a == b | aとbが等しい場合true |
| != | 等しくない | a != b | aとbが等しくない場合true |
論理演算子
| 演算子 | 名前 | 例 | 結果 |
|---|---|---|---|
| && | 論理積(短絡) | a && b | 両方がtrueの場合true |
| || | 論理和(短絡) | a || b | どちらかがtrueの場合true |
| & | 論理積 | a & b | 両方がtrueの場合true |
| | | 論理和 | a | b | どちらかがtrueの場合true |
| ^ | 排他的論理和 | a ^ b | どちらか一方だけがtrueの場合true |
| ! | 論理否定 | !a | aがfalseの場合true |
インクリメントとデクリメントの例
int x = 10;
int y;
// ポストインクリメント(値を参照してから増加)
y = x++;
// xは11、yは10
// プリインクリメント(値を増加してから参照)
y = ++x;
// xは12、yは12
エスケープシーケンス
文字列内で特殊文字を表現するために、エスケープシーケンスを使用します:
| シーケンス | 意味 |
|---|---|
| \n | 改行 |
| \t | 水平タブ |
| \r | キャリッジリターン |
| \\ | バックスラッシュ |
| \" | ダブルクォート |
| \' | シングルクォート |
基本的なJavaクラスの構造
public class SampleClass {
// プライベートなプロパティ(カプセル化)
private int id;
private String name;
// コンストラクタ
public SampleClass(int id, String name) {
this.id = id;
this.name = name;
}
// ゲッターメソッド
public int getId() {
return id;
}
// セッターメソッド
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 通常のメソッド
public void displayInfo() {
System.out.println("ID: " + id + ", Name: " + name);
}
}
整数リテラルの表現形式
Javaでは整数リテラルを3つの形式で表現できます:
- 十進数:10(デフォルト)
- 八進数:010(0で始まる)
- 十六進数:0x10(0xで始まる)
long型のリテラルは、末尾にLまたはlを付けます(推奨は大文字のL)。
int decimalValue = 100; // 十進数
int octalValue = 0100; // 八進数(64)
int hexValue = 0x100; // 十六進数(256)
long longValue = 100L; // long型
文字と文字列の扱い
文字はchar型で表現され、シングルクォートで囲みます。文字列はStringクラスのオブジェクトで、ダブルクォートで囲みます。
char grade = 'A';
String message = "こんにちは、Java!";
// Unicode文字の表現
char japaneseChar = '\u65e5'; // '日'のUnicode