logo

Klase i objekti u Javi

U Javi klase i objekti čine temelj objektno orijentiranog programiranja (OOP). Oni pomažu modelirati entitete stvarnog svijeta i organizirati kod na strukturiran način.

10 od 60
  • Klasa je nacrt koji se koristi za stvaranje objekata koji dijele zajednička svojstva i ponašanje.
  • Objekt je instanca klase. Predstavlja određeni entitet kreiran iz predloška klase.

Na primjer Pas je klasa Tommy je objekt te klase.

Primjer_objekta_klase' title=Klase i objekti (ovdje je pas klasa, a Bobby objekt)

Java klasa

Klasa je nacrt koji definira podatke i ponašanje objekata. Grupira srodna polja i metode u jednu jedinicu. Memorija za njegove članove se dodjeljuje samo kada se kreira objekt.



  • Djeluje kao predložak za stvaranje objekata sa zajedničkom strukturom.
  • Ne zauzima memoriju za polja do instanciranja.
  • Može sadržavati polja metode konstruktore ugniježđene klase i sučelja.
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);  } } 

Izlaz
10 Alice 

Java objekti

Objekt je instanca klase stvorena za pristup njezinim podacima i operacijama. Svaki objekt ima vlastito stanje.

  • Stanje : Vrijednosti pohranjene u poljima.
  • Ponašanje : Akcije definirane kroz metode.
  • Identitet : Razlikuje jedan predmet od drugog.

Objekti odražavaju stavke iz stvarnog svijeta kao što su korisnički proizvod ili krug. Neprimitivni objekti pohranjuju se na gomilu dok njihove reference ostaju na hrpi.

Objekti u Javi' loading='lazy' title=Java objekti (primjer pasa)

Instancija objekta

Stvaranje objekta poznato je kao instanciranje. Sve instance klase dijele strukturu i ponašanje dok pohranjuju različite vrijednosti stanja.

Deklariranje objekata u Javi' loading='lazy' title=Deklaracija Java objekta

deklaracija:

Pas tuffy;

Ovo samo deklarira referencu. Objekt nije kreiran i referenca je null.

vlc media player preuzimanje youtube

Inicijalizacija:

Klase-i-objekti-u-javi-3-768' loading='lazy' title=Inicijalizacija

Novi operator dodjeljuje memoriju i poziva konstruktor.

Primjer: Definiranje i korištenje klase

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

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

Bilješka: Svaka klasa ima najmanje jednog konstruktora. Ako nijedan nije definiran, Java nudi zadani konstruktor bez argumenata koji poziva roditeljski konstruktor.

Inicijalizirajte objekt pomoću metode/funkcije

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

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

Načini stvaranja objekta u Javi

Java podržava četiri standardna pristupa.

1. Korištenje nove ključne riječi

Najizravniji način stvaranja objekta.

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

2. Korištenje odraza

Koristi se za dinamičko učitavanje klase kao što se vidi u okvirima kao što je Spring.

što je sučelje
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();  }  } } 

Izlaz
Student@1dbd16a6 

3. Korištenje metode clone().

clone() stvara kopiju postojećeg objekta. Klasa mora implementirati 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();  }  } } 

Izlaz
GeeksForGeeks 

4. Korištenje deserijalizacije

Deserijalizacija je tehnika čitanja objekta iz spremljenog stanja u datoteci. Objekt se ponovno stvara iz pohranjenog toka bajtova.

Odnosi se na Serijalizacija/De-serijalizacija u 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(); }  } } 

Izlaz
Student: Alice 

Jedna referenca može upućivati ​​na različite objekte u različito vrijeme.

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

U nasljeđivanju je uobičajeno koristiti roditeljsku referencu za podređene objekte.

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

Nereferencirani objekti postaju podobni za skupljanje smeća.

java je instanceof

Anonimni objekti

Anonimni objekti stvaraju se bez reference i odmah se koriste za jednokratne operacije.

  • Nema referentne varijable: nije moguće ponovno koristiti objekt.
  • Stvoreno i korišteno trenutno štedi memoriju za kratkotrajne zadatke.
  • Uobičajeno u rukovanju događajima (npr. klikovi gumba).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Uobičajeno u rukovanju događajima korisničkog sučelja.

Napravi kviz