logo

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.

Classe_Objecte_exemple' title=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.
Java
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 en Java' loading='lazy' title=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 en Java' loading='lazy' title=Declaració d'objectes Java

Declaració:

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');

Classes-i-objectes-en-java-3-768' loading='lazy' title=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.

convertir l'objecte en cadena

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.

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).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Comú en la gestió d'esdeveniments de la IU.

Crea un qüestionari