logo

Klassen und Objekte in Java

In Java bilden Klassen und Objekte die Grundlage der objektorientierten Programmierung (OOP). Sie helfen dabei, reale Entitäten zu modellieren und Code strukturiert zu organisieren.

Zeichenfolge in JSON Java
  • Eine Klasse ist eine Blaupause, mit der Objekte erstellt werden, die gemeinsame Eigenschaften und Verhaltensweisen aufweisen.
  • Ein Objekt ist eine Instanz einer Klasse. Es stellt eine bestimmte Entität dar, die aus der Klassenvorlage erstellt wurde.

Zum Beispiel ist „Hund“ eine Klasse, „Tommy“ ist ein Objekt dieser Klasse.

Class_Object_example' title=Klassen und Objekte (hier ist „Hund“ die Klasse und „Bobby“ das Objekt)

Java-Klasse

Eine Klasse ist ein Entwurf, der Daten und Verhalten für Objekte definiert. Es fasst verwandte Felder und Methoden in einer einzigen Einheit zusammen. Speicher für seine Mitglieder wird nur zugewiesen, wenn ein Objekt erstellt wird.



  • Dient als Vorlage zum Erstellen von Objekten mit gemeinsamer Struktur.
  • Belegt bis zur Instanziierung keinen Speicher für Felder.
  • Kann Felder, Methoden, Konstruktoren, verschachtelte Klassen und Schnittstellen enthalten.
Java
class Student {  int id;  String n;  public Student(int id String n) {  this.id = id;  this.n = n;  } } public class Main {  public static void main(String[] args) {  Student s1 = new Student(10 'Alice');  System.out.println(s1.id);  System.out.println(s1.n);  } } 

Ausgabe
10 Alice 

Java-Objekte

Ein Objekt ist eine Instanz einer Klasse, die erstellt wurde, um auf ihre Daten und Operationen zuzugreifen. Jedes Objekt hat seinen eigenen Zustand.

  • Zustand : In Feldern gespeicherte Werte.
  • Verhalten : Durch Methoden definierte Aktionen.
  • Identität : Unterscheidet ein Objekt von einem anderen.

Objekte spiegeln reale Gegenstände wie Kundenprodukte oder Kreise wider. Nicht-primitive Objekte werden auf dem Heap gespeichert, während ihre Referenzen auf dem Stapel verbleiben.

Objekte in Java' loading='lazy' title=Java-Objekte (Beispiel für Hunde)

Objektinstanziierung

Das Erstellen eines Objekts wird als Instanziierung bezeichnet. Alle Instanzen einer Klasse haben die gleiche Struktur und das gleiche Verhalten, während sie unterschiedliche Zustandswerte speichern.

Deklarieren von Objekten in Java' loading='lazy' title=Java-Objektdeklaration

Erklärung:

Hundetuffy;

Dies deklariert lediglich eine Referenz. Das Objekt wird nicht erstellt und die Referenz ist null.

Initialisierung:

tuffy = neuer Hund('Tuffy' 'Papillon' 5 'White');

Klassen-und-Objekte-in-Java-3-768' loading='lazy' title=Initialisierung

Der neue Operator reserviert Speicher und ruft den Konstruktor auf.

Beispiel: Definieren und Verwenden einer Klasse

Java
public class Dog {  String name;  String breed;  int age;  String color;  public Dog(String name String breed int age String color) {  this.name = name;  this.breed = breed;  this.age = age;  this.color = color;  }  public String getName() { return name; }  public String getBreed() { return breed; }  public int getAge() { return age; }  public String getColor() { return color; }  @Override  public String toString() {  return 'Name is: ' + name  + 'nBreed age and color are: '  + breed + ' ' + age + ' ' + color;  }  public static void main(String[] args) {  Dog tuffy = new Dog('tuffy' 'papillon' 5 'white');  System.out.println(tuffy);  } } 

Ausgabe
Name is: tuffy Breed age and color are: papillon 5 white 

