0Pricing
Android Academy · Lección

Clases y objetos

Defina clases con propiedades y métodos, utilice constructores, comprenda la herencia y las interfaces, y escriba código orientado a objetos idiomático de Kotlin.

Clases y objetos es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.

¿Qué es una clase?

Una clase es un plano para crear objetos. Agrupa datos relacionados (propiedades) y comportamiento (funciones).

  • class Dog — define el plano
  • val myDog = Dog() — crea una instancia (objeto)

Ejemplo: una clase User que contiene el nombre, la edad y el correo electrónico.

Definición de una clase

Las clases de Kotlin tienen una sintaxis concisa para el constructor principal:

class User(val name: String, var age: Int) {
    fun greet(): String {
        return "Hi, I'm $name and I'm $age years old."
    }
}

fun main() {
    val user = User("Alice", 28)
    println(user.name)     // Alice
    println(user.age)      // 28
    user.age = 29          // var can be changed
    println(user.greet())
}

Clases de datos

Una data class es perfecta para almacenar datos. Añada la palabra clave data y Kotlin generará automáticamente:

  • equals() / hashCode() — comparar por valor
  • toString() — salida legible
  • copy() — crear una copia modificada

Ejemplo de clase de datos

Las clases de datos son ideales para representar objetos de modelo:

data class Product(val id: Int, val name: String, val price: Double)

fun main() {
    val p1 = Product(1, "Laptop", 999.99)
    val p2 = p1.copy(price = 899.99) // new copy with changed price

    println(p1)           // Product(id=1, name=Laptop, price=999.99)
    println(p2)           // Product(id=1, name=Laptop, price=899.99)
    println(p1 == p2)     // false (different price)
}

Objetos complementarios

Un companion object contiene miembros que pertenecen a la propia clase, no a ninguna instancia, de forma similar a static en Java.

Acceda a ellos mediante el nombre de la clase: User.create()

Ejemplo de companion object

Use objetos complementarios para métodos de fábrica y constantes:

class Counter {
    var count = 0

    fun increment() { count++ }

    companion object {
        const val MAX = 100

        fun create(): Counter = Counter()
    }
}

fun main() {
    val c = Counter.create()
    c.increment()
    c.increment()
    println(c.count)        // 2
    println(Counter.MAX)    // 100
}

Herencia

Las clases de Kotlin son final de forma predeterminada (no se pueden extender). Marque una clase como open para permitir la herencia.

  • open class Animal — se puede extender
  • class Dog : Animal() — extiende Animal
  • override fun sound() — sobrescribe una función principal

Ejemplo de herencia

Construya una jerarquía de clases sencilla:

open class Shape {
    open fun area(): Double = 0.0
}

class Circle(val radius: Double) : Shape() {
    override fun area(): Double = 3.14159 * radius * radius
}

class Rectangle(val w: Double, val h: Double) : Shape() {
    override fun area(): Double = w * h
}

fun main() {
    val shapes: List<Shape> = listOf(
        Circle(5.0),
        Rectangle(4.0, 3.0)
    )
    for (s in shapes) println("Area: ${s.area()}")
}

Declaraciones de object

Una declaración object crea un singleton: una clase con exactamente una instancia, que se crea de forma diferida cuando se accede a ella por primera vez.

Úsela para utilidades, gestores o cualquier elemento que deba tener una sola instancia.

Comprobación rápida

¿Qué característica proporciona automáticamente una data class de Kotlin?

Resumen: clases y objetos

Ha aprendido los componentes básicos de la POO en Kotlin:

  • Clases con constructores principales y funciones miembro
  • data class — genera automáticamente equals, toString y copy
  • companion object — miembros de nivel de clase (estáticos)
  • Clases open y override para la herencia
  • Declaraciones object para singleton

¡Ya está preparado para crear aplicaciones reales de Android!

Preguntas frecuentes

¿La lección «Clases y objetos» es gratis?

Sí — el texto completo de «Clases y objetos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Clases y objetos»?

Defina clases con propiedades y métodos, utilice constructores, comprenda la herencia y las interfaces, y escriba código orientado a objetos idiomático de Kotlin. Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Android Academy?

No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Clases y objetos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Android Academy?

Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Seguridad frente a valores nulos
  2. Clases y objetos
  3. Clases de datos y clases selladas
  4. Funciones de extensión y de orden superior
← Volver a Android Academy