Klasser og objekter i Java
I Java danner klasser og objekter grundlaget for objektorienteret programmering (OOP). De hjælper med at modellere virkelige enheder og organisere kode på en struktureret måde.
- En klasse er en plan, der bruges til at skabe objekter, der deler fælles egenskaber og adfærd.
- Et objekt er en instans af en klasse. Den repræsenterer en specifik enhed, der er oprettet ud fra klasseskabelonen.
For eksempel er hund en klasse, Tommy er et objekt i den klasse.
Klasser og objekter (Her er hund klassen og Bobby er objekt) Java klasse
En klasse er en blueprint, der definerer data og adfærd for objekter. Den grupperer relaterede felter og metoder i en enkelt enhed. Hukommelse til dets medlemmer tildeles kun, når et objekt er oprettet.
- Fungerer som en skabelon til at skabe objekter med delt struktur.
- Optager ikke hukommelse for felter indtil instansiering.
- Kan indeholde felter metoder konstruktører indlejrede klasser og grænseflader.
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 objekter
Et objekt er en forekomst af en klasse, der er oprettet for at få adgang til dets data og operationer. Hvert objekt har sin egen tilstand.
- Tilstand : Værdier gemt i felter.
- Opførsel : Handlinger defineret gennem metoder.
- Identitet : Adskiller et objekt fra et andet.
Objekter afspejler genstande fra den virkelige verden, såsom kundeprodukt eller cirkel. Ikke-primitive objekter gemmes på heapen, mens deres referencer forbliver på stakken.
Java-objekter (eksempel på hunde) Objekt Instantiation
Oprettelse af et objekt er kendt som instansiering. Alle forekomster af en klasse deler struktur og adfærd, mens de lagrer forskellige tilstandsværdier.
Java-objekterklæring Erklæring:
Hund tuffy;
Dette erklærer kun en reference. Objektet er ikke oprettet, og referencen har null.
Initialisering:
tuffy = new Dog('Tuffy' 'Papillon' 5 'White');
Initialisering Den nye operatør tildeler hukommelse og kalder konstruktøren.
Eksempel: Definition og brug af 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 ); } }
Produktion
Name is: tuffy Breed age and color are: papillon 5 white
Note: Hver klasse har mindst én konstruktør. Hvis ingen er defineret, leverer Java en standard no-argument constructor, der kalder den overordnede constructor.
Initialiser objekt ved hjælp af metode/funktion
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 (); } }
Produktion
Software name is: Visual Studio Software price is: 0.0
Måder at oprette objekter i Java
Java understøtter fire standardtilgange.
1. Brug af nyt søgeord
Den mest direkte måde at skabe et objekt på.
Java // creating object of class Test Test t = new Test ();
2. Brug af refleksion
Bruges til dynamisk klasseindlæsning som set i rammer 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 (); } } }
Produktion
Student@1dbd16a6
3. Brug af clone() metode
clone() opretter en kopi af et eksisterende objekt. Klassen skal 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 (); } } }
Produktion
GeeksForGeeks
4. Brug af deserialisering
De-serialisering er en teknik til at læse et objekt fra den gemte tilstand i en fil. Objektet genskabes fra en lagret bytestrøm.
Der henvises 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 (); } } }
Produktion
Student: Alice
En enkelt reference kan pege på forskellige objekter på forskellige tidspunkter.
Java Test test = new Test (); test = new Test ();
I arv er det almindeligt at bruge en overordnet reference til underordnede objekter.
Java Animal obj = new Dog (); obj = new Cat ();
Ikke-refererede genstande bliver berettiget til affaldsindsamling.
Anonyme objekter
Anonyme objekter oprettes uden reference og bruges straks til engangsoperationer.
- Ingen referencevariabel: Kan ikke genbruge objektet.
- Oprettet og brugt sparer øjeblikkeligt hukommelse til kortvarige opgaver.
- Almindelig i hændelseshåndtering (f.eks. knapklik).
new Dog ( 'Max' 'Labrador' 3 'Black' ). getName ();
Almindelig i UI-hændelseshåndtering.
Opret quiz