Objetos en Java - Programación Estructurada

¿Qué es un Objeto en Java?

Un objeto en Java es una instancia de una clase. Los objetos son entidades que tienen estado y comportamiento. El estado de un objeto se representa mediante variables de instancia, mientras que el comportamiento se representa mediante métodos.

Los objetos se utilizan para modelar entidades del mundo real y manipular datos de manera estructurada. En la programación orientada a objetos, los objetos interactúan entre sí mediante el envío de mensajes (llamadas a métodos).

Creación y Uso de Objetos

Para crear un objeto en Java, primero se debe definir una clase, y luego se puede crear una instancia de esa clase utilizando la palabra clave new. A continuación, se muestra un ejemplo básico:


class Coche {
    String marca;
    String modelo;
    int anio;

    void arrancar() {
        System.out.println("El coche ha arrancado.");
    }
}

public class Main {
    public static void main(String[] args) {
        Coche miCoche = new Coche();  // Creación del objeto
        miCoche.marca = "Toyota";
        miCoche.modelo = "Corolla";
        miCoche.anio = 2020;
        miCoche.arrancar();  // Llamada al método del objeto
    }
}
        

Conceptos Clave

1. ¿Qué es un Objeto?

Un objeto es una instancia de una clase. Los objetos tienen estado, que es representado por sus atributos o variables de instancia, y comportamiento, que es definido por sus métodos. Por ejemplo, un objeto de la clase Coche puede tener atributos como marca, modelo y anio, y comportamientos como arrancar, frenar, etc.

2. La Palabra Clave new

Para crear un objeto en Java, se utiliza la palabra clave new. Esta palabra clave reserva memoria para el nuevo objeto y llama al constructor de la clase para inicializar el objeto. Por ejemplo, new Coche() crea un nuevo objeto de la clase Coche.

3. Estado de un Objeto

El estado de un objeto está representado por los valores de sus variables de instancia. Estos valores pueden cambiar durante la vida del objeto, lo que permite que el objeto represente diferentes condiciones. En la clase Coche, el estado podría incluir valores como marca = "Toyota", modelo = "Corolla", y anio = 2020.

4. Comportamiento de un Objeto

El comportamiento de un objeto está definido por los métodos de la clase. Estos métodos pueden manipular el estado del objeto y realizar tareas específicas. Por ejemplo, el método arrancar() de la clase Coche representa una acción que el objeto puede realizar.

5. Interacción entre Objetos

Los objetos pueden interactuar entre sí llamando a métodos de otros objetos. Esto permite que los objetos colaboren para realizar tareas más complejas. Por ejemplo, un objeto CuentaBancaria puede interactuar con un objeto Cliente para realizar operaciones bancarias como depósitos y retiros.

6. Constructores

Un constructor es un tipo especial de método que se utiliza para inicializar un objeto cuando se crea. Los constructores tienen el mismo nombre que la clase y no tienen un tipo de retorno. Si no se define un constructor, Java proporciona uno por defecto.

7. Variables de Instancia

Las variables de instancia son variables que pertenecen a un objeto. Cada objeto tiene su propio conjunto de variables de instancia, que representan el estado del objeto. En la clase Coche, marca y modelo son ejemplos de variables de instancia.

8. La Palabra Clave this

La palabra clave this se utiliza dentro de un método para referirse al objeto actual. Esto es útil cuando necesitamos distinguir entre las variables de instancia y los parámetros del método con el mismo nombre. Por ejemplo, this.marca se refiere a la variable de instancia marca del objeto actual.

Ejemplo: Definición y Uso de un Objeto

Este ejemplo muestra cómo definir una clase, crear un objeto de esa clase y utilizar sus métodos y variables de instancia:


class Persona {
    String nombre;
    int edad;

    void saludar() {
        System.out.println("Hola, mi nombre es " + nombre);
    }
}

public class Main {
    public static void main(String[] args) {
        Persona persona1 = new Persona();  // Creación del objeto
        persona1.nombre = "Juan";
        persona1.edad = 25;
        persona1.saludar();  // Llamada al método del objeto
    }
}
        

