Classes i objectes en Java
A Java, les classes i els objectes formen la base de la Programació Orientada a Objectes (OOP). Ajuden a modelar entitats del món real i organitzar el codi de manera estructurada.
- Una classe és un pla utilitzat per crear objectes que comparteixen propietats i comportaments comuns.
- Un objecte és una instància d'una classe. Representa una entitat específica creada a partir de la plantilla de classe.
Per exemple, el gos és una classe Tommy és un objecte d'aquesta classe.
Classes i objectes (aquí el gos és la classe i Bobby és l'objecte) Classe Java
Una classe és un pla que defineix les dades i el comportament dels objectes. Agrupa camps i mètodes relacionats en una sola unitat. La memòria dels seus membres només s'assigna quan es crea un objecte.
- Actua com a plantilla per crear objectes amb estructura compartida.
- No ocupa memòria per als camps fins a la instanciació.
- Pot contenir camps mètodes constructors classes imbricades i interfícies.
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 ); } }
Sortida
10 Alice
Objectes Java
Un objecte és una instància d'una classe creada per accedir a les seves dades i operacions. Cada objecte té el seu propi estat.
- Estat : Valors emmagatzemats als camps.
- Comportament : Accions definides mitjançant mètodes.
- Identitat : Distingeix un objecte d'un altre.
Els objectes reflecteixen elements del món real, com ara el producte del client o el cercle. Els objectes no primitius s'emmagatzemen a la pila mentre les seves referències romanen a la pila.
Objectes Java (exemple de gossos) Instanciació d'objectes
La creació d'un objecte es coneix com a instanciació. Totes les instàncies d'una classe comparteixen estructura i comportament mentre emmagatzemen diferents valors d'estat.
Declaració d'objectes Java Declaració:
gos tufós;
Això només declara una referència. L'objecte no es crea i la referència és nul.
Inicialització:
tuffy = new Dog('Tuffy' 'Papillon' 5 'White');
Inicialització El nou operador assigna memòria i invoca el constructor.
Exemple: Definició i ús d'una classe
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 ); } }
Sortida
Name is: tuffy Breed age and color are: papillon 5 white
Nota: Cada classe té almenys un constructor. Si no es defineix cap, Java proporciona un constructor predeterminat sense arguments que crida al constructor pare.
Inicialitzar l'objecte utilitzant Mètode/Funció
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 (); } }
Sortida
Software name is: Visual Studio Software price is: 0.0
Maneres de crear objectes en Java
Java admet quatre enfocaments estàndard.
1. Ús de la paraula clau nova
La forma més directa de crear un objecte.
Java // creating object of class Test Test t = new Test ();
2. Ús de la reflexió
S'utilitza per a la càrrega dinàmica de classes com es veu en marcs com 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 (); } } }
Sortida
Student@1dbd16a6
3. Utilitzant el mètode clone().
clone() crea una còpia d'un objecte existent. La classe ha d'implementar 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 (); } } }
Sortida
GeeksForGeeks
4. Ús de la deserialització
La deserialització és una tècnica de lectura d'un objecte des de l'estat desat en un fitxer. L'objecte es recrea a partir d'un flux de bytes emmagatzemat.
Consulteu Serialització/Des-serialització en 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 (); } } }
Sortida
Student: Alice
Una única referència pot apuntar a diferents objectes en diferents moments.
Java Test test = new Test (); test = new Test ();
En l'herència és habitual utilitzar una referència pare per als objectes fills.
Java Animal obj = new Dog (); obj = new Cat ();
Els objectes sense referència són aptes per a la recollida d'escombraries.
Objectes anònims
Els objectes anònims es creen sense referència i s'utilitzen immediatament per a operacions puntuals.
- Sense variable de referència: no es pot reutilitzar l'objecte.
- Creat i utilitzat a l'instant estalvia memòria per a tasques de curta durada.
- Comú en la gestió d'esdeveniments (p. ex., clics als botons).
new Dog ( 'Max' 'Labrador' 3 'Black' ). getName ();
Comú en la gestió d'esdeveniments de la IU.
Crea un qüestionari