Notiz: Jede Klasse hat mindestens einen Konstruktor. Wenn keiner definiert ist, stellt Java einen Standardkonstruktor ohne Argumente bereit, der den übergeordneten Konstruktor aufruft.

Objekt mit Methode/Funktion initialisieren

Java
public class Geeks {  static String name;  static float price;  static void set(String n float p) {  name = n;  price = p;  }  static void get() {  System.out.println('Software name is: ' + name);  System.out.println('Software price is: ' + price);  }  public static void main(String[] args) {  Geeks.set('Visual Studio' 0.0f);  Geeks.get();  } } 

Ausgabe
Software name is: Visual Studio Software price is: 0.0 

Möglichkeiten zum Erstellen von Objekten in Java

Java unterstützt vier Standardansätze.

1. Verwenden eines neuen Schlüsselworts

Der direkteste Weg, ein Objekt zu erstellen.

Java
// creating object of class Test  Test t = new Test(); 

2. Reflexion nutzen

Wird für das dynamische Laden von Klassen verwendet, wie es in Frameworks wie Spring zu sehen ist.

Java
class Student {  public Student() {} } public class Main {  public static void main(String[] args) {  try {  Class c = Class.forName('Student');  Student s = (Student) c.getDeclaredConstructor().newInstance();  System.out.println(s);  } catch (Exception e) {  e.printStackTrace();  }  } } 

Ausgabe
Student@1dbd16a6 

3. Verwendung der clone()-Methode

clone() erstellt eine Kopie eines vorhandenen Objekts. Die Klasse muss Cloneable implementieren.

Java
class Geeks implements Cloneable {  String name = 'GeeksForGeeks';  @Override  protected Object clone() throws CloneNotSupportedException {  return super.clone();  }  public static void main(String[] args) {  try {  Geeks g1 = new Geeks();  Geeks g2 = (Geeks) g1.clone();  System.out.println(g2.name);  } catch (Exception e) {  e.printStackTrace();  }  } } 

Ausgabe
GeeksForGeeks 

4. Deserialisierung verwenden

Deserialisierung ist eine Technik zum Lesen eines Objekts aus dem gespeicherten Zustand in einer Datei. Das Objekt wird aus einem gespeicherten Bytestrom neu erstellt.

Siehe Serialisierung/De-Serialisierung in Java .

Java
import java.io.*; class Student implements Serializable {  private String name;  public Student(String name) { this.name = name; }  public String toString() { return 'Student: ' + name; } } public class Main {  public static void main(String[] args) {  try (ObjectOutputStream out =  new ObjectOutputStream(new FileOutputStream('student.ser'))) {  out.writeObject(new Student('Alice'));  } catch (IOException e) { e.printStackTrace(); }  try (ObjectInputStream in =  new ObjectInputStream(new FileInputStream('student.ser'))) {  Student s = (Student) in.readObject();  System.out.println(s);  } catch (Exception e) { e.printStackTrace(); }  } } 

Ausgabe
Student: Alice 

Eine einzelne Referenz kann zu unterschiedlichen Zeiten auf verschiedene Objekte verweisen.

Java
Test test = new Test(); test = new Test(); 

Bei der Vererbung ist es üblich, für untergeordnete Objekte eine übergeordnete Referenz zu verwenden.

So löschen Sie eine Spalte in Postgresql
Java
Animal obj = new Dog(); obj = new Cat(); 

Nicht referenzierte Objekte kommen für die Garbage Collection infrage.

Anonyme Objekte

Anonyme Objekte werden ohne Referenz erstellt und sofort für einmalige Vorgänge verwendet.

  • Keine Referenzvariable: Das Objekt kann nicht wiederverwendet werden.
  • Durch die sofortige Erstellung und Verwendung wird Speicherplatz für kurzlebige Aufgaben gespart.
  • Häufig bei der Ereignisverarbeitung (z. B. Klicken auf Schaltflächen).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Häufig bei der UI-Ereignisbehandlung.

Quiz erstellen