Javaは、広く使用されているプログラミング言語であり、特に大規模な企業向けアプリケーションやAndroidアプリ開発において重要な役割を果たしています。この記事では、Javaの基本的な特徴、構文、オブジェクト指向の概念、そして実際の開発に役立つ重要なポイントについて説明します。
1. Javaの基本特徴
Javaは、サン・マイクロシステムズ(現在はOracleによって所有)によって1995年に登場しました。Javaは、プラットフォームに依存しない(「Write Once, Run Anywhere」)という特長を持っており、Javaで書かれたコードは、JVM(Java Virtual Machine)上で動作するため、異なる環境でも同じように動作します。これにより、Javaは非常に移植性が高くなります。

- プラットフォーム独立性: Javaで開発されたアプリケーションは、JVMがインストールされているどのプラットフォームでも動作します。
- オブジェクト指向: Javaはオブジェクト指向プログラミング(OOP)言語です。これは、プログラムをオブジェクト(データとメソッドの組み合わせ)として設計することを意味します。
- ガーベジコレクション: メモリ管理が自動で行われるため、開発者がメモリ管理を気にする必要がありません。
2. Javaプログラムの基本構造
Javaのプログラムは通常、クラスとメソッドで構成されます。以下に、簡単なJavaプログラムの例を示します。
javapublic class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
このコードは、Javaプログラムの最も基本的な例です。
public class HelloWorld
: これは「HelloWorld」というクラスの定義です。クラスは、データとメソッドをグループ化するための青写真のようなものです。public static void main(String[] args)
: これはプログラムのエントリーポイントであるmain
メソッドです。Javaプログラムは、main
メソッドから実行を開始します。System.out.println("Hello, World!");
: これは標準出力に文字列「Hello, World!」を表示する命令です。
3. データ型と変数
Javaでは、さまざまなデータ型を使用して変数を宣言します。主なデータ型には、プリミティブ型(基本型)とオブジェクト型があります。
- プリミティブ型: 例えば、
int
(整数型)、double
(浮動小数点型)、boolean
(真偽値型)など。 - オブジェクト型: 文字列型の
String
や、カスタムクラスで作成したオブジェクトなど。
javaint number = 10;
double price = 19.99;
String message = "Javaは面白い";
4. 制御構造
Javaでは、条件分岐やループを使ってプログラムの流れを制御します。
- 条件分岐:
if
、else if
、else
を使用して条件を評価します。
javaif (number > 5) {
System.out.println("数値は5より大きい");
} else {
System.out.println("数値は5以下");
}
- ループ:
for
ループ、while
ループ、do-while
ループを使って繰り返し処理を実行します。
javafor (int i = 0; i < 5; i++) {
System.out.println(i);
}
5. オブジェクト指向の基本
Javaはオブジェクト指向プログラミング(OOP)言語であり、以下の4つの主要な原則を持っています。
-
カプセル化(Encapsulation): クラス内でデータ(変数)とメソッドをまとめ、外部からのアクセスを制限します。アクセス修飾子(
private
、protected
、public
)を使って、メンバ変数やメソッドへのアクセスを制御します。javapublic class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
-
継承(Inheritance): サブクラスがスーパークラスのプロパティとメソッドを継承します。
javapublic class Animal { public void sound() { System.out.println("動物の音"); } } public class Dog extends Animal { @Override public void sound() { System.out.println("ワンワン"); } }
-
ポリモーフィズム(Polymorphism): 同じメソッド名で異なる動作を実現します。オーバーライド(継承時にメソッドを再定義)やオーバーロード(同じメソッド名で異なる引数のメソッドを定義)を使います。
-
抽象化(Abstraction): 実装の詳細を隠し、必要な情報だけを提供します。抽象クラスやインターフェースを使って抽象化を実現します。
javapublic abstract class Animal { public abstract void sound(); } public class Dog extends Animal { @Override public void sound() { System.out.println("ワンワン"); } }
6. 例外処理
Javaでは、エラーや異常を処理するために例外処理を使用します。try-catch
ブロックを使って例外を捕捉し、適切に処理します。
javatry {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("ゼロで割ることはできません!");
}
7. コレクションフレームワーク
Javaは強力なコレクションフレームワークを提供しており、リスト、セット、マップなどのデータ構造を簡単に扱うことができます。例えば、ArrayList
は動的配列として使用されます。
javaimport java.util.ArrayList;
public class Example {
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
for (String language : list) {
System.out.println(language);
}
}
}
8. スレッドと並行処理
Javaはスレッドを使用して並行処理を実現することができます。Thread
クラスを使って新しいスレッドを作成し、並行処理を行うことができます。
javapublic class MyThread extends Thread {
@Override
public void run() {
System.out.println("スレッドが実行中");
}
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
}
}
9. Javaでの開発環境
Javaの開発には、主に次のツールを使用します。
- JDK(Java Development Kit): Javaプログラムを開発するために必要なツールセット。
- IDE(統合開発環境): IntelliJ IDEA、Eclipse、NetBeansなどのIDEを使用して、より効率的にプログラムを開発できます。
結論
Javaは、そのオブジェクト指向設計、プラットフォーム独立性、強力なライブラリやフレームワークにより、非常に人気があり、様々な用途に対応できるプログラミング言語です。Javaの基礎を理解した後、さらに複雑なトピックやライブラリを学ぶことで、開発者としてのスキルを高めていくことができます。