En Swift, las clases y estructuras pueden tener propiedades y métodos. Las propiedades son valores asociados a una clase o estructura, mientras que los métodos son funciones que pertenecen a estas entidades. En esta sección, aprenderemos cómo definir y utilizar propiedades y métodos en Swift.
Propiedades
Las propiedades en Swift se dividen en dos categorías principales:
- Propiedades almacenadas: Almacenan valores constantes o variables como parte de una instancia.
- Propiedades calculadas: Proporcionan un valor calculado en lugar de almacenar un valor.
Propiedades Almacenadas
Las propiedades almacenadas pueden ser variables (var) o constantes (let). Aquí hay un ejemplo de una clase con propiedades almacenadas:
class Persona {
var nombre: String
var edad: Int
let nacionalidad: String
init(nombre: String, edad: Int, nacionalidad: String) {
self.nombre = nombre
self.edad = edad
self.nacionalidad = nacionalidad
}
}
let persona = Persona(nombre: "Juan", edad: 30, nacionalidad: "Mexicana")
print(persona.nombre) // Imprime "Juan"
print(persona.edad) // Imprime 30
print(persona.nacionalidad) // Imprime "Mexicana"Propiedades Calculadas
Las propiedades calculadas no almacenan un valor, sino que proporcionan un getter y opcionalmente un setter para calcular el valor. Aquí hay un ejemplo:
class Rectangulo {
var ancho: Double
var alto: Double
var area: Double {
return ancho * alto
}
init(ancho: Double, alto: Double) {
self.ancho = ancho
self.alto = alto
}
}
let rectangulo = Rectangulo(ancho: 5.0, alto: 10.0)
print(rectangulo.area) // Imprime 50.0Propiedades de Clase
Las propiedades de clase (o propiedades estáticas) son propiedades cuyo valor es compartido por todas las instancias de la clase. Se definen usando la palabra clave static:
class Contador {
static var total: Int = 0
init() {
Contador.total += 1
}
}
let contador1 = Contador()
let contador2 = Contador()
print(Contador.total) // Imprime 2Métodos
Los métodos son funciones que pertenecen a una clase, estructura o enumeración. Se definen de manera similar a las funciones normales, pero se escriben dentro del cuerpo de la clase, estructura o enumeración.
Métodos de Instancia
Los métodos de instancia son funciones que operan sobre una instancia específica de una clase o estructura. Aquí hay un ejemplo:
class Coche {
var velocidad: Double = 0.0
func acelerar() {
velocidad += 10.0
}
func frenar() {
velocidad -= 10.0
}
}
let coche = Coche()
coche.acelerar()
print(coche.velocidad) // Imprime 10.0
coche.frenar()
print(coche.velocidad) // Imprime 0.0Métodos de Clase
Los métodos de clase (o métodos estáticos) son funciones que se pueden llamar en la clase en sí, no en una instancia de la clase. Se definen usando la palabra clave static:
class Matematica {
static func sumar(a: Int, b: Int) -> Int {
return a + b
}
}
let resultado = Matematica.sumar(a: 5, b: 3)
print(resultado) // Imprime 8Ejercicio Práctico
Ejercicio 1: Definir una Clase con Propiedades y Métodos
Define una clase Libro con las siguientes propiedades y métodos:
-
Propiedades:
titulo(String)autor(String)numeroDePaginas(Int)paginasLeidas(Int)
-
Métodos:
leer(paginas: Int): IncrementapaginasLeidasen el número de páginas especificado.progreso() -> Double: Devuelve el porcentaje de páginas leídas.
class Libro {
var titulo: String
var autor: String
var numeroDePaginas: Int
var paginasLeidas: Int
init(titulo: String, autor: String, numeroDePaginas: Int, paginasLeidas: Int = 0) {
self.titulo = titulo
self.autor = autor
self.numeroDePaginas = numeroDePaginas
self.paginasLeidas = paginasLeidas
}
func leer(paginas: Int) {
paginasLeidas += paginas
}
func progreso() -> Double {
return (Double(paginasLeidas) / Double(numeroDePaginas)) * 100
}
}
let libro = Libro(titulo: "1984", autor: "George Orwell", numeroDePaginas: 328)
libro.leer(paginas: 50)
print(libro.progreso()) // Imprime 15.24390243902439Solución del Ejercicio
La clase Libro se define con las propiedades titulo, autor, numeroDePaginas y paginasLeidas. El método leer(paginas:) incrementa paginasLeidas en el número de páginas especificado, y el método progreso() calcula el porcentaje de páginas leídas.
Conclusión
En esta sección, hemos aprendido sobre las propiedades y métodos en Swift. Las propiedades pueden ser almacenadas o calculadas, y pueden pertenecer a instancias o a la clase en sí. Los métodos son funciones que operan sobre instancias o clases. Con estos conceptos, ahora puedes definir clases y estructuras más complejas y funcionales en Swift. En la próxima sección, exploraremos la herencia y cómo las clases pueden derivar de otras clases para reutilizar y extender la funcionalidad.
Curso de Programación en Swift
Módulo 1: Introducción a Swift
- Introducción a Swift
- Configuración del Entorno de Desarrollo
- Tu Primer Programa en Swift
- Sintaxis y Estructura Básica
- Variables y Constantes
- Tipos de Datos
Módulo 2: Control de Flujo
Módulo 3: Funciones y Closures
- Definición y Llamada de Funciones
- Parámetros de Función y Valores de Retorno
- Closures
- Funciones de Orden Superior
Módulo 4: Programación Orientada a Objetos
Módulo 5: Swift Avanzado
Módulo 6: Swift y Desarrollo de iOS
- Introducción al Desarrollo de iOS
- Fundamentos de UIKit
- Storyboards y Interface Builder
- Redes en Swift
- Core Data
- Fundamentos de SwiftUI
