Java の内部クラスと静的ネストクラス
Java は純粋なオブジェクト指向のプログラミング言語です。クラスなしでプログラムを作成することはできません。
Java のクラス
クラスは、クラスオブジェクトがアクセスできる一連のメソッドとプロパティを表すブループリントまたはプロトタイプです。実際の例を通してそれを理解しましょう。
Student
は、student name
、student roll no
、cal_gpa()
、cal_fee()
のようないくつかのプロパティとメソッドを持つクラスです。これらは、大学のすべての学生に共通のプロパティです。
クラスを作成し、必要なすべてのプロパティを定義し、各学生のクラスのオブジェクトを使用してそれらにアクセスするのは簡単です。
コード例:
package articlecodesinjava;
class Student {
String name;
int rollNumber;
void cal_gpa() {
System.out.println("The method calculates CGPA.");
}
void cal_fee() {
System.out.println("The method calculates the Semester fee.");
}
}
public class ArticleCodesInJava {
public static void main(String[] args) {
// creating objects of Student class
Student Jinku = new Student();
Student Zeeshan = new Student();
System.out.println("This is Jinku's details.");
System.out.println(Jinku.name = "Jinku");
System.out.println(Jinku.rollNumber = 1);
Jinku.cal_fee();
Jinku.cal_gpa();
System.out.println("\n\nThis is Zeeshan's details.");
System.out.println(Zeeshan.name = "Zeeshan Afridi");
System.out.println(Zeeshan.rollNumber = 2);
Jinku.cal_fee();
Jinku.cal_gpa();
}
}
出力:
This is Jinku's details.
Jinku
1
The method calculates the Semester fee.
The method calculates CGPA.
This is Zeeshan's details.
Zeeshan Afridi
2
The method calculates the Semester fee.
The method calculates CGPA.
学生の青写真は、名前、ロール番号、CGPA、料金などの基本的な情報を含むクラスとして定義されています。これで、すべての学生に対してこれらすべてを定義する代わりに、すべての学生に対してこれらのプロパティとメソッドを呼び出すことができます。
ご覧のとおり、Jinku
と Zeeshan
の 2つのオブジェクトを作成し、これらのオブジェクトの Student
クラスのプロパティとメソッドを呼び出しました。
Java でのクラスの構造
Java は強力なオブジェクト指向のプログラミング言語です。1 行のコードでも、クラスと main
メソッドが必要です。
クラスの構文:
AccessSpecifer classKeyword ClassName{
//Class body
}
例:
Public class Student {
// Class body
}
-
AccessSpecifer
は、コードのアクセス可能性に基づいて、public
、private
、またはprotected
にすることができます。 -
クラスを定義するには
class
キーワードが必須です。そうしないと、クラスを作成できません。 -
クラスを作成するには
ClassName
も必須です。ベストプラクティスとガイドによると、名前は意味のあるものであり、コードを理解しやすく、読みやすくする必要があります。 -
Class body
は、クラスの境界または制限です。クラス本体内で変数とメソッドを定義できます。クラス本体は
{
で始まり、}
で終わります。
Java のネストされたクラスのタイプ
ネストされたクラスは、別のクラス内のクラスを参照します。この現象は、ネストされた条件とループに似ています。
Java では、ネストされたクラスを作成できます。これにより、1つの場所で使用されるクラスを論理的にグループ化でき、カプセル化の使用も増えます。
ネストされたクラスの構文:
class OuterClass { // OuterClass
Class InnerClass { // InnerClass }
}
Java には、2 種類のネストされたクラスがあります。これらは次のとおりです。
- 静的にネストされたクラス
- 内部クラス
Java の静的ネストクラス
静的にネストされたクラスは、キーワード static
を持つ外部クラスの静的メンバーとして定義されます。静的にネストされたクラスには、他の静的メンバーを使用して外部クラスをインスタンス化せずにアクセスできます。
他の静的メンバーと同様に、静的クラスはその外部クラスのメソッドとインスタンス変数にアクセスできません。
コード例:
public class OuterClass {
static class NestedStaticClass { // Outer class
public void my_method() { // Inner class
System.out.println("This is a static nested class.");
}
}
public static void main(String args[]) { // Main function
// object of nested class
NestedStaticClass ob = new NestedStaticClass();
ob.my_method();
}
}
出力:
This is a static nested class.
Java の内部クラス
セキュリティは、ほとんどすべてのソフトウェアまたは組織の最優先事項です。Java はそのセキュリティでよく知られており、内部クラスはこれらのセキュリティ標準を達成するのに役立つコンポーネントの 1つです。
内部クラスにアクセスするには、最初に外部クラスのオブジェクトを作成する必要があります。次に、そのオブジェクトを使用して、内部クラスのオブジェクトを作成できます。
通常のクラスや単純なクラスとは異なり、内部クラスには、protected
や private
で指定されたプロパティとメソッドにアクセスする権限があります。また、外部オブジェクトが内部クラスにアクセスしないようにする場合は、内部クラスを private
として宣言できます。
コード例:
public class OuterClass {
class NestedStaticClass { // Outer class
public void my_method() { // Inner class
System.out.println("This is a nested inner class.");
}
}
public static void main(String args[]) { // Main function
// object of nested class
OuterClass OuterObj = new OuterClass();
OuterClass.NestedStaticClass obj = OuterObj.new NestedStaticClass();
obj.my_method();
}
}
出力:
This is a nested inner class.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn