logo

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.

Class_Object_example' title=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í.
Java
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.

Objekty v Javě' loading='lazy' title=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.

Deklarace objektů v Javě' loading='lazy' title=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');

Třídy-a-objekty-v-java-3-768' loading='lazy' title=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.

podzemnice olejná vs arašídy
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.

příklady java kódu

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).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Běžné při zpracování událostí uživatelského rozhraní.

Vytvořit kvíz