V jazyku Java tvoria triedy a objekty základ objektovo-orientovaného programovania (OOP). Pomáhajú modelovať entity reálneho sveta a organizovať kód štruktúrovaným spôsobom.
- Trieda je plán používaný na vytváranie objektov, ktoré zdieľajú spoločné vlastnosti a správanie.
- Objekt je inštanciou triedy. Predstavuje konkrétnu entitu vytvorenú zo šablóny triedy.
Napríklad Pes je trieda Tommy je objekt tejto triedy.
Triedy a predmety (tu je pes trieda a Bobby je objekt)Trieda Java
Trieda je plán, ktorý definuje údaje a správanie objektov. Združuje súvisiace oblasti a metódy do jedného celku. Pamäť pre jeho členov sa pridelí iba pri vytvorení objektu.
- Funguje ako šablóna na vytváranie objektov so zdieľanou štruktúrou.
- Nezaberá pamäť pre polia až do vytvorenia inštancie.
- Môže obsahovať konštruktory metód polí vnorené triedy a rozhrania.
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); } }
Výstup
10 Alice
Java Objects
Objekt je inštanciou triedy vytvorenej na prístup k jej údajom a operáciám. Každý objekt má svoj vlastný stav.
- štátu : Hodnoty uložené v poliach.
- Správanie : Akcie definované prostredníctvom metód.
- Identita : Rozlišuje jeden objekt od druhého.
Objekty odzrkadľujú položky skutočného sveta, ako napríklad zákaznícky produkt alebo kruh. Neprimitívne objekty sú uložené na halde, zatiaľ čo ich referencie zostávajú v zásobníku.
Java Objects (príklad psov)Objektová inštancia
Vytvorenie objektu je známe ako inštancia. Všetky inštancie triedy zdieľajú štruktúru a správanie pri ukladaní rôznych hodnôt stavu.
Java Object DeclarationVyhlásenie:
Pes tuffy;
Toto deklaruje iba referenciu. Objekt nie je vytvorený a odkaz má hodnotu null.
Inicializácia:
tuffy = new Dog('Tuffy' 'Papillon' 5 'White');
InicializáciaOperátor new alokuje pamäť a vyvolá konštruktor.
Príklad: Definovanie a používanie triedy
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); } }
Výstup
Name is: tuffy Breed age and color are: papillon 5 white
Poznámka: Každá trieda má aspoň jeden konštruktor. Ak nie je definovaný žiadny, Java poskytuje predvolený konštruktor bez argumentov, ktorý volá nadradený konštruktor.
Inicializujte objekt pomocou metódy/funkcie
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(); } }
Výstup
Software name is: Visual Studio Software price is: 0.0
Spôsoby, ako vytvoriť objekt v jazyku Java
Java podporuje štyri štandardné prístupy.
1. Použitie nového kľúčového slova
Najpriamejší spôsob vytvorenia objektu.
Java// creating object of class Test Test t = new Test();
2. Použitie odrazu
Používa sa na dynamické načítanie tried, ako je vidieť v rámcoch ako 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(); } } }
Výstup
Student@1dbd16a6
3. Použitie metódy clone().
clone() vytvorí kópiu existujúceho objektu. Trieda musí implementovať 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(); } } }
Výstup
GeeksForGeeks
4. Použitie deserializácie
De-serializácia je technika čítania objektu z uloženého stavu v súbore. Objekt je znovu vytvorený z uloženého toku bajtov.
Pozri Serializácia/De-serializácia v Jave .
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(); } } }
Výstup
Student: Alice
Jeden odkaz môže ukazovať na rôzne objekty v rôznych časoch.
JavaTest test = new Test(); test = new Test();
Pri dedení je bežné používať rodičovský odkaz pre podradené objekty.
JavaAnimal obj = new Dog(); obj = new Cat();
Nereferencované objekty sa stanú vhodnými na zber odpadu.
Anonymné objekty
Anonymné objekty sa vytvárajú bez odkazu a okamžite sa používajú na jednorazové operácie.
- Žiadna referenčná premenná: Objekt nemožno znova použiť.
- Vytvorený a použitý okamžite šetrí pamäť pre krátkodobé úlohy.
- Bežné pri spracovaní udalostí (napr. kliknutia na tlačidlo).
new Dog('Max' 'Labrador' 3 'Black').getName();
Bežné pri spracovávaní udalostí používateľského rozhrania.
Vytvoriť kvíz