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
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.
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.
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.
Java-objektin ilmoitusIlmoitus:
Koiran tupakka;
Tämä ilmoittaa vain viittauksen. Objektia ei luoda ja viittaus on tyhjä.
Alustus:
s pythonissa
tuffy = new Dog('Tuffy' 'Papillon' 5 'White');
AlustusUusi operaattori varaa muistin ja kutsuu konstruktorin.
Esimerkki: Luokan määrittäminen ja käyttäminen
Javapublic 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
Javapublic 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.
Javaclass 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.
Javaclass 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 .
Javaimport 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.
JavaTest test = new Test(); test = new Test();
Periytymisessä on yleistä käyttää emoviittausta aliobjekteille.
JavaAnimal 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).
new Dog('Max' 'Labrador' 3 'Black').getName();
Yleistä käyttöliittymän tapahtumien käsittelyssä.
Luo tietokilpailu