I Java utgör klasser och objekt grunden för objektorienterad programmering (OOP). De hjälper till att modellera verkliga enheter och organisera kod på ett strukturerat sätt.
- En klass är en ritning som används för att skapa objekt som delar gemensamma egenskaper och beteende.
- Ett objekt är en instans av en klass. Den representerar en specifik enhet skapad från klassmallen.
Till exempel Hund är en klass Tommy är ett objekt i den klassen.
Klasser och objekt (Här är hund klassen och Bobby är objekt)Java klass
En klass är en ritning som definierar data och beteende för objekt. Den grupperar relaterade fält och metoder i en enda enhet. Minne för dess medlemmar tilldelas endast när ett objekt skapas.
- Fungerar som en mall för att skapa objekt med delad struktur.
- Upptar inte minne för fält förrän instansieringen.
- Kan innehålla fältmetoder konstruktörer kapslade klasser och gränssnitt.
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); } }
Produktion
10 Alice
Java-objekt
Ett objekt är en instans av en klass skapad för att komma åt dess data och operationer. Varje objekt har sitt eget tillstånd.
- Ange : Värden lagrade i fält.
- Beteende : Åtgärder definierade genom metoder.
- Identitet : Skiljer ett objekt från ett annat.
Objekt speglar verkliga föremål som kundprodukt eller cirkel. Icke-primitiva objekt lagras på högen medan deras referenser finns kvar i högen.
Java-objekt (exempel på hundar)Objektinstansiering
Att skapa ett objekt kallas instansiering. Alla instanser av en klass delar struktur och beteende samtidigt som olika tillståndsvärden lagras.
ipconfig för ubuntu
Java-objektdeklarationFörklaring:
Hund tuffy;
Detta deklarerar bara en referens. Objektet skapas inte och referensen har null.
Initiering:
python __dict__
tuffy = new Dog('Tuffy' 'Papillon' 5 'Vit');
InitialiseringDen nya operatören allokerar minne och anropar konstruktorn.
Exempel: Definiera och använda en klass
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); } }
Produktion
Name is: tuffy Breed age and color are: papillon 5 white
Notera: Varje klass har minst en konstruktör. Om ingen är definierad tillhandahåller Java en standardkonstruktor utan argument som anropar den överordnade konstruktorn.
Initiera objekt med metod/funktion
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(); } }
Produktion
Software name is: Visual Studio Software price is: 0.0
Sätt att skapa objekt i Java
Java stöder fyra standardmetoder.
1. Använda nytt nyckelord
Det mest direkta sättet att skapa ett objekt.
Java// creating object of class Test Test t = new Test();
2. Använda Reflektion
Används för dynamisk klassladdning som sett i ramverk som 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(); } } }
Produktion
Student@1dbd16a6
3. Använder metoden clone().
clone() skapar en kopia av ett befintligt objekt. Klassen måste implementera Cloneable.
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(); } } }
Produktion
GeeksForGeeks
4. Använda avserialisering
Avserialisering är en teknik för att läsa ett objekt från det sparade tillståndet i en fil. Objekt återskapas från en lagrad byteström.
Referera till Serialisering/avserialisering i Java .
sql flera tabeller väljJava
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(); } } }
Produktion
Student: Alice
En enda referens kan peka på olika objekt vid olika tidpunkter.
JavaTest test = new Test(); test = new Test();
Vid arv är det vanligt att använda en överordnad referens för underordnade objekt.
JavaAnimal obj = new Dog(); obj = new Cat();
Objekt utan referens blir kvalificerade för sophämtning.
Anonyma objekt
Anonyma objekt skapas utan referens och används omedelbart för engångsoperationer.
- Ingen referensvariabel: Kan inte återanvända objektet.
- Skapat och använt sparar omedelbart minne för kortlivade uppgifter.
- Vanligt vid händelsehantering (t.ex. knappklick).
new Dog('Max' 'Labrador' 3 'Black').getName();
Vanligt i UI-händelsehantering.
Skapa frågesport