Saltar al contenido principal
eLearner.app
Módulo 2 · Lección 1 de 23/14 en el curso~12 min
Lecciones del módulo (1/2)

Clases y Objetos

Java es un lenguaje centrado en la Programación Orientada a Objetos (OOP). En la OOP, modelamos el mundo real utilizando objetos. Un objeto posee un estado (los datos) y comportamientos (las acciones).

Clases y Objetos

  • Clase: Es un modelo (o blueprint) que define las características y el comportamiento de un tipo de objeto.
  • Objeto: Es una instancia concreta creada a partir de una clase.

Por ejemplo, si Car es la clase, tu automóvil en el garaje es el objeto real.

Campos de Instancia y Constructores

Los datos dentro de una clase se denominan campos de instancia (o atributos). Para inicializar el estado de un objeto en el momento de su creación, se utiliza un método especial llamado constructor.

Un constructor tiene el mismo nombre que la clase y no tiene tipo de retorno (ni siquiera void).

Code
class Dog {
    // Campi istanza
    String name;
    int age;

    // Costruttore
    public Dog(String name, int age) {
        this.name = name; // 'this' fa riferimento al campo dell'oggetto corrente
        this.age = age;
    }
}

Crear un Objeto con new

Para crear un objeto en memoria, usamos la palabra clave new seguida del constructor de la clase:

Code
public class Main {
    public static void main(String[] args) {
        // Creazione di un oggetto Dog
        Dog myDog = new Dog("Fido", 3);

        // Accesso ai campi
        System.out.println(myDog.name + " ha " + myDog.age + " anni.");
    }
}

La Referencia this

La palabra clave this en Java hace referencia al objeto actual sobre el cual se ejecuta el constructor o un método. Se utiliza principalmente para evitar ambigüedades cuando los parámetros del constructor tienen el mismo nombre que los campos de instancia del objeto (sombreado de variables):

Code
class User {
    String username;

    public User(String username) {
        this.username = username; // this.username è il campo istanza, username è il parametro
    }
}

Asignación de Memoria: Stack vs Heap

Comprender cómo asigna Java la memoria es fundamental:

  1. Stack: Es un área de memoria rápida y organizada donde se almacenan las variables primitivas y las referencias a los objetos (direcciones de memoria) locales dentro de los métodos.
  2. Heap: Es un área de memoria más grande y dinámica donde se asignan los objetos reales (con la palabra clave new).

Cuando declaramos Dog myDog = new Dog("Fido", 3);:

  • La referencia myDog se crea en el Stack.
  • El objeto real Dog con sus datos se crea en el Heap.
  • La variable myDog apunta a la ubicación del objeto en el Heap.

Pruébalo tú

Ejercicio#java.m2.l1.e1
Intentos: 0Cargando...

Completa la clase Person agregando el campo name y un constructor apropiado. Luego, en el main crea un objeto Person llamado p con el nombre Alice.

Cargando editor...
Mostrar pista

Escribe `String name;` dentro de la clase, declara el constructor `public Person(String name) { this.name = name; }` e instancialo con `new Person('Alice')`.

Solución disponible después de 3 intentos

Ejercicio#java.m2.l1.e2
Intentos: 0Cargando...

Crea una clase Book con los campos title (String) y pages (int), un constructor completo, e instancia en el main un libro llamado b con título Moby Dick y 600 páginas.

Cargando editor...
Mostrar pista

Recuerda definir ambos campos en Book, mapearlos en el constructor usando `this.title = title;` y `this.pages = pages;`, y usar `new Book('Moby Dick', 600)`.

Solución disponible después de 3 intentos

Ejercicio#java.m2.l1.e3
Intentos: 0Cargando...

Crea una clase Product con los campos name (String) y price (double), y un constructor que inicialice ambos campos. En el main, crea un objeto Product llamado p con el nombre Laptop y precio 999.99.

Cargando editor...
Mostrar pista

Declara los campos `String name;` y `double price;` en Product, asígnalos en el constructor con `this.name = name;` y `this.price = price;`, y finalmente crea el objeto en el main.

Solución disponible después de 3 intentos