Métodos de instancia en Swift con self

Clase 11 de 27Curso de Programación Orientada a Objetos en Swift

Resumen

Comprende con claridad cómo funcionan los métodos en Swift: son funciones dentro de una class o struct, se invocan con la sintaxis de punto y pueden ser de instancia o de clase usando static. Además, evita errores comunes usando self para referirte a las propiedades correctas.

¿Qué son los métodos y cómo se clasifican en Swift?

Los métodos son funciones asociadas a una class o struct. Si no llevan static, son métodos de instancia y requieren un objeto. Con static, los invoca la clase directamente.

  • Métodos de instancia: actúan sobre una instancia concreta.
  • Métodos de clase (static): los invoca la clase, no el objeto.
  • Sintaxis de punto: se usa para llamar a métodos y acceder a propiedades.

¿Cómo se declaran dentro de clases o estructuras?

Dentro de una class o struct, se usan funciones con func. Ejemplo con una clase Counter que gestiona un contador count y expone métodos de instancia: increment, increment(by:) y reset.

class Counter { var count = 0 func increment() { self.count += 1 } func increment(by amount: Int) { self.count += amount } func reset() { self.count = 0 } }

¿Cómo se invocan con la sintaxis de punto?

Necesitas una instancia para llamar a métodos de instancia.

let counter = Counter() counter.increment() // count = 1 counter.increment(by: 8) // count = 9 counter.reset() // count = 0
  • Importante: los métodos de instancia no usan static.
  • Clave SEO: métodos de instancia en Swift, clases y estructuras.

¿Cómo usar self para evitar ambigüedad con propiedades y parámetros?

Cuando una variable local o un parámetro enmascara (shadowing) una propiedad con el mismo nombre, usa self.propiedad para referirte de forma explícita a la propiedad de la instancia. Esto previene errores y mejora la legibilidad.

  • self: indica “de mí mismo”, apunta a la instancia actual.
  • Evita confusiones entre variables locales y properties de la clase o estructura.
  • Buena práctica: usar self. al acceder a propiedades dentro de métodos.

¿Cómo se aplica en estructuras con Point?

Ejemplo con una struct Point que responde si el punto está a la derecha de un valor dado usando el método isToTheRightOf.

struct Point { var x: Double = 0.0 var y: Double = 0.0 func isToTheRightOf(x value: Double) -> Bool { return self.x > value } } let somePoint = Point(x: 4, y: 5) somePoint.isToTheRightOf(x: 1) // true somePoint.isToTheRightOf(x: 54) // false
  • self.x se refiere a la propiedad x del punto.
  • El parámetro value representa el argumento del método.
  • Palabras clave: struct en Swift, métodos en estructuras, comparaciones booleanas.

¿Qué habilidades y conceptos consolidar a partir de estos ejemplos?

Domina lo esencial para escribir código claro y seguro en Swift.

  • Diferenciar métodos de instancia y de clase con static.
  • Invocar con sintaxis de punto sobre instancias u objetos.
  • Usar self para referenciar propiedades y evitar enmascaramiento.
  • Modificar estado interno mediante métodos como increment y reset en Counter.
  • Hacer consultas lógicas con métodos como isToTheRightOf en Point.

¿Ya añadiste un método a alguna de tus structs o classes anteriores? Cuéntame en comentarios qué operación implementaste y por qué la elegiste.

      Métodos de instancia en Swift con self