logo

Clases y objetos en Java

En Java, las clases y los objetos forman la base de la programación orientada a objetos (POO). Ayudan a modelar entidades del mundo real y organizar el código de forma estructurada.

  • Una clase es un modelo que se utiliza para crear objetos que comparten propiedades y comportamientos comunes.
  • Un objeto es una instancia de una clase. Representa una entidad específica creada a partir de la plantilla de clase.

Por ejemplo, Perro es una clase. Tommy es un objeto de esa clase.

Clase_Objeto_ejemplo' title=Clases y Objetos (Aquí Perro es la Clase y Bobby es el Objeto)

Clase Java

Una clase es un modelo que define datos y comportamiento de objetos. Agrupa campos y métodos relacionados en una sola unidad. La memoria para sus miembros se asigna sólo cuando se crea un objeto.



  • Actúa como plantilla para crear objetos con estructura compartida.
  • No ocupa memoria para los campos hasta la creación de instancias.
  • Puede contener campos, métodos, constructores, clases e interfaces anidadas.
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);  } } 

Producción
10 Alice 

Objetos Java

Un objeto es una instancia de una clase creada para acceder a sus datos y operaciones. Cada objeto tiene su propio estado.

  • Estado : Valores almacenados en campos.
  • Comportamiento : Acciones definidas a través de métodos.
  • Identidad : Distingue un objeto de otro.

Los objetos reflejan elementos del mundo real, como el producto o el círculo del cliente. Los objetos no primitivos se almacenan en el montón mientras sus referencias permanecen en la pila.

búsqueda de novios
Objetos en Java' loading='lazy' title=Objetos Java (ejemplo de perros)

Creación de instancias de objetos

La creación de un objeto se conoce como creación de instancias. Todas las instancias de una clase comparten estructura y comportamiento mientras almacenan diferentes valores de estado.

Declarar objetos en Java' loading='lazy' title=Declaración de objeto Java

Declaración:

contactos bloqueados

Toba de perro;

Esto sólo declara una referencia. El objeto no se crea y la referencia es nula.

Inicialización:

tuffy = nuevo Perro('Tuffy' 'Papillon' 5 'Blanco');

Clases-y-objetos-en-java-3-768' loading='lazy' title=Inicialización

El nuevo operador asigna memoria e invoca al constructor.

Ejemplo: definición y uso de una clase

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

Producción
Name is: tuffy Breed age and color are: papillon 5 white 

Nota: Cada clase tiene al menos un constructor. Si no hay ninguno definido, Java proporciona un constructor predeterminado sin argumentos que llama al constructor principal.

Inicializar objeto utilizando método/función

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();  } } 

Producción
Software name is: Visual Studio Software price is: 0.0 

Formas de crear objetos en Java

Java admite cuatro enfoques estándar.

1. Usando una nueva palabra clave

La forma más directa de crear un objeto.

Java
// creating object of class Test  Test t = new Test(); 

2. Usando la reflexión

Se utiliza para la carga dinámica de clases como se ve en marcos como Spring.

eliminar el primer caracter de excel
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();  }  } } 

Producción
Student@1dbd16a6 

3. Usando el método clonar()

clone() crea una copia de un objeto existente. La clase debe 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();  }  } } 

Producción
GeeksForGeeks 

4. Usando la deserialización

La deserialización es una técnica para leer un objeto desde el estado guardado en un archivo. El objeto se recrea a partir de un flujo de bytes almacenado.

Referirse a Serialización/desserialización 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(); }  } } 

Producción
Student: Alice 

Una sola referencia puede apuntar a diferentes objetos en diferentes momentos.

Java
Test test = new Test(); test = new Test(); 

En herencia, es común utilizar una referencia principal para objetos secundarios.

Java
Animal obj = new Dog(); obj = new Cat(); 

Los objetos sin referencia se vuelven elegibles para la recolección de basura.

iterador java para mapa

Objetos anónimos

Los objetos anónimos se crean sin referencia y se utilizan inmediatamente para operaciones únicas.

  • Sin variable de referencia: no se puede reutilizar el objeto.
  • Creado y utilizado ahorra memoria instantáneamente para tareas de corta duración.
  • Común en el manejo de eventos (por ejemplo, clics en botones).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Común en el manejo de eventos de la interfaz de usuario.

Crear cuestionario