目次
クラス(Class)
ロボ君
クラスは、オブジェクトの設計図デス。
クラスのメリットとしては、以下のようなものが挙げられます。
- 同じ処理を繰り返す必要がなくなる
- 新しい機能や処理を追加する際に、既存のコードに変更を加える必要がない
- プログラムの構造が明確になり、動作を理解しやすくなる
- バグの発見や修正が容易になる
- 再利用性
クラスは、役割や機能ごとにまとめることで、コードの再利用を可能にします。
同じ処理を繰り返す必要がなくなり、プログラムの保守や開発が容易になります。
- 拡張性
クラスは、サブクラスを継承することで、機能や処理を拡張することができます。
新しい機能や処理を追加する際に、既存のコードに変更を加える必要がありません。
- 保守性
クラスは、フィールドやメソッドを抽象化することで、プログラムの構造を明確にすることができます。
そのため、プログラムの動作を理解しやすくなり、バグの発見や修正が容易になります。
クラスはJavaプログラムの基本的な構成要素で、オブジェクト指向プログラミング(OOP)の中心です。
クラスはオブジェクトの設計図であり、特定の属性(フィールド)と操作(メソッド)を定義します。
↓Pythonの記事ですが、考え方は同じです。
Pythonのオブジェクトとインスタンス | 関西AIラボ
オブジェクトとインスタンス オブジェクト指向プログラミング(OOP)では、プログラムをオブジェクトの集まりとして考え、それらのオブジェクトが相互に連携してタスクを達…
クラスの宣言
クラスを宣言するには、以下の構文を使用します。
class クラス名 {
// フィールド
// メソッド
}
クラス名
は、クラスの名前を指定します。フィールド
は、クラスのインスタンス変数を定義します。メソッド
は、クラスのインスタンスメソッドを定義します。
クラスの基本構造
[修飾子] class [クラス名] {
// フィールド(属性)の宣言
[アクセス修飾子] [データ型] [フィールド名];
// コンストラクタ(クラスのインスタンス化時に実行される特別なメソッド)
[修飾子] [クラス名]([パラメータリスト]) {
// コンストラクタの本体(初期化コード)
}
// メソッド(操作)の宣言
[修飾子] [戻り値の型] [メソッド名]([パラメータリスト]) {
// メソッドの本体(コード)
[戻り値の返却];
}
}
- 修飾子 (Modifiers)
クラスのアクセス範囲を指定します。
例えば、public
,private
,protected
などがあります。 - クラス名 (Class Name)
クラスの名前を指定します。
識別子として有効でなければなりません。 - フィールド (Fields)
クラス内の属性を表します。
オブジェクトの状態を保持します。 - コンストラクタ (Constructor)
クラスのインスタンス化時に実行される特別なメソッドで、オブジェクトの初期化を行います。 - メソッド (Methods)
クラス内の操作を表します。オブジェクトの振る舞いを定義します。
クラスの例
例1:
public class Calculator {
// メソッドの定義
public int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// メソッドの呼び出し
Calculator calculator = new Calculator();
int result = calculator.add(5, 3);
System.out.println("5 + 3 = " + result);
}
}
// 実行結果
// 5 + 3 = 8
public class Calculator { }
Calculatorという名前のクラスを宣言しています。
クラスはJavaプログラムの基本的な構造であり、このクラス内にメソッドやフィールド(変数)を含めることができます。public int add(int a, int b) { }
addという名前のメソッドを定義しています。
メソッドは特定のタスクや操作を実行するためのコードの塊です。
このメソッドは、整数型のa
とb
という2つの引数を受け取り、それらの値を足し合わせて整数型の結果を返します。public static void main(String[] args) { }
Javaプログラムのエントリーポイントであるmain
メソッドを定義しています。main
メソッドはプログラムの開始地点であり、ここからプログラムが実行されます。Calculator calculator = new Calculator();
この行では、Calculatorクラスのインスタンスを作成しています。
クラスのインスタンス化は、クラスのメソッドやフィールドにアクセスするための手段です。int result = calculator.add(5, 3);
Calculatorクラスのインスタンスであるcalculator
のadd
メソッドを呼び出しています。
引数として5と3を渡し、その結果をresult
変数に格納しています。System.out.println("5 + 3 = " + result);
計算結果を表示しています。System.out.println
はコンソールにテキストを出力するためのJavaの標準メソッドです。
※Calculator,java
ファイル上で動作します。
例2:
public class Student {
// フィールドの宣言
private String name;
private int age;
// コンストラクタ
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// メソッド
public void displayInfo() {
System.out.println("名前: " + name);
System.out.println("年齢: " + age);
}
public static void main(String[] args) {
// クラスのインスタンス化
Student student1 = new Student("Real", 54);
Student student2 = new Student("Astr", 25);
Student student3 = new Student("Yoru", 27);
// メソッドの呼び出し
student1.displayInfo();
student2.displayInfo();
student3.displayInfo();
}
}
↓実行結果
名前: Real
年齢: 54
名前: Astr
年齢: 25
名前: Yoru
年齢: 27
この例では、Student
クラスが定義されており、名前と年齢の属性を持っています。
コンストラクタでオブジェクトを初期化し、displayInfo
メソッドで情報を表示しています。main
メソッド内でクラスのインスタンスを作成し、メソッドを呼び出しています。
※Student.java
ファイル上で動作します。
同じクラス(設計図)を使って3人の生徒(インスタンス)を生み出した!
クラスまとめ表
要素 | 説明 |
---|---|
クラス | オブジェクトの設計図 |
フィールド | クラス内の変数。オブジェクトの状態を表すデータを保持します。 |
コンストラクタ | オブジェクトの初期化時に呼び出される特別なメソッド。 |
メソッド | クラス内の関数。オブジェクトの振る舞いを定義します。 |