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.
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.
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.
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.
Java objekto deklaracijaDeklaracija:
Šunų pūkas;
gimė Freddie Mercury
Tai tik deklaruoja nuorodą. Objektas nesukuriamas, o nuoroda negalioja.
Inicijavimas:
tuffy = naujas Šuo ('Tuffy' 'Papillon' 5 'Baltas');
InicijavimasNaujasis operatorius paskirsto atmintį ir iškviečia konstruktorių.
globalūs kintamieji js
Pavyzdys: klasės apibrėžimas ir naudojimas
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); } }
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ą
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(); } }
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.
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(); } } }
Išvestis
Student@1dbd16a6
3. Clono() metodo naudojimas
clone() sukuria esamo objekto kopiją. Klasė turi įdiegti Cloneable.
kodėl žymeklio sąsaja javaJava
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 .
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(); } } }
Išvestis
Student: Alice
Viena nuoroda gali nurodyti skirtingus objektus skirtingu laiku.
JavaTest test = new Test(); test = new Test();
Paveldėjimo atveju antriniams objektams įprasta naudoti pirminę nuorodą.
JavaAnimal 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).
new Dog('Max' 'Labrador' 3 'Black').getName();
Įprasta NS įvykių tvarkyme.
Sukurti viktoriną