26. Programación orientada a objetos III
Vídeo
Notas personales
Traslademos a código fuente algunos de los conceptos examinados en las dos lecciones anteriores. La sintaxis para crear la clase Coche
sería:
class Coche():
instrucciones
Empecemos declarando las propiedades de la clase Coche
:
class Coche():
largo_chasis = 250
ancho_chasis = 120
ruedas = 4
en_marcha = False
Definamos comportamientos para los futuros objetos que pertenezcan a esta clase, que vienen determinados por distintos métodos:
class Coche():
largo_chasis = 250
ancho_chasis = 120
ruedas = 4
en_marcha = False
def function(self):
pass
En Sublime Text 3 cuando empezamos a escribir def
nos ofrece dos opciones, crear una función o un método. La principal diferencia radica en que la primera no pertenece a ninguna clase, al contrario que la segunda. Podemos, a través de los cursores, escoger en el editor la opción que apunta a un método y se nos proporciona la sintaxis de uno por defecto, como el que se muestra arriba.
Una vez editado, el código queda:
class Coche():
largo_chasis = 250
ancho_chasis = 120
ruedas = 4
en_marcha = False
def arrancar(self):
pass
Nota: self
hace referencia al propio objeto perteneciente a la clase, es decir, a la instancia perteneciente a la clase.
Construyamos un objeto de la clase Coche
y veamos cómo acceder a sus propiedades:
mi_coche = Coche() # Instanciación de una clase
print("Largo del coche: ", mi_coche.largo_chasis) # Largo del coche: 250
print("Número de ruedas: ", mi_coche.ruedas) # Número de ruedas: 4
Trabajemos en el método declarado, para ello, escribimos:
class Coche():
largo_chasis = 250
ancho_chasis = 120
ruedas = 4
en_marcha = False
def arrancar(self):
self.en_marcha = True
Así, ahora:
print("En marcha: ", mi_coche.en_marcha) # En marcha: False
mi_coche.arrancar()
print("En marcha: ", mi_coche.en_marcha) # En marcha: True
Esta última acción la podríamos haber llevado a cabo a través de otro comportamiento, estado
:
class Coche():
largo_chasis = 250
ancho_chasis = 120
ruedas = 4
en_marcha = False
def arrancar(self):
self.en_marcha = True
def estado(self):
if self.en_marcha:
return "El coche está en marcha."
else:
return "El coche está parado."
print(mi_coche.estado()) # El coche está parado.
mi_coche.arrancar()
print(mi_coche.estado()) # El coche está en marcha.
En resumen, hemos creado la clase Coche
, que se caracteriza por poseer cuatro propiedades y dos comportamientos.
Código fuente
El código fuente y los posibles ficheros externos generados correspondientes a esta lección se encuentran disponibles para su consulta en la carpeta /lecciones/26/
del
repositorio.