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.

Anterior
Siguiente