logo

Razredi in objekti v Javi

V Javi so razredi in objekti temelj objektno usmerjenega programiranja (OOP). Pomagajo modelirati entitete iz resničnega sveta in organizirajo kodo na strukturiran način.

  • Razred je načrt, ki se uporablja za ustvarjanje predmetov, ki imajo skupne lastnosti in vedenje.
  • Objekt je primerek razreda. Predstavlja specifično entiteto, ustvarjeno iz predloge razreda.

Na primer Pes je razred Tommy je objekt tega razreda.

spajanje razvrščanje java
Class_Object_example' title=Razredi in predmeti (tukaj je pes razred, Bobby pa predmet)

Java razred

Razred je načrt, ki definira podatke in obnašanje objektov. Združuje povezana področja in metode v eno samo enoto. Pomnilnik za njegove člane se dodeli šele, ko je objekt ustvarjen.



  • Deluje kot predloga za ustvarjanje predmetov s skupno strukturo.
  • Ne zasede pomnilnika za polja do instanciacije.
  • Lahko vsebuje polja, metode, konstruktorje, ugnezdene razrede in vmesnike.
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);  } } 

Izhod
10 Alice 

Java predmeti

Objekt je primerek razreda, ustvarjen za dostop do njegovih podatkov in operacij. Vsak objekt ima svoje stanje.

  • Država : Vrednosti, shranjene v poljih.
  • Vedenje : Dejanja, opredeljena z metodami.
  • Identiteta : Razlikuje en predmet od drugega.

Predmeti odsevajo predmete iz resničnega sveta, kot je izdelek stranke ali krog. Neprimitivni objekti so shranjeni na kupu, medtem ko njihove reference ostanejo na skladu.

Objekti v Javi' loading='lazy' title=Objekti Java (primer psov)

Instanciacija predmeta

Ustvarjanje predmeta je znano kot instanciranje. Vsi primerki razreda imajo skupno strukturo in vedenje, medtem ko shranjujejo različne vrednosti stanja.

Deklariranje objektov v Javi' loading='lazy' title=Deklaracija objekta Java

Izjava:

Pasji tuffy;

To samo deklarira referenco. Objekt ni ustvarjen in sklic je ničelen.

Inicializacija:

kaj je desktop ini

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

Razredi-in-predmeti-v-javi-3-768' loading='lazy' title=Inicializacija

Operator new dodeli pomnilnik in prikliče konstruktor.

Primer: Definiranje in uporaba razreda

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

Izhod
Name is: tuffy Breed age and color are: papillon 5 white 

Opomba: Vsak razred ima vsaj enega konstruktorja. Če nobena ni definirana, Java nudi privzeti konstruktor brez argumentov, ki kliče nadrejeni konstruktor.

kako prekličeš izbiro v gimp

Inicializirajte predmet z metodo/funkcijo

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

Izhod
Software name is: Visual Studio Software price is: 0.0 

Načini ustvarjanja predmeta v Javi

Java podpira štiri standardne pristope.

1. Uporaba nove ključne besede

Najbolj neposreden način za ustvarjanje predmeta.

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

2. Uporaba refleksije

Uporablja se za dinamično nalaganje razredov, kot je vidno v ogrodjih, kot je 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();  }  } } 

Izhod
Student@1dbd16a6 

3. Uporaba metode clone().

clone() ustvari kopijo obstoječega predmeta. Razred mora izvajati 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();  }  } } 

Izhod
GeeksForGeeks 

4. Uporaba deserializacije

Deserializacija je tehnika branja predmeta iz shranjenega stanja v datoteki. Objekt je ponovno ustvarjen iz shranjenega toka bajtov.

Nanašajte se na Serializacija/de-serializacija v Javi .

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

Izhod
Student: Alice 

En sam sklic lahko kaže na različne predmete ob različnih časih.

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

Pri dedovanju je običajno uporabiti nadrejeno referenco za podrejene objekte.

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

Nereferencirani objekti postanejo primerni za zbiranje smeti.

topologija omrežja

Anonimni predmeti

Anonimni objekti so ustvarjeni brez sklicevanja in takoj uporabljeni za enkratne operacije.

  • Ni referenčne spremenljivke: predmeta ni mogoče ponovno uporabiti.
  • Ustvarjeno in uporabljeno takoj shrani pomnilnik za kratkotrajna opravila.
  • Pogost pri obravnavanju dogodkov (npr. kliki gumbov).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Pogosti pri obravnavanju dogodkov uporabniškega vmesnika.

Ustvari kviz