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.
c++ int a cadena
Declaració d'objectes JavaDeclaració:
gos tufós;
afegir cadena java
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
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); } }
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.
convertir l'objecte en cadena
Inicialitzar l'objecte utilitzant Mètode/Funció
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(); } }
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.
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(); } } }
Sortida
Student@1dbd16a6
3. Utilitzant el mètode clone().
clone() crea una còpia d'un objecte existent. La classe ha d'implementar 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(); } } }
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 .
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(); } } }
Sortida
Student: Alice
Una única referència pot apuntar a diferents objectes en diferents moments.
JavaTest test = new Test(); test = new Test();
En l'herència és habitual utilitzar una referència pare per als objectes fills.
JavaAnimal obj = new Dog(); obj = new Cat();
Els objectes sense referència són aptes per a la recollida d'escombraries.
java afegir a una matriu
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