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.
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.
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.
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.
Java-ObjektdeklarationErklä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');
InitialisierungDer neue Operator reserviert Speicher und ruft den Konstruktor auf.
Beispiel: Definieren und Verwenden einer Klasse
Javapublic 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
Javapublic 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.
Javaclass 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.
Javaclass 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 .
Javaimport 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.
JavaTest 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 PostgresqlJava
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).
new Dog('Max' 'Labrador' 3 'Black').getName();
Häufig bei der UI-Ereignisbehandlung.
Quiz erstellen