V Javě tvoří třídy a objekty základ objektově orientovaného programování (OOP). Pomáhají modelovat entity reálného světa a organizovat kód strukturovaným způsobem.
- Třída je plán používaný k vytváření objektů, které sdílejí společné vlastnosti a chování.
- Objekt je instancí třídy. Představuje konkrétní entitu vytvořenou ze šablony třídy.
Například Pes je třída Tommy je objekt této třídy.
Třídy a předměty (zde pes je třída a Bobby je objekt)Třída Java
Třída je plán, který definuje data a chování objektů. Seskupuje příbuzné obory a metody do jednoho celku. Paměť pro její členy je alokována pouze při vytvoření objektu.
matematika náhodná java
- Funguje jako šablona pro vytváření objektů se sdílenou strukturou.
- Nezabírá paměť pro pole až do vytvoření instance.
- Může obsahovat pole metod konstruktory vnořené třídy a rozhraní.
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 objekty
Objekt je instancí třídy vytvořené pro přístup k jejím datům a operacím. Každý objekt má svůj vlastní stav.
- Stát : Hodnoty uložené v polích.
- Chování : Akce definované pomocí metod.
- Identita : Rozlišuje jeden objekt od druhého.
Objekty odrážejí položky skutečného světa, jako je zákaznický produkt nebo kruh. Neprimitivní objekty jsou uloženy na hromadě, zatímco jejich reference zůstávají v zásobníku.
Java Objects (příklad psů)Objektová instance
Vytváření objektu se nazývá konkretizace. Všechny instance třídy sdílejí strukturu a chování při ukládání různých hodnot stavu.
Java Object DeclarationProhlášení:
Pes tuffy;
Toto pouze deklaruje referenci. Objekt není vytvořen a odkaz má hodnotu null.
Inicializace:
tuffy = new Dog('Tuffy' 'Papillon' 5 'White');
InicializaceOperátor new alokuje paměť a vyvolá konstruktor.
Příklad: Definování a použití třídy
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á třída má alespoň jeden konstruktor. Pokud není definován žádný, Java poskytuje výchozí konstruktor bez argumentů, který volá nadřazený konstruktor.
Inicializujte objekt pomocí metody/funkce
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
Způsoby, jak vytvořit objekt v Javě
Java podporuje čtyři standardní přístupy.
1. Použití nového klíčového slova
Nejpřímější způsob, jak vytvořit objekt.
podzemnice olejná vs arašídyJava
// creating object of class Test Test t = new Test();
2. Použití reflexe
Používá se pro dynamické načítání třídy, jak je vidět ve frameworkech jako 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žití metody clone().
clone() vytvoří kopii existujícího objektu. Třída musí implementovat 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žití deserializace
De-serializace je technika čtení objektu z uloženého stavu v souboru. Objekt je znovu vytvořen z uloženého byte streamu.
příklady java kódu
Viz Serializace/De-serializace v Javě .
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 ukazovat na různé objekty v různých časech.
JavaTest test = new Test(); test = new Test();
Při dědění je běžné používat odkaz na rodiče pro podřízené objekty.
JavaAnimal obj = new Dog(); obj = new Cat();
Neodkazované objekty se stanou způsobilými pro sběr odpadu.
Anonymní objekty
Anonymní objekty jsou vytvářeny bez reference a okamžitě použity pro jednorázové operace.
- Žádná referenční proměnná: Objekt nelze znovu použít.
- Vytvořeno a použito okamžitě šetří paměť pro krátkodobé úkoly.
- Běžné při zpracování událostí (např. kliknutí na tlačítka).
new Dog('Max' 'Labrador' 3 'Black').getName();
Běžné při zpracování událostí uživatelského rozhraní.
Vytvořit kvíz