logo

Klases un objekti Java valodā

Java klasēs un objekti veido objektorientētās programmēšanas (OOP) pamatu. Tie palīdz modelēt reālās pasaules entītijas un sakārtot kodu strukturētā veidā.

prioritārā rinda
  • Klase ir plāns, ko izmanto, lai izveidotu objektus, kuriem ir kopīgas īpašības un uzvedība.
  • Objekts ir klases gadījums. Tas apzīmē noteiktu entītiju, kas izveidota no klases veidnes.

Piemēram, Suns ir klase Tomijs ir šīs klases objekts.

Class_Object_example' title=Klases un objekti (šeit suns ir klase un Bobijs ir priekšmets)

Java klase

Klase ir projekts, kas nosaka objektu datus un uzvedību. Tas sagrupē saistītos laukus un metodes vienā vienībā. Atmiņa tās dalībniekiem tiek piešķirta tikai tad, kad tiek izveidots objekts.



  • Darbojas kā veidne, lai izveidotu objektus ar kopīgu struktūru.
  • Neaizņem atmiņu laukiem līdz instancē.
  • Var saturēt lauku metodes konstruktoru ligzdotās klases un saskarnes.
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);  } } 

Izvade
10 Alice 

Java objekti

Objekts ir klases gadījums, kas izveidots, lai piekļūtu tā datiem un darbībām. Katram objektam ir savs stāvoklis.

  • valsts : laukos saglabātās vērtības.
  • Uzvedība : darbības, kas noteiktas, izmantojot metodes.
  • Identitāte : atšķir vienu objektu no cita.

Objekti atspoguļo reālās pasaules vienumus, piemēram, klienta produktu vai apli. Neprimitīvi objekti tiek glabāti kaudzē, kamēr to atsauces paliek kaudzē.

Objekti Java valodā' loading='lazy' title=Java objekti (suņu piemērs)

Objekta inscenēšana

Objekta izveide ir pazīstama kā instantiācija. Visi klases gadījumi koplieto struktūru un uzvedību, vienlaikus saglabājot dažādas stāvokļa vērtības.

Objektu deklarēšana Java valodā' loading='lazy' title=Java objektu deklarācija

Deklarācija:

Suņu pūkains;

Tas tikai deklarē atsauci. Objekts netiek izveidots, un atsauce ir nulle.

cpld vs fpga

Inicializācija:

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

Classes-and-Objects-java-3-768' loading='lazy' title=Inicializācija

Jaunais operators piešķir atmiņu un izsauc konstruktoru.

Piemērs: klases definēšana un izmantošana

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

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

Piezīme: Katrā klasē ir vismaz viens konstruktors. Ja nav definēts, Java nodrošina noklusējuma konstruktoru bez argumentiem, kas izsauc vecāku konstruktoru.

Inicializējiet objektu, izmantojot metodi/funkciju

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

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

Objektu izveides veidi Java

Java atbalsta četras standarta pieejas.

1. Jauna atslēgvārda izmantošana

Tiešākais veids, kā izveidot objektu.

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

2. Izmantojot Reflection

Izmanto dinamiskai klašu ielādei, kā redzams tādos ietvaros kā Spring.

atsperu moduļi
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();  }  } } 

Izvade
Student@1dbd16a6 

3. Izmantojot clone() metodi

clone() izveido esoša objekta kopiju. Klasei jāievieš 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();  }  } } 

Izvade
GeeksForGeeks 

4. Deserializācijas izmantošana

Deserializācija ir paņēmiens objekta nolasīšanai no saglabātā stāvokļa failā. Objekts tiek atkārtoti izveidots no saglabātās baitu straumes.

Atsaucieties uz Serializācija/de-serializācija 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(); }  } } 

Izvade
Student: Alice 

Viena atsauce var norādīt uz dažādiem objektiem dažādos laikos.

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

Mantojumā ir ierasts izmantot vecāku atsauci bērnu objektiem.

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

Neatsauces objekti kļūst piemēroti atkritumu savākšanai.

kartes java iterators

Anonīmi objekti

Anonīmi objekti tiek izveidoti bez atsauces un tiek nekavējoties izmantoti vienreizējām darbībām.

  • Nav atsauces mainīgā: objektu nevar izmantot atkārtoti.
  • Izveidots un izmantots uzreiz ietaupa atmiņu īslaicīgiem uzdevumiem.
  • Bieži sastopams notikumu apstrādē (piemēram, pogu klikšķi).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Izplatīts lietotāja saskarnes notikumu apstrādē.

Izveidojiet viktorīnu