Javaでクラスを作成する方法を学ぶ

Javaでのクラスの作成は、オブジェクト指向プログラミングと呼ばれるものの基本的な構成要素です。オブジェクト指向プログラミングとは、互いにメッセージを送信できるオブジェクトの使用に基づくパラダイム(プログラミングのスタイル)のことです。

Javaでクラスを使用する方法を完全に理解するには、まずオブジェクトとは何かを理解する必要があります。

オブジェクトを調べる

Javaでは、オブジェクトという用語は、オブジェクトはクラスから作成されることを考えると、クラスという用語としばしば混同して使用されます。

クラスは青写真のようなものと考えることができます。つまり、オブジェクトを作成するために必要なすべての情報が含まれています。

たとえば、名前、年齢、専攻などの学生に関する基本情報を格納する学生クラスを作成できます。学生クラスを使用して新しい学生が作成されるたびに、その学生はオブジェクトと呼ばれます。

Javaでクラスを作成する

Javaでクラスを作成する必要があるのは、それらがプログラムの構造を提供し、プログラムに存在するコードの量を削減するためです。プログラム内の類似したオブジェクトごとに新しい状態と動作を作成する代わりに、そのオブジェクトを作成するためのテンプレートを持つクラスを呼び出すだけで済みます。

Javaクラスで最も重要なステートメントの1つはクラス宣言です。

クラス宣言

一般的なルールとして、Javaのすべてのクラスは「public」というキーワードを使用して宣言されます。これは、問題のクラスにJavaプログラム内の他のクラスからアクセスできることを示します。「class」というキーワードがこれに続き、作成しているJavaステートメントがクラスであることを示します。

次はクラス名です。通常は大文字から始まり、作成するオブジェクトに適していると考える任意の名前を付けることができます。以下の例では、クラスの名前はstudentです。これは、このクラスから学生オブジェクトを作成することが目的だからです。

Javaでのクラス宣言の例

public class Student {
}

クラス宣言の最後の構成要素は、中括弧と閉じ中括弧です。最初の波括弧はクラスの開始を示し、2番目の波括弧はクラスの終了を示します。したがって、クラスに固有の状態と動作はすべて、これらの波括弧内に格納されます。

中括弧を使用すると、Javaコードに構造を追加できます。この機能は当然のことではありません。Pythonなどの他の言語では、クラスを作成するときに中括弧を使用してコードを構造化しません。

Javaクラスの属性

属性は、Javaクラスの構成要素と見なすことができます。これらは、オブジェクトに状態を与えるために使用されるデータ要素を含み、多くの場合変数と呼ばれます。

クラスは「student」と呼ばれ、特定の大学/大学に所属する学生の情報を格納することに重点を置いています。したがって、ファイルに保存される情報は、各学生の名前、年齢、専攻です。

属性を持つクラスの例

public class Student {
//変数宣言
private String fname;
private String lname;
private int age;
private String courseOfStudy;
}

上記のプログラムで注意すべき重要な点がいくつかあります。Javaで属性/変数を宣言するときは、アクセス修飾子、データ型、変数名が必要です。

プログラムでは、アクセス修飾子は「private」というキーワードです。これは、studentクラスのデータへの外部アクセスを防止するために使用され、これはクラスに格納されているデータの整合性を保護する良いプログラミングプラクティスです。

プログラムには、Stringとintの2つの異なるデータ型の表現があります。

  • Stringキーワードは、テキストデータを格納する変数を宣言するために使用され、Javaコンパイラによって認識されるには大文字の「S」で始まる必要があります。
  • 「int」というキーワードは、整数のデータを格納する属性を宣言するために使用され、Javaプログラミング言語は大文字と小文字を区別するため、すべて小文字にする必要があります。

変数の名前は通常、属性/変数宣言の最後の部分です。ただし、変数の値は宣言段階で変数に割り当てることができます。すべての変数が宣言されたら、コンストラクターの作成に進むことができます。

Javaコンストラクター

Javaのクラスはコンストラクターなしでは完成しません。これは、言語のコアコンセプトです。コンストラクターは、オブジェクトに状態を与えるために使用されるJavaのメソッドであり、オブジェクトが作成されると自動的に呼び出されます。コンストラクターには、デフォルト、プライマリ、コピーの3種類があります。

クラスからオブジェクトを作成するとき、オブジェクトにパラメーター(メソッドに渡すことができる値)を指定するか、パラメーターなしで作成するかを選択できます。

新しいオブジェクトがクラスから作成され、パラメーターが指定されていない場合、デフォルトのコンストラクターが呼び出されます。ただし、パラメーターが指定されている場合、プライマリコンストラクターが呼び出されます。

デフォルトのコンストラクターを持つクラスの例

public class Student {
//変数宣言
private String fname;
private String lname;
private int age;
private String courseOfStudy;
//デフォルトコンストラクター
public Student() {
fname = "John";
lname = "Doe";
age = 20;
courseOfStudy = "Pyschology";
}
}

上記のコードでは、デフォルトのコンストラクターに「public」アクセス修飾子が割り当てられており、studentクラスの外からアクセスできます。コンストラクターのアクセス修飾子は「public」でなければなりません。そうでないと、クラスは他のクラスを使用してオブジェクトを作成できません。

コンストラクターには常に属するクラスの名前が割り当てられます。デフォルトのコンストラクターの場合、クラス名は上記のコードのように括弧で囲まれます。括弧には、クラスに属する変数のデフォルトの割り当てを含む中括弧と閉じ中括弧が続く必要があります。

上記のコード例から、パラメーターなしでstudentクラスのインスタンスが作成されると、デフォルトのコンストラクターが呼び出され、名前がJohn Doe、年齢が20歳、心理学の専攻である学生が作成されます。

プライマリコンストラクターを持つクラスの例

public class Student {
//変数宣言
private String fname;
private String lname;
private int age;
private String courseOfStudy;
//デフォルトコンストラクター
public Student() {
fname = "John";
lname = "Doe";
age = 0;
courseOfStudy = "Pyschology";
}
//プライマリコンストラクター
public Student(String fname, String lname, int age, String courseOfStudy) {
this.fname = fname;
this.lname = lname;
this.age = age;
this.courseOfStudy = courseOfStudy;
}
}

デフォルトのコンストラクターとプライマリコンストラクターの主な違いは、プライマリコンストラクターは引数を取るのに対し、デフォルトのコンストラクターは引数を取らないことです。studentクラスのプライマリコンストラクターを使用するには、作成する学生オブジェクトの名前、年齢、専攻を指定する必要があります。

プライマリコンストラクターでは、パラメーターとして受け取った各データ属性値が適切な変数に格納されます。「this」というキーワードは、接続されている変数がstudentクラスに属することを示すために使用され、他の変数はプライマリコンストラクターを使用してクラスのオブジェクトを作成するときにパラメーターとして受け取るものです。

コピーコンストラクターはプライマリコンストラクターのコピーであり、Javaプログラムを正常に実行するために必要ではありません。したがって、含める必要はありません。

これでJavaでシンプルなクラスを作成できます

この記事では、Javaプログラミング言語で役立つクラスを作成する方法だけでなく、オブジェクト指向プログラミングの基本についても説明します。これには、変数の作成、「Sting」と「int」のデータ型の調査、Javaでのpublicとprivateのアクセス修飾子の理解が含まれます。

画像クレジット: Christina Morillo/Pexels