logo

Klasės ir objektai Java

Java klasės ir objektai sudaro objektinio programavimo (OOP) pagrindą. Jie padeda modeliuoti realaus pasaulio objektus ir struktūriškai tvarkyti kodą.

  • Klasė yra planas, naudojamas objektams, turintiems bendrų savybių ir elgesio, kurti.
  • Objektas yra klasės egzempliorius. Tai reiškia konkretų objektą, sukurtą iš klasės šablono.

Pavyzdžiui, šuo yra klasė Tommy yra tos klasės objektas.

Class_Object_example' title=Klasės ir objektai (čia šuo yra klasė, o Bobis yra objektas)

Java klasė

Klasė yra planas, apibrėžiantis objektų duomenis ir elgesį. Jis sugrupuoja susijusias sritis ir metodus viename vienete. Atmintis jos nariams skiriama tik tada, kai sukuriamas objektas.



  • Veikia kaip šablonas kuriant objektus su bendra struktūra.
  • Iki paleidimo neužima laukų atminties.
  • Gali būti laukų metodų konstruktorių įdėtos klasės ir sąsajos.
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);  } } 

Išvestis
10 Alice 

Java objektai

Objektas yra klasės egzempliorius, sukurtas pasiekti jo duomenis ir operacijas. Kiekvienas objektas turi savo būseną.

  • valstybė : laukuose saugomos reikšmės.
  • Elgesys : veiksmai, apibrėžti metodais.
  • Tapatybė : Atskiria vieną objektą nuo kito.

Objektai atspindi realaus pasaulio elementus, pvz., kliento produktą ar ratą. Neprimityvūs objektai saugomi krūvoje, o jų nuorodos lieka krūvoje.

Objektai Java' loading='lazy' title=Java objektai (šunų pavyzdys)

Objekto egzistavimas

Objekto kūrimas yra žinomas kaip egzistavimas. Visi klasės atvejai dalijasi struktūra ir elgesiu išsaugant skirtingas būsenos reikšmes.

Objektų deklaravimas Java' loading='lazy' title=Java objekto deklaracija

Deklaracija:

Šunų pūkas;

gimė Freddie Mercury

Tai tik deklaruoja nuorodą. Objektas nesukuriamas, o nuoroda negalioja.

Inicijavimas:

tuffy = naujas Šuo ('Tuffy' 'Papillon' 5 'Baltas');

Klasės ir objektai Java-3-768' loading='lazy' title=Inicijavimas

Naujasis operatorius paskirsto atmintį ir iškviečia konstruktorių.

globalūs kintamieji js

Pavyzdys: klasės apibrėžimas ir naudojimas

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

Išvestis
Name is: tuffy Breed age and color are: papillon 5 white 

Pastaba: Kiekviena klasė turi bent vieną konstruktorių. Jei neapibrėžta, „Java“ pateikia numatytąjį beargumentinį konstruktorių, kuris iškviečia pagrindinį konstruktorių.

Inicijuokite objektą naudodami metodą / funkciją

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

Išvestis
Software name is: Visual Studio Software price is: 0.0 

Būdai sukurti objektą Java

„Java“ palaiko keturis standartinius metodus.

1. Naujo raktinio žodžio naudojimas

Pats tiesiausias būdas sukurti objektą.

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

2. Refleksijos naudojimas

Naudojamas dinaminiam klasių įkėlimui, kaip matyti tokiose sistemose kaip 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();  }  } } 

Išvestis
Student@1dbd16a6 

3. Clono() metodo naudojimas

clone() sukuria esamo objekto kopiją. Klasė turi įdiegti Cloneable.

kodėl žymeklio sąsaja java
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();  }  } } 

Išvestis
GeeksForGeeks 

4. Deserializacijos naudojimas

Išserializavimas yra būdas nuskaityti objektą iš išsaugotos būsenos faile. Objektas atkuriamas iš saugomo baitų srauto.

Nurodykite Serializavimas / de-serializavimas 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(); }  } } 

Išvestis
Student: Alice 

Viena nuoroda gali nurodyti skirtingus objektus skirtingu laiku.

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

Paveldėjimo atveju antriniams objektams įprasta naudoti pirminę nuorodą.

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

Nenuorodiniai objektai tampa tinkami šiukšlių išvežimui.

Anoniminiai objektai

Anoniminiai objektai sukuriami be nuorodos ir naudojami iš karto atliekant vienkartines operacijas.

  • Nėra nuorodos kintamojo: negalima pakartotinai naudoti objekto.
  • Sukurta ir naudojama akimirksniu taupo atmintį trumpalaikėms užduotims atlikti.
  • Įprasta tvarkant įvykius (pvz., mygtukų paspaudimus).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Įprasta NS įvykių tvarkyme.

Sukurti viktoriną