En este ejemplo, la clase Persona define dos variables de instancia (nombre y edad) y un método (saludar()). Luego, se crea un objeto persona1 y se utilizan sus atributos y métodos.

Ejemplo: Interacción entre Objetos

Los objetos pueden interactuar entre sí llamando a los métodos de otros objetos. A continuación, se muestra un ejemplo:


class CuentaBancaria {
    double saldo;

    void depositar(double cantidad) {
        saldo += cantidad;
    }

    void retirar(double cantidad) {
        saldo -= cantidad;
    }
}

public class Main {
    public static void main(String[] args) {
        CuentaBancaria cuenta1 = new CuentaBancaria();
        cuenta1.depositar(500);
        cuenta1.retirar(200);
        System.out.println("Saldo final: " + cuenta1.saldo);
    }
}
        

Este ejemplo muestra cómo un objeto CuentaBancaria puede recibir operaciones (depósitos y retiros) y actualizar su estado (saldo) en consecuencia.

Preguntas de Múltiple Opción

1. ¿Qué es un objeto en Java?

a) Un tipo de variable
b) Una instancia de una clase
c) Una biblioteca de métodos

2. ¿Cómo se crea un objeto en Java?

a) Usando la palabra clave new
b) Usando la palabra clave object
c) Usando un constructor vacío

3. ¿Qué representa el estado de un objeto?

a) Los valores de sus variables de instancia
b) Los métodos que contiene
c) Su posición en la memoria

4. ¿Cómo se llama un método de un objeto en Java?

a) Usando la notación de punto (.)
b) Usando paréntesis () al final
c) Usando el nombre del método sin más

5. ¿Puede un objeto interactuar con otro objeto en Java?

a) Sí, llamando a métodos de otros objetos
b) No, los objetos son independientes
c) Sí, pero solo si son de la misma clase

6. ¿Qué es un constructor en Java?

a) Un tipo especial de método que se utiliza para construir una clase
b) Un tipo especial de método que se utiliza para inicializar objetos
c) Un tipo especial de método que se utiliza para destruir objetos

7. ¿Qué es una variable de instancia?

a) Una variable que pertenece a un objeto
b) Una variable que pertenece a una clase
c) Una variable que se utiliza para contar objetos

8. ¿Qué es el "comportamiento" de un objeto en Java?

a) Los valores de sus variables de instancia
b) Los métodos que define y ejecuta
c) La forma en que interactúa con otros objetos

9. ¿Qué palabra clave se utiliza para hacer referencia al objeto actual dentro de un método?

a) this
b) super
c) self

10. ¿Qué sucede si no se define un constructor en una clase?

a) El compilador proporciona un constructor por defecto
b) La clase no puede ser instanciada
c) La clase debe ser abstracta

Ejercicios Prácticos

  1. Define una clase Libro con atributos titulo, autor y precio. Crea un objeto de la clase y muestra sus atributos.
  2. Crea una clase Rectangulo que tenga dos atributos: ancho y alto. Define un método para calcular el área del rectángulo.
  3. Implementa una clase CuentaBancaria con un atributo saldo y métodos para depositar y retirar dinero. Simula una serie de operaciones bancarias.
  4. Crea una clase Estudiante con atributos nombre y nota. Añade un método que determine si el estudiante ha aprobado o no.
  5. Diseña una clase Empleado que tenga atributos como nombre, salario y departamento. Añade un método para calcular el aumento de salario.
  6. Implementa una clase Círculo con un atributo radio y métodos para calcular el área y la circunferencia.
  7. Crea una clase Producto que tenga atributos nombre, precio y cantidad. Añade un método para calcular el valor total del inventario.
  8. Diseña una clase Vehiculo con atributos marca, modelo y anio. Define un método que describa el vehículo.
  9. Implementa una clase Computadora con atributos procesador, ram y almacenamiento. Añade un método que muestre las especificaciones de la computadora.
  10. Crea una clase Casa con atributos direccion, numHabitaciones y precio. Define un método que calcule el precio por habitación.