logo

Clase și obiecte în Java

În Java, clasele și obiectele formează baza programării orientate pe obiecte (OOP). Ele ajută la modelarea entităților din lumea reală și la organizarea codului într-un mod structurat.

  • O clasă este un plan folosit pentru a crea obiecte care au proprietăți și comportament comune.
  • Un obiect este o instanță a unei clase. Reprezintă o entitate specifică creată din șablonul de clasă.

De exemplu Câinele este o clasă Tommy este un obiect al acelei clase.

Class_Object_example' title=Clase și obiecte (Aici câinele este clasa și Bobby este obiectul)

Clasa Java

O clasă este un plan care definește datele și comportamentul pentru obiecte. Grupează domenii și metode înrudite într-o singură unitate. Memoria pentru membrii săi este alocată numai atunci când este creat un obiect.



  • Acționează ca un șablon pentru a crea obiecte cu structură partajată.
  • Nu ocupă memorie pentru câmpuri până la instanțiere.
  • Poate conține câmpuri metode constructori imbricate clase și interfețe.
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);  } } 

Ieșire
10 Alice 

Obiecte Java

Un obiect este o instanță a unei clase create pentru a-și accesa datele și operațiunile. Fiecare obiect are propria sa stare.

  • Stat : Valori stocate în câmpuri.
  • Comportament : Acțiuni definite prin metode.
  • Identitate : Distinge un obiect de altul.

Obiectele oglindesc articole din lumea reală, cum ar fi produsul clientului sau cercul. Obiectele non-primitive sunt stocate pe heap în timp ce referințele lor rămân pe stivă.

Obiecte în Java' loading='lazy' title=Obiecte Java (Exemplu de câini)

Instanciarea obiectului

Crearea unui obiect este cunoscută ca instanțiere. Toate instanțele unei clase împărtășesc structura și comportamentul în timp ce stochează valori diferite de stare.

Declararea obiectelor în Java' loading='lazy' title=Declarație de obiect Java

Declaraţie:

tuf de câine;

Aceasta declară doar o referință. Obiectul nu este creat și referința este nulă.

Inițializare:

tuffy = new Dog('Tuffy' 'Papillon' 5 'White');

Clase-și-Obiecte-în-java-3-768' loading='lazy' title=Inițializare

Noul operator alocă memorie și invocă constructorul.

Exemplu: definirea și utilizarea unei clase

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);  } } 

Ieșire
Name is: tuffy Breed age and color are: papillon 5 white 

Nota: Fiecare clasă are cel puțin un constructor. Dacă nu este definit niciunul, Java oferă un constructor implicit fără argument care apelează constructorul părinte.

Inițializați obiectul utilizând Metoda/Funcția

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();  } } 

Ieșire
Software name is: Visual Studio Software price is: 0.0 

Modalități de a crea obiecte în Java

Java acceptă patru abordări standard.

1. Utilizarea unui cuvânt cheie nou

Cel mai direct mod de a crea un obiect.

Java
// creating object of class Test  Test t = new Test(); 

2. Folosind Reflection

Folosit pentru încărcarea dinamică a clasei, așa cum se vede în cadre precum 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();  }  } } 

Ieșire
Student@1dbd16a6 

3. Folosind metoda clone().

clone() creează o copie a unui obiect existent. Clasa trebuie să implementeze 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();  }  } } 

Ieșire
GeeksForGeeks 

4. Utilizarea deserializării

Deserializarea este o tehnică de citire a unui obiect din starea salvată într-un fișier. Obiectul este recreat dintr-un flux de octeți stocat.

Consultați Serializare/De-serializare în Java .

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(); }  } } 

Ieșire
Student: Alice 

O singură referință poate indica diferite obiecte în momente diferite.

Java
Test test = new Test(); test = new Test(); 

În moștenire este obișnuit să se folosească o referință părinte pentru obiectele copil.

Java
Animal obj = new Dog(); obj = new Cat(); 

Obiectele fără referință devin eligibile pentru colectarea gunoiului.

Obiecte anonime

Obiectele anonime sunt create fără referință și utilizate imediat pentru operațiuni unice.

  • Fără variabilă de referință: nu se poate reutiliza obiectul.
  • Creat și utilizat salvează instantaneu memorie pentru sarcini de scurtă durată.
  • Frecvent în gestionarea evenimentelor (de exemplu, clicuri pe butoane).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Frecvent în gestionarea evenimentelor UI.

Creați un test