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.
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.
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 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.
Declaración de objeto JavaDeclaració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');
InicializaciónEl nuevo operador asigna memoria e invoca al constructor.
Ejemplo: definición y uso de una clase
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); } }
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
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(); } }
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 excelJava
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.
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(); } } }
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 .
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(); } } }
Producción
Student: Alice
Una sola referencia puede apuntar a diferentes objetos en diferentes momentos.
JavaTest test = new Test(); test = new Test();
En herencia, es común utilizar una referencia principal para objetos secundarios.
JavaAnimal 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).
new Dog('Max' 'Labrador' 3 'Black').getName();
Común en el manejo de eventos de la interfaz de usuario.
Crear cuestionario