Klasser og objekter i Java
I Java danner klasser og objekter grunnlaget for objektorientert programmering (OOP). De hjelper til med å modellere virkelige enheter og organisere kode på en strukturert måte.
- En klasse er en blåkopi som brukes til å lage objekter som deler felles egenskaper og oppførsel.
- Et objekt er en forekomst av en klasse. Den representerer en spesifikk enhet opprettet fra klassemalen.
For eksempel er hund en klasse Tommy er et objekt av den klassen.
Klasser og objekter (Her er hunden klassen og Bobby er objektet) Java klasse
En klasse er en blåkopi som definerer data og atferd for objekter. Den grupperer relaterte felt og metoder i en enkelt enhet. Minne for medlemmene tildeles kun når et objekt er opprettet.
- Fungerer som en mal for å lage objekter med delt struktur.
- Opptar ikke minne for felt før instansiering.
- Kan inneholde feltmetoder konstruktører nestede klasser og grensesnitt.
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 ); } }
Produksjon
10 Alice
Java-objekter
Et objekt er en forekomst av en klasse opprettet for å få tilgang til data og operasjoner. Hvert objekt har sin egen tilstand.
- Tilstand : Verdier lagret i felt.
- Oppførsel : Handlinger definert gjennom metoder.
- Identitet : Skiller ett objekt fra et annet.
Objekter speiler gjenstander fra den virkelige verden som kundeprodukt eller sirkel. Ikke-primitive objekter lagres på haugen mens referansene deres forblir på stabelen.
Java-objekter (eksempel på hunder) Objektforekomst
Å lage et objekt er kjent som instansiering. Alle forekomster av en klasse deler struktur og atferd mens de lagrer forskjellige tilstandsverdier.
Java-objekterklæring Erklæring:
Hund tuffy;
Dette erklærer kun en referanse. Objektet er ikke opprettet og referansen har null.
Initialisering:
tuffy = new Dog('Tuffy' 'Papillon' 5 'White');
Initialisering Den nye operatøren tildeler minne og påkaller konstruktøren.
Eksempel: Definere og bruke en 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 ); } }
Produksjon
Name is: tuffy Breed age and color are: papillon 5 white
Note: Hver klasse har minst én konstruktør. Hvis ingen er definert, gir Java en standard no-argument-konstruktør som kaller den overordnede konstruktøren.
Initialiser objektet ved å bruke metode/funksjon
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 (); } }
Produksjon
Software name is: Visual Studio Software price is: 0.0
Måter å lage objekter i Java
Java støtter fire standardmetoder.
1. Bruke nytt nøkkelord
Den mest direkte måten å lage et objekt på.
Java // creating object of class Test Test t = new Test ();
2. Bruke Refleksjon
Brukes for dynamisk klasselasting som sett i rammeverk som Spring.
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 (); } } }
Produksjon
Student@1dbd16a6
3. Bruke klone()-metoden
clone() lager en kopi av et eksisterende objekt. Klassen må implementere Cloneable.
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 (); } } }
Produksjon
GeeksForGeeks
4. Bruke deserialisering
De-serialisering er en teknikk for å lese et objekt fra den lagrede tilstanden i en fil. Objektet gjenskapes fra en lagret bytestrøm.
Referer til Serialisering/de-serialisering i 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 (); } } }
Produksjon
Student: Alice
En enkelt referanse kan peke til forskjellige objekter til forskjellige tider.
Java Test test = new Test (); test = new Test ();
I arv er det vanlig å bruke en overordnet referanse for underordnede objekter.
Java Animal obj = new Dog (); obj = new Cat ();
Ikke-refererte objekter blir kvalifisert for søppelinnsamling.
Anonyme objekter
Anonyme objekter opprettes uten referanse og brukes umiddelbart til engangsoperasjoner.
- Ingen referansevariabel: Kan ikke gjenbruke objektet.
- Laget og brukt lagrer øyeblikkelig minne for kortvarige oppgaver.
- Vanlig i hendelseshåndtering (f.eks. knappeklikk).
new Dog ( 'Max' 'Labrador' 3 'Black' ). getName ();
Vanlig i UI-hendelseshåndtering.
Lag quiz