Classes e métodos abstratos - Curso Programação Completo C# - Aula 39

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2024

ความคิดเห็น • 28

  • @maurorossi
    @maurorossi 3 ปีที่แล้ว +5

    Mais uma aula concluída! conceito reforçado! seguindo na saga...

  • @bartsilva5513
    @bartsilva5513 2 ปีที่แล้ว +2

    hummmm aula perfeita, os conceitos assimilados mas não estou conseguindo ainda captar o real uso do abstrato, preciso de uma utilização explicita para tal... vai amadurecendo .....rsrsrsrs
    ontem 24/05/2022 estava assim, hoje 25/05/2022 dia seguinte percebi a utilidade ....vai amadurecer ainda mais

  • @samuelbarondasilva32
    @samuelbarondasilva32 4 ปีที่แล้ว +16

    Aqui está o meu código bem comentado, pra quem não entendeu direito ou teve alguma duvida:
    using System;
    abstract class Veiculo{
    //Cria uma classe base Abstrata (Abstract)
    protected int MaxVel = 135, CurrentVel = 0;
    protected bool IsOn = false, IsMoving = false;
    public void TurnOn(){
    //Declara IsOn para True (Liga o Carro)
    IsOn = true;
    }
    public void TurnOff(){
    //Desliga o Carro Completamente
    IsOn = false;
    IsMoving = false;
    CurrentVel = 0;
    }
    public void SetMaxVel(int num){
    //Regula (Ou Seta) a Velocidade Máxima que o carro pode atingir
    MaxVel = num;
    }
    public void SetCurrentVel(int num){
    //Testa se o Carro está Ligado e se num é menor ou igual a
    //Velocidade Máxima
    if(IsOn && num = 1){
    //Se true, O carro está em Movimento
    IsMoving = true;
    }
    }
    }
    public int GetCurrentVel(){
    //Retorna o Valor da Velocidade Atual
    return CurrentVel;
    }
    public int GetMaxVel(){
    //Retorna o valor da Velocidade Máxima
    return MaxVel;
    }
    public bool IsItOn(){
    //Retorna se o carro está ligado ou não
    return IsOn;
    }
    public bool IsItMoving(){
    //Retorna se o carro está em Movimento
    return IsMoving;
    }
    public void Stop(){
    //Para o carro Imediatamente
    CurrentVel = 0;
    IsMoving = false;
    }
    public void Info(){
    //Imprime no console todas as váriaveis sobre o carro
    Console.Clear();
    Console.WriteLine("Ligado: {0}", IsOn);
    Console.WriteLine("Em Movimento: {0}", IsMoving);
    Console.WriteLine("Velocidade Atual: {0}", CurrentVel);
    Console.WriteLine("Velocidade Máxima: {0}", MaxVel);
    }
    }
    class Carro:Veiculo{
    //Herda todas as Caracteristicas da Classe Veiculo
    //Caso houvesse uma classe instanciada como abstract na classe base,
    //Seria necessário a delcrarar aqui usando override
    public Carro(){
    //Cria um construtor para a Classe Carro
    /*(Ou seja, tudo que estiver aqui vai ser executado
    quando instanciado como objeto em Main)*/
    //Chama o Método Info da classe Base Veiculo
    Info();
    }
    }
    class Aula_039{
    static void Main(){
    //Cria um objeto da classe Carro com o nome de carro
    Carro carro = new Carro();
    }
    }

    • @chopskaue
      @chopskaue 4 ปีที่แล้ว +1

      muito bom sua compreesão da aula!! se mantiver esse ritmo vai ser um grande programador.

    • @rogerlopesdasilva
      @rogerlopesdasilva 3 ปีที่แล้ว +1

      Excelente amigo, código compreensível e bem comentado.

  • @niveasabriina211
    @niveasabriina211 4 ปีที่แล้ว +3

    Aula ótima, me ajudou muito na minha EAD 👏👏

  • @josiasribeiro2816
    @josiasribeiro2816 5 ปีที่แล้ว +4

    Muito bom cara! continue que tá sensacional!!

  • @leaords8538
    @leaords8538 3 ปีที่แล้ว +2

    Obg pelo vídeo ❤️

  • @wandersonlucio5857
    @wandersonlucio5857 5 ปีที่แล้ว +1

    Show mestre

  • @eversoncoutinhooficial
    @eversoncoutinhooficial 2 ปีที่แล้ว

    Aula top!

  • @ramosandresc
    @ramosandresc ปีที่แล้ว

    👍👍👍

  • @ricardoerickrebelo3380
    @ricardoerickrebelo3380 10 หลายเดือนก่อน +1

    Tem que impedir a velocidade atual de ser maior que a máxima:
    velocidadeAtual = Math.Min(velocidadeMaxima, velocidadeAtual + velocidade);

    • @braianguerra
      @braianguerra หลายเดือนก่อน +1

      pior ele esqueceu de fazer isso kkkk

    • @braianguerra
      @braianguerra หลายเดือนก่อน

      mas ainda o ponto da aula deu pra entender

    • @ricardoerickrebelo3380
      @ricardoerickrebelo3380 หลายเดือนก่อน

      ​@@braianguerraa questão é que ele tem essas falhas de lógica por não usar alguma tecnologia que ajudasse a avaliar a qualidade do código. Isso é em todos os cursos. Ele explica até lógica, que eu acho desnecessário. Mas esquece as boas práticas.

  • @Igor-bx4qr
    @Igor-bx4qr 3 ปีที่แล้ว +6

    toma
    using System;
    namespace Aula39ClassesMetodosAbstratos
    {
    abstract class Veiculo
    {
    protected int velMax;
    protected int velAtual;
    protected bool ligado;
    public Veiculo(){
    ligado = false;
    velAtual = 0;
    }
    public void setLigado(bool ligado)
    {
    this.ligado = ligado;
    }
    public int getVelAtual()
    {
    return velAtual;
    }
    abstract public void aceleracao(int mult);

    }
    class Carro:Veiculo
    {

    public Carro()
    {
    velMax = 120;
    }
    override public void aceleracao(int multi)
    {
    velAtual += 10*multi;
    }
    }
    class Program
    {
    static void Main(string[] args)
    {
    Carro c1 = new Carro();
    c1.aceleracao(2);
    c1.aceleracao(-1);
    Console.WriteLine(" e vel atual é:{0}",c1.getVelAtual());
    }
    }
    }

  • @edinhofilho0
    @edinhofilho0 3 ปีที่แล้ว

    Estou fazendo o curso desde o início, mas estou tendo muita dificuldade nessas diferentes class, não entendo em que situação irei precisar usar cada uma delas.

    • @labyrintho9360
      @labyrintho9360 3 ปีที่แล้ว +3

      Apenas aprenda elas, quando chegar o momento, você vai lembrar delas e vai conseguir fazer algo que precise delas! Como as classes derivadas, se você vai montar um app de vender carros e motos e barcos, vc cria a classe "Veiculo" e as derivadas são "Carro" "Moto" "Barco", entendeu? todas elas vão herdar da "veiculo" oque um veiculo tem, que é velocidade minima e maxima, rotações por minuto de roda ou hélice, entendeu? dá pra fazer muitas coisas com classes derivadas!

    • @yussefelkadri9788
      @yussefelkadri9788 3 ปีที่แล้ว

      mesma coisa por aqui, mas decidi deixa rolar e ver se no momento oportuno consigo aplicar elas...

  • @DiegoOliveiraProf
    @DiegoOliveiraProf 4 ปีที่แล้ว

    existe o modificador de acesso package?

    • @teamremmnants6842
      @teamremmnants6842 3 ปีที่แล้ว

      Package é algo relacionado ao java pra organizar pastas n ?

  • @chagud
    @chagud 4 ปีที่แล้ว +24

    cara tira um pouco do zoom ficaconfuso vendo poucas palavras

  • @jokerphoenix3788
    @jokerphoenix3788 9 หลายเดือนก่อน

    ja faz um tempo que o cara só usa carro de exemplo agora que percebi xD

  • @henriquesoares4753
    @henriquesoares4753 3 ปีที่แล้ว

    up

  • @leaords8538
    @leaords8538 3 ปีที่แล้ว +3

    Por que tem tantas tipo diferente de tudo kkkkkkk eu podia colocar simplesmente uma classe public e dava na mesma. Ou não kkkkk .o abstract ou os outros tipos so tiram recurso . Eu to perguntando oq não sei onde usar esses outros tipo ou pq usar eles

    • @drcoffees
      @drcoffees 3 ปีที่แล้ว +4

      Classes abstract (também as interfaces) são como uma simplificação de código, ou seja, ajuda na organização, manutenção e por exemplo na repetição de código no caso do abstract (porque a interface obriga a implementação). Um outro exemplo, você tem duas classes que tem códigos iguais e decide fazer uma herança:
      namespace Test
      {
      class A
      {
      public void MetOne()
      {
      System.Console.WriteLine("Classe A feita!");
      // Faz oque se pede...
      }
      public void MetTwo()
      {
      System.Console.WriteLine("Classe A feita!");
      // Faz oque se pede...
      }
      }
      class B : A { }
      }
      O código acima foi feito de forma errada, pois, qualquer alteração na classe A afetará a classe B, então para evitar erros futuros fazemos o seguinte:
      namespace Test
      {
      abstract class AB
      {
      public void MetOne()
      {
      System.Console.WriteLine("Classe A feita!");
      // Faz oque se pede...
      }
      public void MetTwo()
      {
      System.Console.WriteLine("Classe A feita!");
      // Faz oque se pede...
      }
      }
      class A : AB { }
      class B : AB { }
      }
      Agora qualquer alteração ou manutenção na classe A será apenas da classe A.
      Espero que minha explicação tenha sido boa cara, abraços 👍👍👍

    • @leaords8538
      @leaords8538 3 ปีที่แล้ว

      @@drcoffees muito obg mn ❤️😍

  • @primata83
    @primata83 2 ปีที่แล้ว

    visto