Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

Resolução de Exercícios - 8. Hora da prática: instância de uma classe

1 - Crie uma Classe Pai (Veiculo): Implemente uma classe chamada Veiculo com um construtor que aceita dois parâmetros, marca e modelo. A classe deve ter um atributo protegido "ligado", inicializado como False por padrão.


class Veiculo:

    def __init__ (self, marca, modelo):

        self.marca = marca
        self.modelo = modelo
        self._ligado  = False

2 - Construa o Método Especial str: Adicione um método especial str à classe Veiculo que retorna uma mensagem formatada com a marca, modelo e o estado de ligado/desligado do veículo.


        def __str__ (self):

        return f"Marca: {self.marca} | Modelo: {self.modelo} | Ligado: {self._ligado}"

3 - Crie uma Classe Filha (Carro): Agora, crie uma classe chamada Carro que herda da classe Veiculo. No construtor da classe Carro, inclua um novo atributo chamado portas que indica a quantidade de portas do carro.

from atividades_curso.Atividade_N1.Veiculos import veiculo

class Carro (veiculo):

    def __init__ (self, marca, modelo, quantidade_portas):

        super().__init__ (marca, modelo)
        self.quantidade_portas = quantidade_portas

4 - Implemente o Método Especial str na Classe Filha: Adicione um método especial str à classe Carro que estenda o método da classe pai (Veiculo) e inclua a informação sobre a quantidade de portas do carro.

    def __str__ (self):

        return f"{super().__str__()} \nQuantidade de Portas: {self.quantidade_portas}"

5 - Crie uma Classe Filha (Moto): Similarmente, crie uma classe chamada Moto que também herda de Veiculo. Adicione um novo atributo chamado "tipo" ao construtor, indicando se a moto é esportiva ou casual.


from atividades_curso.Atividade_N1.Veiculos.veiculo import Veiculo

class Moto (Veiculo):

    def __init__ (self, marca, modelo, tipo):

        super().__init__ (marca, modelo)
        self.tipo = tipo

6 - Implemente o Método Especial str na Classe Filha (Moto): Adicione um método especial str à classe Moto que estenda o método da classe pai (Veiculo) e inclua a informação sobre o tipo da moto.


    def __str__ (self):

        return f"{super().__str__()} \nTipo da moto: {self.tipo}"

7 - Crie um Arquivo Main (main.py): Crie um arquivo chamado main.py no mesmo diretório que suas classes.


Insira aqui a descrição dessa imagem para ajudar na acessibilidade

8 - Importe e Instancie Objetos: No arquivo main.py, importe as classes Carro e Moto. Em seguida, crie três instâncias de Carro e Moto com diferentes marcas, modelos, quantidade de portas e tipos.

from Atividades_Curso.Atividade_N1.Veiculos.carro import Carro
from Atividades_Curso.Atividade_N1.Veiculos.moto import Moto

def main():

    c1 = Carro ("Toyota", "Corolla", 4)
    c2 = Carro ("Chevrolet", "Onix", 4)
    c3 = Carro ("Fiat", "Argo", 4)

    m1 = Moto ("Honda", "CG 160", "Casual")
    m2 = Moto ("Yamaha", "Factor 150", "Esportiva")
    m3 = Moto ("Honda", "CB 500F", "Casual")

9 - Exiba as Informações: Para cada instância, imprima no console as informações utilizando o método str.

    print (c1)
    print (c2)
    print (c3)
    print (m1)
    print (m2)
    print (m3)
2 respostas
solução!

Oi, Victor. Tudo bem com você?

Seu exercício ficou bem completo e você aplicou corretamente os principais conceitos de herança e orientação a objetos propostos na atividade. A classe Veiculo possui o construtor com marca e modelo, além do atributo protegido _ligado inicializado como False. Também utilizou o __str__() para representar os dados do objeto, e nas classes Carro e Moto você reaproveitou o comportamento da classe pai com super().

Continue compartilhando suas soluções no fórum, pois isso também ajuda outras pessoas que estão praticando os mesmos conceitos. O fórum fica à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Muito obrigado =) . Até que foi bem facinho, porque eu já tinah visto esses conceitos em Java, então só foi preciso traduzir a sintaxe.