java class vs object how use class
V tomto tutoriálu budeme podrobně diskutovat o jednom z konceptů OOPS. Prozkoumáme vše o Java Class a Object spolu s příklady:
Víme, že objektově orientované programování zdůrazňuje data a tak se točí kolem entit zvaných objekty. Třídy fungují jako plány těchto objektů.
Podívejme se, jak vytvořit třídu a její komponenty. Dále se v tomto tutoriálu naučíme vytvářet a inicializovat objekty v Javě pomocí příkladů programování.
jak spustit soubor .jar Windows 10
=> Navštivte zde exkluzivní sérii výukových programů Java.
Co se naučíte:
Třídy a objekty v Javě
V Javě jsou všechny funkce, atributy, metody atd. Propojeny s třídami a objekty. Nemůžeme psát program Java pouze s hlavní funkcí, aniž bychom deklarovali třídu způsobem, který můžeme dělat v C ++.
Například, pokud chceme na vozidlo napsat program, vozidlo je objekt v reálném čase. Ale vozidla mohou být různých typů. To znamená, že vozidlo má atribut typu, který může nabývat různých hodnot, jako je auto, nákladní automobil, skútr, kolo atd.
Takže způsob, jakým vyjadřujeme objekt vozidla v Javě, je vytvoření třídy „Vozidlo“ a následné definování jeho různých atributů. Pak můžeme deklarovat různé objekty třídy vozidel, jako je auto, kolo atd.
Uvnitř třídy můžeme definovat vlastnosti vozidla jako atributy třídy (datové členy) a metody jako startVehicle (), stopVehicle () atd.
Tímto způsobem, abychom vyjádřili i nejmenší entitu v Javě, musíme nejprve identifikovat objekt a poté definovat jeho plán nebo třídu.
Pojďme se tedy nejprve naučit vše o třídách a objektech a pak přejít k dalším konceptům OOP v Javě.
Třída v Javě
K vývoji programu v Javě využíváme objekty a třídy. Zatímco třída v Javě je pouze logická jednotka, objekt v Javě je fyzická i logická entita.
Co je to objekt v Javě?
Objekt je entita, která má stav a vykazuje chování. Například, jakýkoli skutečný subjekt, jako je pero, notebook, mobil, stůl, židle, auto atd., je předmětem. Všechny tyto objekty jsou buď fyzické (hmotné), nebo logické (nehmotné).
Nehmotnými objekty jsou většinou letecký systém, bankovní systém atd. Jedná se o logické entity, které mají určitý stav a chování.
Každý objekt má následující hlavní vlastnosti:
- Identita: Jedinečné ID definuje identitu objektu. Normální uživatel toto ID nevidí, ale interně JVM používá toto ID k jedinečné identifikaci objektu.
- Stát: Definuje aktuální data v objektu nebo hodnotu objektu.
- Chování: Tato funkce představuje funkčnost (chování) objektu. Například, objekt vozidla, o kterém jsme diskutovali výše, se chová jako start, stop atd.
Když definujeme třídu, vrátíme se k definici objektu.
Co je tedy třída?
Víme, že hlavní složkou objektově orientovaného programování je objekt. Pokud chceme postavit konkrétní typ objektu, potřebujeme podrobný plán. Tento plán nám poskytne sadu pokynů, které nám pomohou postavit objekt.
Například, řekněme, že chceme postavit dům. Dům zde je objekt. Ke stavbě domu potřebujeme počáteční plán domu. Nemůžeme jít přímo postavit dům, jak chceme.
Tady přichází na řadu třída. Abychom mohli postavit objekt nebo entitu v reálném životě, nejprve budeme mít plán, který určuje obsah a chování objektu. Toto je známé jako třída v objektově orientovaném programování.
Třídu lze tedy definovat jako „ plán nebo šablonu a definuje stav a chování objektu “.
Můžeme také zobrazit třídu jako skupinu objektů. Tato skupina má některé vlastnosti, které jsou společné mezi všemi objekty.
Podívejme se, jak vytvořit třídu v Javě.
Jak vytvořit třídu v Javě
Obecná syntaxe třídy definice třídy v Javě je:
class extends implements interface_name> { //fields; //constructors //methods; //blocks }
Výše uvedená obecná deklarace třídy je znázorněna v níže uvedeném diagramu s ukázkovou deklarací třídy:
Všimněte si, že nadtřída a rozhraní v deklaraci třídy jsou volitelné. Můžeme si vybrat, že budeme mít samostatnou třídu, aniž bychom ji rozšiřovali z jiné nadtřídy nebo implementovali jakékoli rozhraní.
Výše uvedená obecná definice také ukázala komponenty, které mohou být přítomny v definici třídy.
Součásti třídy
Níže jsou uvedeny komponenty třídy.
Jak je znázorněno ve výše uvedeném diagramu, třída Java obsahuje následující komponenty:
- Pole
- Metody
- Konstruktéři
- Bloky
- Vnořená třída a rozhraní
Dále probereme první tři komponenty. Tyto komponenty jsou vyžadovány v jakékoli třídě. Vnořené třídy a rozhraní jsou úplně jiné téma a budou popsány v našich pozdějších cvičeních.
Než zahájíme diskusi o komponentách třídy, nejdříve definujeme třídu Customer_Account
class Customer_Account { static String bank_name; //class variable long customer_accountNo; //instance variable String customer_name; //instance variable //constructor Customer_Account (long accountnum, String accName){ customer_accountNo = accountnum; customer_name = accName; } //method void printInfo(){ System.out.println ('Customer Account Details:'); System.out.println ('Customer Account Number: ' + customer_accountNo); System.out.println (' Customer Name: '+customer_name); } }
Pole
Pole jsou proměnné nebo data třídy. Pole se v Javě nazývají také jako členské proměnné. Pojmy pole a proměnné používáme zaměnitelně.
Pole třídy jsou obvykle dvou typů:
# 1) Proměnné třídy: Proměnné třídy jsou deklarovány slovem „statické“, takže se jedná o statické proměnné. To znamená, že tento typ proměnné má pouze jednu kopii na třídu, bez ohledu na to, kolik instancí nebo objektů je pro danou třídu k dispozici.
# 2) Proměnné instance: Jedná se o opak proměnných třídy. Datové členy se nazývají proměnné instance, protože tyto proměnné mají pro každou instanci třídy za běhu přidělenou samostatnou paměť.
Ve výše uvedené definici třídy jsme si ukázali proměnné třídy i instance. Proměnná „bank_name“ deklarovaná pomocí statického modifikátoru je proměnnou třídy. Další dvě proměnné „customer_accNo“ a „customer_name“ jsou proměnné instance.
Stavitel
Konstruktory jsou speciální metody, které se obecně používají k inicializaci instance třídy. Konstruktory nemají návratový typ, mají stejný název jako třída a mohou nebo nemusí obsahovat parametry.
Ve výše uvedené definici třídy máme jednoho konstruktora.
Customer_Account (long accountnum, String accName)
Další informace o konstruktérech se dozvíme v následujících výukách.
Metoda
Metoda ve třídě Java je funkce, která definuje chování objektu a jeho členů.
Metoda třídy je vytvořena stejným způsobem, jakým vytváříme běžné metody v programu. Uvnitř metody třídy můžeme použít všechny konstrukce a funkce poskytované Javou.
V naší ukázkové definici třídy máme metodu „printInfo“, která zobrazuje různé datové členy třídy.
Metoda třídy Java má obvykle následující prototyp:
method_name(parameter list…){ //code blocks }
Metody třídy jsou přístupné instancí třídy pomocí operátoru tečky. Takže pokud vytvoříme instanci acc výše uvedené třídy „Customer_Account“, pak můžeme přistupovat k printInfo pomocí níže uvedeného řádku kódu.
acc.printInfo();
Pokud je access_modifier statický, nepotřebujeme instanci pro přístup k metodě. Název třídy můžeme použít přímo pro přístup k metodě jako,
Custome_Account.printInfo ();
Příklad třídy Java
Implementujme jednoduchý příklad k předvedení třídy a objektu v Javě.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; } class Main{ public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Výstup
Výše uvedený program deklaruje třídu Student. Má tři instance proměnných, viz. student_id, student_name a student_marks.
Poté definujeme třídu Main, ve které deklarujeme objekt třídy Student s názvem student_object. Potom pomocí tečkového operátoru přistupujeme k proměnným instance a tiskneme jejich hodnoty.
Výše uvedený program je příkladem hlavní metody mimo třídu.
V níže uvedeném příkladu budeme mít ve třídě hlavní metodu.
jak otevřít soubor jar s Java v systému Windows 10
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Výstup
Výše uvedený program je stejný jako předchozí program, kromě toho, že hlavní metoda je ve třídě Student.
Objekt v Javě
Nyní máme dostatek znalostí o třídách v Javě, můžeme objekt předefinovat z hlediska třídy. Objekt je tedy „ instance třídy “. Vytvoříme tedy proměnnou nebo instanci typu název_třídy a bude pojmenována jako objekt.
Některé body, které si musíte pamatovat na objekt:
- Objekt je spolu s třídou považován za základní jednotku OOP.
- Objekt je jednotka runtime.
- Objekt je označován jako instance třídy.
- Objekt má chování a stav.
- Objekt přebírá všechny vlastnosti a atributy třídy, jejíž je instancí. Ale v každém okamžiku má každý objekt různé stavy nebo hodnoty proměnných.
- Objekt se používá k reprezentaci entity v reálném čase v softwarových aplikacích.
- Jedna třída může mít libovolný počet objektů.
- Objekty vzájemně interagují pomocí vyvolání metod.
Jak vytvořit instanci objektu
Deklarace objektu se také označuje jako vytváření instancí objektů v Javě. Deklarace objektu je stejná jako deklarace proměnné.
Například, třídu Customer_Account, kterou jsme deklarovali výše, lze použít k deklaraci objektu.
Proto deklarujeme nebo vytváříme instanci objektu Customer_Account následujícím způsobem:
Customer_Account account;
Výše uvedené prohlášení deklaruje nebo vytváří instanci objektu s názvem „účet“ třídy Customer_Account.
Všimněte si, že když vytvoříme instanci objektu třídy, měla by být třída přísně „konkrétní třídou“. Nemůžeme deklarovat objekt abstraktní třídy.
Výše uvedené prohlášení pouze deklaruje objekt. Tuto proměnnou nemůžeme použít k volání metod třídy nebo k nastavení hodnot členských proměnných. Je to proto, že jsme pro deklarovaný objekt nepřidělili žádnou paměť.
Abychom jej mohli dále používat, musíme objekt správně vytvořit.
Samotné vytvoření objektu se provádí inicializací objektů. Jakmile deklarujeme objekt, musíme ho inicializovat. Pak pouze my můžeme použít tento objekt pro přístup k proměnným členů a metodám třídy.
Jak vytvořit objekt
Můžeme vytvořit objekt v Javě pomocí následujících metod:
# 1) Použití nového klíčového slova
Můžeme inicializovat objekt pomocí nového klíčového slova. Tato metoda je nejčastěji používanou metodou k vytvoření nového objektu.
Například,vzhledem k třídě ABC můžeme vytvořit nový objekt třídy následujícím způsobem:
ABC myObj = new ABC ();
Ve výše uvedeném prohlášení je myObj nový objekt vytvořený pomocí nového operátoru. Objekt vytvořený pomocí této metody má počáteční hodnoty všech datových členů. Konstrukt ABC () následující za novým klíčovým slovem je výchozím konstruktorem třídy ABC.
Můžeme také definovat konstruktory s parametry a zavolat tento konstruktor pomocí nového klíčového slova, abychom vytvořili objekt s požadovanými hodnotami datových členů.
# 2) Použití metody Class.forName ()
Java poskytuje třídu s názvem „Třída“, která uchovává všechny informace o třídách a objektech v systému. K vytvoření objektu můžeme použít metodu forName () třídy ‘Class’. Musíme předat plně kvalifikovaný název třídy jako argument metodě forName.
Pak můžeme zavolat metodu newInstance (), která vrátí instanci třídy.
Následující řádky kódu to ukazují.
ABC myObj = Class.forName (“com.myPackage.ABC”).newInstance();
Výše uvedený příkaz vytvoří nový objekt myObj třídy ABC.
# 3) Metodou clone ()
Třída objektu v Javě poskytuje metodu clone (), která vrací klon nebo kopii objektu předaného jako argument metodě clone ().
Například,
ABC myobj1 = new ABC (); ABC testObj = (ABC) myobj1.clone ();
# 4) Deserializací
Java poskytuje techniku zvanou deserializace, při které čteme objekt z uloženého souboru. Budeme se učit deserializaci v samostatném tutoriálu.
Jak inicializovat objekt
V této části probereme metody inicializace objektu v Javě. Inicializace odkazuje na přiřazení hodnot datovým členům třídy. Níže uvádíme některé z metod, které se používají k inicializaci objektů v Javě.
# 1) Inicializujte objekt pomocí reference
Vytvořený referenční objekt se používá k ukládání hodnot v objektu. To se provádí jednoduše pomocí operátoru přiřazení.
Inicializace objektu pomocí odkazu je uvedena v programu níže.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; } class Main{ public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //initialization of class members using reference student_object.student_id = 101; student_object.student_name = 'Elena'; student_object.student_marks = 89.93; //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Výstup
Výše uvedený program deklaruje třídu Student s tříčlennými proměnnými. Pak v hlavní metodě vytvoříme objekt třídy Student pomocí nového klíčového slova. Poté přiřadíme data ke každému z členských polí objektu, jak je znázorněno v programu.
# 2) Inicializace objektu metodou
V tomto příkladu vytváříme dva objekty Student třídy a inicializujeme hodnotu na tyto objekty vyvoláním metody insertRecord. Metoda insertRecord je metodou člena třídy Student.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; //method to initialize class data members void initialize_object(int id, String name, double marks) { student_id = id; student_name = name; student_marks = marks; } } class Main{ public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //initialization of class members through method student_object.initialize_object(27, 'Stefan', 78.86); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Výstup
# 3) Inicializace objektu pomocí konstruktoru
Můžeme také inicializovat objekt pomocí konstruktoru.
Níže je uveden program pro demonstraci použití konstruktoru.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; //constructor for initialization Student(int id, String name, double marks) { student_id = id; student_name = name; student_marks = marks; } } class Main{ public static void main(String args()){ //create a Student object using new operator and initialize it with constructor Student student_object = new Student(27, 'Stefan', 78.86); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Výstup
V tomto programu třída` Student má parametrizovaný konstruktor, který převezme parametry a přiřadí je členským proměnným.
Objekt třídy Vs v Javě
Třída | Objekt |
---|---|
Pole člena třídy nemá žádné hodnoty. | Každý objekt má kopii polí členů a jejich přidružených hodnot. |
Třída je šablona nebo plán pro vytváření objektů. | Objekt je instancí třídy. |
Třída při vytváření nepřiděluje žádnou paměť. | Při vytvoření je objekt přidělena paměť. |
Třída je logická entita. | Objekt je fyzická entita. |
Třída je deklarována pomocí klíčového slova třídy. | Objekt je vytvořen pomocí nových metod forName () .newInstance (), clone (). |
Třída je skupina identických objektů. Např. Třída zvířat (). | Objekt je konkrétní entita. Např. Animals dog = new Animals (); |
Třídu lze deklarovat pouze jednou. | Třída může mít libovolný počet instancí nebo objektů. |
Často kladené otázky
Otázka č. 1) Jaký je rozdíl mezi třídou a objektem?
Odpovědět: Třída je šablona používaná k vytváření objektů. Objekt je instancí třídy. Zatímco třída je logická entita, objekt je fyzická entita. Každý objekt má stav, ve kterém mají všechny členské proměnné konkrétní hodnoty. Třída nemá stav.
Otázka 2) Co obsahuje třída Java?
Odpovědět: Třída Java, která funguje jako šablona nebo plán pro vytváření objektů, definuje vlastnosti nebo pole a chování nebo metody.
Otázka č. 3) Proč používáme třídy v Javě?
Odpovědět: Pomocí tříd a objektů můžeme modelovat reálné aplikace v Javě a efektivně je tak řešit. Objekty se stavem a chováním představují entity reálného světa a třídy fungují jako jejich plány. Proto pomocí tříd jako stavebních bloků můžeme modelovat jakoukoli složitou aplikaci.
Otázka č. 4) Vysvětlete třídu a objekt pomocí příkladu z reálného života.
Odpovědět: Vezmeme-li auto jako objekt, pak může mít auto atributy jako značka, barva, motor, počet kilometrů atd. Může mít také některé metody jako start (), stop (), applybrakes (). Můžeme tedy modelovat auto do softwarového objektu. Nyní může mít auto různé značky jako Maruti, Fiat atd.
Abychom reprezentovali všechny tyto modely automobilů, můžeme mít šablonu třídy, která bude obsahovat všechny běžné atributy a metody definované, abychom mohli vytvořit instanci této třídy a získat požadovaný objekt automobilu.
Auto v reálném životě tak lze snadno převést na objekt v Javě.
Závěr
V tomto kurzu jsme se naučili podrobnosti o třídách a objektech v Javě. Pokryli jsme definici třídy a objektu. V tomto výukovém programu je podrobně diskutována definice třídy, jejích součástí a příklady použití třídy v programu.
Také jsme se dozvěděli podrobnosti o objektech v Javě včetně jejich deklarace, vytvoření, inicializace atd. S příslušnými příklady programování.
Prozkoumali jsme hlavní rozdíly mezi třídou a objekty. V našich dalších výukových programech probereme typy tříd a konstruktory ve třídě, po kterých přejdeme na další témata.
=> Dávejte pozor na jednoduchou sérii školení Java zde.
Doporučené čtení
- Základy jazyka Java: Syntaxe jazyka Java, třída Java a základní koncepty Java
- Celé číslo Java a třída Java BigInteger s příklady
- Co je Java Vector | Výukový program Java Vector Class s příklady
- OOP Java: Úvod do objektově orientovaného programování v Javě
- Výukový program třídy Java Array - java.util.Arrays Class with examples
- Výukový program třídy skeneru Java s příklady
- Pole objektů v Javě: Jak vytvářet, inicializovat a používat
- Typy tříd v Javě: abstraktní, konkrétní, konečné, statické