Java klasēs un objekti veido objektorientētās programmēšanas (OOP) pamatu. Tie palīdz modelēt reālās pasaules entītijas un sakārtot kodu strukturētā veidā.
prioritārā rinda
- Klase ir plāns, ko izmanto, lai izveidotu objektus, kuriem ir kopīgas īpašības un uzvedība.
- Objekts ir klases gadījums. Tas apzīmē noteiktu entītiju, kas izveidota no klases veidnes.
Piemēram, Suns ir klase Tomijs ir šīs klases objekts.
Klases un objekti (šeit suns ir klase un Bobijs ir priekšmets)Java klase
Klase ir projekts, kas nosaka objektu datus un uzvedību. Tas sagrupē saistītos laukus un metodes vienā vienībā. Atmiņa tās dalībniekiem tiek piešķirta tikai tad, kad tiek izveidots objekts.
- Darbojas kā veidne, lai izveidotu objektus ar kopīgu struktūru.
- Neaizņem atmiņu laukiem līdz instancē.
- Var saturēt lauku metodes konstruktoru ligzdotās klases un saskarnes.
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); } }
Izvade
10 Alice
Java objekti
Objekts ir klases gadījums, kas izveidots, lai piekļūtu tā datiem un darbībām. Katram objektam ir savs stāvoklis.
- valsts : laukos saglabātās vērtības.
- Uzvedība : darbības, kas noteiktas, izmantojot metodes.
- Identitāte : atšķir vienu objektu no cita.
Objekti atspoguļo reālās pasaules vienumus, piemēram, klienta produktu vai apli. Neprimitīvi objekti tiek glabāti kaudzē, kamēr to atsauces paliek kaudzē.
Java objekti (suņu piemērs)Objekta inscenēšana
Objekta izveide ir pazīstama kā instantiācija. Visi klases gadījumi koplieto struktūru un uzvedību, vienlaikus saglabājot dažādas stāvokļa vērtības.
Java objektu deklarācijaDeklarācija:
Suņu pūkains;
Tas tikai deklarē atsauci. Objekts netiek izveidots, un atsauce ir nulle.
cpld vs fpga
Inicializācija:
tuffy = new Dog ('Tuffy' 'Papillon' 5 'Balts');
InicializācijaJaunais operators piešķir atmiņu un izsauc konstruktoru.
Piemērs: klases definēšana un izmantošana
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); } }
Izvade
Name is: tuffy Breed age and color are: papillon 5 white
Piezīme: Katrā klasē ir vismaz viens konstruktors. Ja nav definēts, Java nodrošina noklusējuma konstruktoru bez argumentiem, kas izsauc vecāku konstruktoru.
Inicializējiet objektu, izmantojot metodi/funkciju
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(); } }
Izvade
Software name is: Visual Studio Software price is: 0.0
Objektu izveides veidi Java
Java atbalsta četras standarta pieejas.
1. Jauna atslēgvārda izmantošana
Tiešākais veids, kā izveidot objektu.
Java// creating object of class Test Test t = new Test();
2. Izmantojot Reflection
Izmanto dinamiskai klašu ielādei, kā redzams tādos ietvaros kā Spring.
atsperu moduļiJava
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(); } } }
Izvade
Student@1dbd16a6
3. Izmantojot clone() metodi
clone() izveido esoša objekta kopiju. Klasei jāievieš 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(); } } }
Izvade
GeeksForGeeks
4. Deserializācijas izmantošana
Deserializācija ir paņēmiens objekta nolasīšanai no saglabātā stāvokļa failā. Objekts tiek atkārtoti izveidots no saglabātās baitu straumes.
Atsaucieties uz Serializācija/de-serializācija 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(); } } }
Izvade
Student: Alice
Viena atsauce var norādīt uz dažādiem objektiem dažādos laikos.
JavaTest test = new Test(); test = new Test();
Mantojumā ir ierasts izmantot vecāku atsauci bērnu objektiem.
JavaAnimal obj = new Dog(); obj = new Cat();
Neatsauces objekti kļūst piemēroti atkritumu savākšanai.
kartes java iterators
Anonīmi objekti
Anonīmi objekti tiek izveidoti bez atsauces un tiek nekavējoties izmantoti vienreizējām darbībām.
- Nav atsauces mainīgā: objektu nevar izmantot atkārtoti.
- Izveidots un izmantots uzreiz ietaupa atmiņu īslaicīgiem uzdevumiem.
- Bieži sastopams notikumu apstrādē (piemēram, pogu klikšķi).
new Dog('Max' 'Labrador' 3 'Black').getName();
Izplatīts lietotāja saskarnes notikumu apstrādē.
Izveidojiet viktorīnu