logo

Luokat ja objektit Javassa

Javassa luokat ja objektit muodostavat Object-Oriented Programming (OOP) -perustan. Ne auttavat mallintamaan todellisia kokonaisuuksia ja järjestämään koodia jäsennellyllä tavalla.

  • Luokka on suunnitelma, jota käytetään luomaan objekteja, joilla on yhteisiä ominaisuuksia ja käyttäytymistä.
  • Objekti on luokan esiintymä. Se edustaa tiettyä luokkamallista luotua kokonaisuutta.

Esimerkiksi Koira on luokka Tommy on kyseisen luokan objekti.

100 km/h - mph
Class_Object_example' title=Luokat ja esineet (tässä koira on luokka ja Bobby on esine)

Java luokka

Luokka on suunnitelma, joka määrittelee kohteiden tiedot ja käyttäytymisen. Se ryhmittelee toisiinsa liittyvät kentät ja menetelmät yhteen yksikköön. Muisti sen jäsenille varataan vain objektin luomisen yhteydessä.



  • Toimii mallina jaettujen objektien luomiseen.
  • Ei vie muistia kentille ennen ilmentymistä.
  • Voi sisältää kenttiä metodien rakentajien sisäkkäisiä luokkia ja rajapintoja.
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);  } } 

Lähtö
10 Alice 

Java-objektit

Objekti on luokan esiintymä, joka on luotu käyttämään sen tietoja ja toimintoja. Jokaisella esineellä on oma tilansa.

  • Osavaltio : Kenttiin tallennetut arvot.
  • Käyttäytyminen : Menetelmillä määritellyt toimet.
  • Identiteetti : Erottaa objektin toisesta.

Objektit peilaavat todellisia kohteita, kuten asiakkaan tuotetta tai ympyrää. Ei-primitiiviset objektit tallennetaan kasaan, kun taas niiden viittaukset pysyvät pinossa.

Objektit Javassa' loading='lazy' title=Java-objektit (esimerkki koirista)

Objektin ilmentäminen

Objektin luomista kutsutaan instantiaatioksi. Kaikki luokan esiintymät jakavat rakenteen ja käyttäytymisen samalla kun tallennetaan eri tila-arvoja.

Objektien ilmoittaminen Javassa' loading='lazy' title=Java-objektin ilmoitus

Ilmoitus:

Koiran tupakka;

Tämä ilmoittaa vain viittauksen. Objektia ei luoda ja viittaus on tyhjä.

Alustus:

s pythonissa

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

Luokat-ja-objektit-java-3-768' loading='lazy' title=Alustus

Uusi operaattori varaa muistin ja kutsuu konstruktorin.

Esimerkki: Luokan määrittäminen ja käyttäminen

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

Lähtö
Name is: tuffy Breed age and color are: papillon 5 white 

Huomautus: Jokaisella luokalla on vähintään yksi rakentaja. Jos ei ole määritetty, Java tarjoaa oletusarvoisen argumentoimattoman konstruktorin, joka kutsuu ylätason konstruktoria.

c++ jakomerkkijono

Alusta objekti käyttämällä menetelmää/funktiota

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

Lähtö
Software name is: Visual Studio Software price is: 0.0 

Tapoja luoda objektia Javassa

Java tukee neljää standardilähestymistapaa.

1. Uuden avainsanan käyttäminen

Suorin tapa luoda esine.

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

2. Reflectionin käyttäminen

Käytetään dynaamiseen luokkalataukseen, kuten näkyy kehyksissä, kuten 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();  }  } } 

Lähtö
Student@1dbd16a6 

3. Clone()-menetelmän käyttö

clone() luo kopion olemassa olevasta objektista. Luokan on otettava käyttöön 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();  }  } } 

Lähtö
GeeksForGeeks 

4. Deserialization-toiminnon käyttäminen

Sarjanpoisto on tekniikka, jolla objekti luetaan tallennetusta tilasta tiedostossa. Objekti luodaan uudelleen tallennetusta tavuvirrasta.

Katso Serialisointi/de-serialisointi Javassa .

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

Lähtö
Student: Alice 

Yksittäinen viittaus voi viitata eri objekteihin eri aikoina.

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

Periytymisessä on yleistä käyttää emoviittausta aliobjekteille.

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

Viittauksettomat kohteet tulevat kelvollisiksi roskien keräämiseen.

normaaleja muotoja

Nimettömät objektit

Anonyymit objektit luodaan ilman viittausta ja niitä käytetään välittömästi kertaluonteisiin toimiin.

  • Ei viitemuuttujaa: Objektia ei voi käyttää uudelleen.
  • Luotu ja käytetty säästää hetkessä muistia lyhytaikaisia ​​tehtäviä varten.
  • Yleistä tapahtumien käsittelyssä (esim. painikkeen napsautukset).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Yleistä käyttöliittymän tapahtumien käsittelyssä.

Luo tietokilpailu