In Java vormen klassen en objecten de basis van Object-Oriented Programming (OOP). Ze helpen bij het modelleren van entiteiten uit de echte wereld en het op een gestructureerde manier organiseren van code.
- Een klasse is een blauwdruk die wordt gebruikt om objecten te maken die gemeenschappelijke eigenschappen en gedrag delen.
- Een object is een instantie van een klasse. Het vertegenwoordigt een specifieke entiteit die is gemaakt op basis van de klassensjabloon.
Hond is bijvoorbeeld een klasse. Tommy is een object van die klasse.
ontsnap karakter Java
Klassen en objecten (hier is hond de klasse en Bobby is object)Java-klasse
Een klasse is een blauwdruk die gegevens en gedrag voor objecten definieert. Het groepeert gerelateerde velden en methoden in één eenheid. Geheugen voor zijn leden wordt alleen toegewezen wanneer een object wordt gemaakt.
- Fungeert als sjabloon om objecten met een gedeelde structuur te maken.
- Neemt geen geheugen in beslag voor velden tot instantiatie.
- Kan velden, methoden, constructors, geneste klassen en interfaces bevatten.
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); } }
Uitvoer
10 Alice
Java-objecten
Een object is een instantie van een klasse die is gemaakt om toegang te krijgen tot de gegevens en bewerkingen ervan. Elk object heeft zijn eigen staat.
- Staat : Waarden opgeslagen in velden.
- Gedrag : Acties gedefinieerd via methoden.
- Identiteit : Onderscheidt het ene object van het andere.
Objecten weerspiegelen items uit de echte wereld, zoals een klantproduct of een cirkel. Niet-primitieve objecten worden op de heap opgeslagen terwijl hun referenties op de stapel blijven staan.
Java-objecten (voorbeeld van honden)Instantiatie van objecten
Het maken van een object staat bekend als instantiatie. Alle exemplaren van een klasse delen de structuur en het gedrag terwijl verschillende statuswaarden worden opgeslagen.
Java-objectdeclaratieVerklaring:
Hond tuffen;
Dit verklaart alleen een referentie. Het object is niet gemaakt en de verwijzing is null.
Initialisatie:
tuffy = nieuwe hond('Tuffy' 'Papillon' 5 'Wit');
InitialisatieDe nieuwe operator wijst geheugen toe en roept de constructor aan.
Voorbeeld: een klasse definiëren en gebruiken
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); } }
Uitvoer
Name is: tuffy Breed age and color are: papillon 5 white
Opmerking: Elke klasse heeft minstens één constructor. Als er geen is gedefinieerd, biedt Java een standaardconstructor zonder argumenten die de bovenliggende constructor aanroept.
Initialiseer het object met behulp van Method/Function
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(); } }
Uitvoer
Software name is: Visual Studio Software price is: 0.0
Manieren om objecten te maken in Java
Java ondersteunt vier standaardbenaderingen.
sorteer java samen
1. Nieuw trefwoord gebruiken
Meest directe manier om een object te maken.
Java// creating object of class Test Test t = new Test();
2. Reflectie gebruiken
Gebruikt voor het dynamisch laden van klassen, zoals te zien in raamwerken zoals Spring.
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(); } } }
Uitvoer
Student@1dbd16a6
3. Gebruik de clone()-methode
clone() maakt een kopie van een bestaand object. De klasse moet Cloneable implementeren.
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(); } } }
Uitvoer
GeeksForGeeks
4. Deserialisatie gebruiken
De-serialisatie is een techniek om een object te lezen vanuit de opgeslagen status in een bestand. Object wordt opnieuw gemaakt op basis van een opgeslagen bytestroom.
Raadpleeg Serialisatie/de-serialisatie 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(); } } }
Uitvoer
Student: Alice
Eén enkele verwijzing kan op verschillende tijdstippen naar verschillende objecten verwijzen.
JavaTest test = new Test(); test = new Test();
Bij overerving is het gebruikelijk om een ouderreferentie voor onderliggende objecten te gebruiken.
JavaAnimal obj = new Dog(); obj = new Cat();
Objecten zonder referenties komen in aanmerking voor garbagecollection.
Anonieme objecten
Anonieme objecten worden zonder referentie gemaakt en onmiddellijk gebruikt voor eenmalige bewerkingen.
ascii-tabel java
- Geen referentievariabele: kan het object niet hergebruiken.
- Gemaakt en gebruikt bespaart onmiddellijk geheugen voor kortstondige taken.
- Vaak bij het afhandelen van gebeurtenissen (bijvoorbeeld klikken op knoppen).
new Dog('Max' 'Labrador' 3 'Black').getName();
Gebruikelijk bij de afhandeling van UI-gebeurtenissen.
Quiz maken