Třídy a objekty v Javě
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.
- 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 Declaration Prohlášení:
Pes tuffy;
Toto pouze deklaruje referenci. Objekt není vytvořen a odkaz má hodnotu null.
Inicializace:
tuffy = new Dog('Tuffy' 'Papillon' 5 'White');
Inicializace Operátor new alokuje paměť a vyvolá konstruktor.
Příklad: Definování a použití třídy
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 ); } }
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
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 (); } }
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.
Java // 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.
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 (); } } }
Výstup
Student@1dbd16a6
3. Použití metody clone().
clone() vytvoří kopii existujícího objektu. Třída musí implementovat 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 (); } } }
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.
Viz Serializace/De-serializace v Javě .
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 (); } } }
Výstup
Student: Alice
Jeden odkaz může ukazovat na různé objekty v různých časech.
Java Test test = new Test (); test = new Test ();
Při dědění je běžné používat odkaz na rodiče pro podřízené objekty.
Java Animal 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