Javaの開発環境が整ったところで、次は実際にプログラムを書き始めるために、基本構文を学びます。Javaの構文はシンプルでありながら、非常に強力です。この章では、Javaのプログラムがどのように構成されているかを理解し、基本的な構文を学んでいきます。
この章で取り上げるトピックは次の通りです:
- クラスとメソッドの基本
- Javaのデータ型と変数
- リテラルと定数
- 型変換
- 演算子の種類と使い方
3.1 クラスとメソッドの基本構造
Javaプログラムのすべては「クラス」から始まります。Javaでは、クラスがプログラムの基本単位であり、すべてのプログラムはクラスの中に記述されます。クラスの中には、プログラムの実行時に呼び出される「メソッド」が含まれています。
3.1.1 クラスの定義
Javaのクラスを定義する基本的な書き方は次の通りです。
public class クラス名 {
// フィールド(変数やデータ)
// メソッド(処理のまとまり)
}
public
: アクセス修飾子で、他のクラスからアクセスできることを示します。class
: クラスを定義するためのキーワードです。クラス名
: クラスの名前です。クラス名は必ず大文字で始めるのが一般的です。
3.1.2 メソッドの定義
メソッドは、特定の処理を行うためのコードのまとまりです。Javaではmain
メソッドがプログラムのエントリーポイント(開始地点)となります。以下がmain
メソッドを含むクラスの例です。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
public
: 他のクラスからもアクセス可能なメソッドであることを示します。static
: クラスメソッドとして定義し、インスタンスを作成せずに呼び出せることを示します。void
: このメソッドが何も値を返さないことを示します。main
: メソッド名で、Javaプログラムのエントリーポイントとして特別な役割を持つ名前です。String[] args
: コマンドライン引数を受け取るための配列です。
このmain
メソッドの中に処理を書き込むことで、プログラムの実行が開始されます。
3.2 Javaのデータ型と変数
Javaには、プログラム中でデータを扱うために「データ型」が定義されています。データ型は、変数に格納できる値の種類を指定します。変数とは、データを格納するための名前付きの箱のようなものです。
3.2.1 プリミティブ型(基本データ型)
Javaには8つの基本的なデータ型があり、これらは「プリミティブ型」と呼ばれます。
データ型 | サイズ | 説明 |
---|---|---|
byte | 1バイト | -128から127までの整数 |
short | 2バイト | -32,768から32,767までの整数 |
int | 4バイト | -2^31から2^31-1までの整数 |
long | 8バイト | -2^63から2^63-1までの整数 |
float | 4バイト | 単精度浮動小数点数 |
double | 8バイト | 倍精度浮動小数点数 |
char | 2バイト | 1つの文字(Unicode) |
boolean | 1ビット | true またはfalse の2値 |
3.2.2 変数の宣言と初期化
変数を使うには、まずその型を指定して宣言し、値を代入します。これを変数の宣言と初期化と言います。
int x = 10; // 整数型の変数xを宣言し、10を代入
double pi = 3.14159; // 浮動小数点数型の変数piを宣言し、3.14159を代入
上記の例では、int
型の変数x
に10を代入し、double
型の変数pi
に3.14159を代入しています。
3.3 リテラルと定数
Javaでは、プログラム中に直接書き込まれる値を「リテラル」と呼びます。リテラルは、変数に格納される具体的な値を指します。
3.3.1 リテラルの種類
- 整数リテラル:
int
型やlong
型の数値。例:10
、-5
。 - 浮動小数点リテラル:
float
型やdouble
型の数値。例:3.14
、2.71828
。 - 文字リテラル: 単一の文字を表すリテラル。例:
'A'
、'1'
。 - 文字列リテラル: 文字列全体を表すリテラル。例:
"Hello"
、"Java"
。 - 論理リテラル: 真偽値を表すリテラル。例:
true
、false
。
3.3.2 定数
定数は、一度値を代入すると変更することができない変数のことです。Javaでは、final
キーワードを使って定数を定義します。
final double PI = 3.14159;
ここで、PI
という定数を宣言し、値を3.14159に設定しています。この値は以降変更できません。
3.4 型変換(キャスト)
Javaでは、異なるデータ型の値を扱うときに型変換が必要になる場合があります。これには、「暗黙の型変換」と「明示的な型変換(キャスト)」の2種類があります。
3.4.1 暗黙の型変換
データ型のサイズが大きい型に自動的に変換されることを暗黙の型変換と言います。例えば、int
型の値をdouble
型に代入する場合は自動的に変換されます。
int num = 10;
double dNum = num; // intからdoubleへの暗黙の型変換
3.4.2 明示的な型変換(キャスト)
データ型のサイズが小さい型に変換する場合や、互換性のない型に変換する場合は、明示的に型変換を指定する必要があります。これを「キャスト」と呼びます。
double dNum = 9.99;
int num = (int) dNum; // doubleからintへのキャスト(小数点以下は切り捨て)
3.5 演算子の種類と使い方
Javaには、さまざまな種類の演算子が用意されています。演算子は、変数やリテラルに対して演算を行うための記号です。ここでは、代表的な演算子の使い方を見ていきます。
3.5.1 算術演算子
算術演算子は、数値に対する基本的な演算を行うための演算子です。
演算子 | 説明 | 使用例 | 結果 |
---|---|---|---|
+ | 加算 | a + b | 15 |
- | 減算 | a - b | 5 |
* | 乗算 | a * b | 50 |
/ | 除算 | a / b | 2 |
% | 剰余(あまりを求める) | a % b | 0 |
例:
int a = 10;
int b = 5;
int result = a + b; // 15
3.5.2 比較演算子
比較演算子は、2つの値を比較して結果としてtrue
またはfalse
を返します。
演算子 | 説明 | 使用例 | 結果 |
---|---|---|---|
== | 等しい | a == b | false |
!= | 等しくない | a != b | true |
> | より大きい | a > b | true |
< | より小さい | a < b | false |
>= | 以上 | a >= b | true |
<= | 以下 | a <= b | false |
例:
int a = 10;
int b = 5;
boolean isEqual = (a == b); // false
3.5.3 論理演算子
論理演算子は、ブール値(true
またはfalse
)を操作するために使用されます。条件式の結合や論理値の否定に使われます。
演算子 | 説明 | 使用例 | 結果 |
---|---|---|---|
&& | 論理積(AND) | a && b | true |
` | ` | 論理和(OR) | |
! | 論理否定(NOT) | !a | false |
例:
boolean a = true;
boolean b = false;
boolean result = a && b; // false
3.5.4 代入演算子
代入演算子は、変数に値を代入するために使用されます。最も基本的な代入演算子は=
ですが、他にも複合代入演算子があります。
演算子 | 説明 | 使用例 | 結果 |
---|---|---|---|
= | 代入 | a = 10 | 10 |
+= | 加算して代入 | a += 5 | 15 |
-= | 減算して代入 | a -= 5 | 5 |
*= | 乗算して代入 | a *= 2 | 20 |
/= | 除算して代入 | a /= 2 | 5 |
%= | 剰余を求めて代入 | a %= 3 | 1 |
例:
int a = 10;
a += 5; // aは15になる
3.6 Javaの基本構文まとめ
ここまで、Javaのプログラムがどのように構成されているか、そして基本的なデータ型、変数、リテラル、演算子について学びました。Javaの基礎的な構文を理解することで、今後のプログラミングの土台がしっかり築かれます。これからさらに進んで、条件分岐やループといったプログラムの制御構文を学んでいきましょう。