Buenos efectos de sonido de los vehículos
Estructuras y Clases
Qué aprenderás sobre la programación orientada a objetos en Swift
Estructuras vs Clases
Estructuras: datos copiados por valor
Clases: datos referenciados
Tipos de Propiedades
Stored Properties
Lazy Stored Properties
Computed Properties
Computed Properties de sólo lectura
Property Observers
Type Properties
Métodos, subíndices y herencia
Métodos de instancia
Mutating Methods
Métodos de clase
Subíndices
Matrices usando subíndices
Herencia
Sobreescritura de variables y métodos
Inicializadores o constructores
Inicializadores
Nombres, etiquetas y optionals
Inicializadores en subclases
Failable Initializer
Destrucción de objetos con deinit
Encadenamiento opcional
Optional Chaining
Clases ejemplo para Optional Chaining
Ejemplo práctico con Optional Chaining
Optional Chaining múltiple
Conclusión
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Juan Gabriel Gomila
Aportes 7
Preguntas 0
Buenos efectos de sonido de los vehículos
Esta clase te hace reflexionar que antes de ponerte a codear busques maquetear como podrías hacerlo.
Quizá eso mejore tu productividad y calidad de código.
Interesante esto en otros lenguajes se llama sobrecarga de funciones.
Se le puede aplicar el final a la propia clase para que esta no tenga propiedad de herencia ?
import UIKit
class Vehiculo{
var currentSpeed=0.0
var description:String{
return “Viajanda a (currentSpeed) km/h”
}
func makeNoise(){
print( “El ruido depende del vehiculo”)
}
}
let someVehicle=Vehiculo()
print(someVehicle.description)
// herencia
class Bicyclew:Vehiculo{
var hasBasket=false
override func makeNoise() {
print(“El ruido de este vehiculo es Glin Glin”)
}
}
//herencia de hijo-- y este hereda de su padre
class Tandem:Bicyclew{
var currrentNumberOfPassangers=0
}
let tandem=Tandem()
tandem.hasBasket=true
tandem.currentSpeed=22.0
tandem.currrentNumberOfPassangers=2
print(" (tandem.description) y su cantidad de pasajeros es (tandem.currrentNumberOfPassangers)")
// override metodos padre
class Train:Vehiculo{
var numberOfWagones=0
override func makeNoise() {
print(“Chooooo Chooooooo”)
}
}
let train=Train()
train.makeNoise()
tandem.makeNoise()
Algo curioso es que con la palabra final evitamos que una clase hija sobreescriba variables, metodos etc.
Pero si intentamos asignarle un valor a esa variable final desde la instancia y no desde la definicion de la nueva clase, si se puede sobreescribir.
Ejemplo:
class Vehicle {
var color: String = ""
var currentSpeed: Double = 0.0
final var brand: String = "Renault"
}
var myVehicle = Vehicle()
myVehicle.brand = "Honda" // no da error y asigna correctamente el nuevo valor.
class Tank : gasCar {
var guns = 2
override func makeNoise() {
print("clan Clan")
}
}
class gasBike : motorCycle {
var tankCapacity = 5
override func makeNoise() {
print("brrr brrrr")
}
}
class cruise : boat{
var capacity = 500
override func makeNoise() {
print("buuuuu buuuu")
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?