Klasės ir objektai Java
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 deklaracija Deklaracija:
Šunų pūkas;
Tai tik deklaruoja nuorodą. Objektas nesukuriamas, o nuoroda negalioja.
Inicijavimas:
tuffy = naujas Šuo ('Tuffy' 'Papillon' 5 'Baltas');
Inicijavimas Naujasis operatorius paskirsto atmintį ir iškviečia konstruktorių.
Pavyzdys: klasės apibrėžimas ir naudojimas
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 ); } }
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ą
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 (); } }
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.
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 (); } } }
Išvestis
Student@1dbd16a6
3. Clono() metodo naudojimas
clone() sukuria esamo objekto kopiją. Klasė turi įdiegti 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 (); } } }
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 .
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 (); } } }
Išvestis
Student: Alice
Viena nuoroda gali nurodyti skirtingus objektus skirtingu laiku.
Java Test test = new Test (); test = new Test ();
Paveldėjimo atveju antriniams objektams įprasta naudoti pirminę nuorodą.
Java Animal 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ą