Innere Klasse und statisch verschachtelte Klasse in Java

Zeeshan Afridi 12 Oktober 2023
  1. Klasse in Java
  2. Struktur einer Klasse in Java
  3. Arten von verschachtelten Klassen in Java
Innere Klasse und statisch verschachtelte Klasse in Java

Java ist eine reine objektorientierte Programmiersprache. Sie können keine Programme ohne Klasse erstellen.

Klasse in Java

Eine Klasse ist eine Blaupause oder ein Prototyp, der eine Reihe von Methoden und Eigenschaften darstellt, auf die das Klassenobjekt zugreifen kann. Lassen Sie es uns anhand eines realen Beispiels verstehen.

Student ist eine Klasse, die einige Eigenschaften und Methoden wie student name, student roll no, cal_gpa(), cal_fee() hat. Dies sind einige gemeinsame Eigenschaften für jeden Studenten an einem College oder einer Universität.

Es ist für uns einfach, eine Klasse zu erstellen, alle erforderlichen Eigenschaften zu definieren und mit dem Objekt der Klasse für jeden Schüler darauf zuzugreifen.

Codebeispiel:

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();
  }
}

Ausgabe:

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.

Wir haben den Entwurf der Schüler als Klasse mit grundlegenden Informationen über sie wie Name, Rollennummer, CGPA und Gebühr definiert. Jetzt können wir diese Eigenschaften und Methoden für jeden Schüler aufrufen, anstatt sie alle für jeden Schüler zu definieren.

Wie Sie sehen, haben wir zwei Objekte Jinku und Zeeshan erstellt und die Eigenschaften und Methoden der Klasse Student für diese Objekte aufgerufen.

Struktur einer Klasse in Java

Java ist eine stark objektorientierte Programmiersprache; selbst eine einzige Codezeile erfordert eine Klasse und die Methode main.

Syntax einer Klasse:

AccessSpecifer classKeyword ClassName{
    //Class body
}

Beispiel:

Public class Student {
  // Class body
}
  1. AccessSpecifer kann je nach Zugänglichkeit des Codes public, private oder protected sein.

  2. Das Schlüsselwort class ist obligatorisch, um eine Klasse zu definieren; Andernfalls können Sie keine Klasse erstellen.

  3. ClassName ist auch obligatorisch, um eine Klasse zu erstellen. Best Practices und Leitfäden besagen, dass die Namen aussagekräftig sein sollten, um den Code leichter verständlich und lesbarer zu machen.

  4. Klassenkörper sind die Grenzen oder Grenzen der Klasse. Sie können Variablen und Methoden innerhalb des Klassenkörpers definieren.

    Der Klassenkörper beginnt mit { und endet mit }.

Arten von verschachtelten Klassen in Java

Eine verschachtelte Klasse bezieht sich auf eine Klasse innerhalb einer anderen Klasse. Das Phänomen ähnelt verschachtelten Bedingungen und Schleifen.

Mit Java können Sie verschachtelte Klassen erstellen. Es ermöglicht Ihnen, Klassen, die an einem Ort verwendet werden, logisch zu gruppieren, und es erhöht auch die Verwendung von Kapselung.

Syntax einer verschachtelten Klasse:

class OuterClass { // OuterClass
  Class InnerClass { // InnerClass }
  }

In Java gibt es zwei Arten von verschachtelten Klassen. Dies sind die folgenden:

  1. Statische verschachtelte Klassen
  2. Innere Klassen

Statisch verschachtelte Klassen in Java

Eine statisch verschachtelte Klasse wird als statisches Mitglied ihrer äußeren Klasse mit dem Schlüsselwort static definiert. Auf eine statisch verschachtelte Klasse kann zugegriffen werden, ohne die äußere Klasse mit anderen statischen Membern zu instanziieren.

Ähnlich wie andere statische Member hat eine statische Klasse keinen Zugriff auf die Methoden und Instanzvariablen ihrer äußeren Klasse.

Codebeispiel:

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();
  }
}

Ausgabe:

This is a static nested class.

Innere Klassen in Java

Sicherheit hat bei fast jeder Software oder Organisation immer oberste Priorität. Java ist bekannt für seine Sicherheit, und die innere Klasse ist eine der Komponenten, die uns dabei helfen, diese Sicherheitsstandards zu erreichen.

Um auf die innere Klasse zuzugreifen, müssen Sie zuerst ein Objekt der äußeren Klasse erstellen und dann mit diesem Objekt das Objekt der inneren Klasse erstellen.

Im Gegensatz zu einer normalen oder einfachen Klasse hat eine innere Klasse die Berechtigung, auf die protected und private angegebenen Eigenschaften und Methoden zuzugreifen. Sie können die innere Klasse auch als privat deklarieren, wenn Sie nicht möchten, dass externe Objekte auf die innere Klasse zugreifen.

Codebeispiel:

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();
  }
}

Ausgabe:

This is a nested inner class.
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Verwandter Artikel - Java Class