image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Kleiton Aparecido
Kleiton Aparecido06/06/2024 22:18
Compartilhe

Alteração de Classe SmartTV

    TÓPICO:

    Dominando a Linguagem Java

    MÓDULO

    Aprendendo a Sintaxe Java
    AULA: Métodos - 3
    Turma, alterei a classe SmartTV. Comentei algumas linhas. Na dúvida é só chamar.
    Dica de quando utilizar variáveis static: "Sempre usem variáveis de classe static quando as variáveis precisar transitar entres os métodos"
    O professor não utilizou variáveis static para não deixar o aluno bugado. Eu já venho estudando por conta já um tempo.
    Forte abraços e bons estudos. Qualquer dúvida favor chamar respondendo o presente tópico.
    Classe Driver:
    package dio.me.modulo02.dominando_a_linguagem_de_programacao_java._aprendendo_a_sintaxe_do_java.metodos;
    
    //Classe alterada por Kleiton Aparecido
    
    //https://www.linkedin.com/in/kleiton-aparecido/
    
    
    public class Usuario {
    
      public static void main(String[] args) {
    
    
          SmartTv tv = new SmartTv();
    
          System.out.println("Valores padrão dos estados da SmarTV:");
    
          System.out.println("tv.estaLigada: " + tv.estaLigada());
    
          System.out.println("tv.canal: " + tv.getCanal());
    
          System.out.println("tv.volume: " + tv.getVolume());
    
      
    
          tv.trocarCanal(120);
    
          System.out.println("tv.trocarCanal(120): " + tv.getCanal());
    
          System.out.println();
    
          tv.trocarCanal(50);
    
          System.out.println("tv.trocarCanal(100): " + tv.getCanal());
    
          System.out.println();
    
          
          System.out.printf("%n%n%s%n", "Girando o botão volume 150 vezes para provar"
    
              + " que o método de validação não deixa ultrapassar do volume máximo de 100");
    
    
          for (int volume = 1; volume <= 150; volume++) {
    
              tv.aumentarVolume();
    
          }
    
          
    
          System.out.println("Botão volume girado 150 vezes mas com valor máximo de 100 respeitado");
    
          System.out.println("FOR executado 150 vezes --> tv.aumentarVolume()");
    
          
    
          System.out.println();
    
          System.out.println("Validando limite de canais até canal de número 100");
    
          System.out.printf("%s%n", "Apertando o botão de canais 150 vezes para provar"
    
                  + " que o método de validação não deixa ultrapassar o canal de número máximo de 100");
    
          
    
          for (int canal = 1; canal <= 100; canal++) {
    
              tv.aumentarCanal();
    
          }
    
          System.out.println("Botão canal pressionado 150 vezes mas com valor máximo respeitado de até 100 canais");
    
          System.out.println("FOR executado 150 vezes --> tv.aumentarCanal(): " + tv.getVolume());
    
      
      }
    
    }
    

    Classe do objeto SmartTV

    package dio.me.modulo02.dominando_a_linguagem_de_programacao_java._aprendendo_a_sintaxe_do_java.metodos;
    
    // Classe alterada por Kleiton Aparecido
    
    // https://www.linkedin.com/in/kleiton-aparecido/
    
    
    public class SmartTv {
    
      private boolean ligada = false;
      private static int canal = 1;
      private static int volume = 25;
    
    
      // uso modificador de acesso static para utilizar em todos os métodos da classe
    
      private static int aumentaOuBaixaVolume;		
    
      private static int proximoCanalOuAnterior;
    
    
      public void ligar() {
    
          ligada = true;
    
      }
    
      
      public boolean estaLigada() {
    
          return ligada;
    
      }
    
    
      public void desligar() {
    
          ligada = false;
    
      }
    
      
      public int getCanal() {
    
          return canal;
    
      }
    
      
    
      public int getVolume() {
    
          return canal;
    
      }
    
      
    
      // sobrecarga de método
    
      private void validarCanal(int canal) {
    
          if (canal >= 0 && canal <= 100) {
    
              SmartTv.canal = canal;
    
          }
    
      }
    
      
      // sobrecarga de método
    
      private void validarCanal() {
    
          if (proximoCanalOuAnterior >= 1 && proximoCanalOuAnterior <= 100) {
    
              canal = proximoCanalOuAnterior;
    
              exibeCanalOuVolume(canal);
    
          }
    
      }
    
    
      public void trocarCanal(int novoCanal) {
    
          validarCanal(novoCanal);
    
      }
    
    
      public void aumentarCanal() {
    
      /* variável static proximoCanalOuAnterior para aplicar lógica de não precisar passar o valor por parâmetro
    
         tornando o método mais coeso */
    
          proximoCanalOuAnterior = canal;
    
          proximoCanalOuAnterior++;
    
          validarCanal();
    
      }
    
    
      private void exibeCanalOuVolume(int valorExibicao) {
    
          System.out.println(valorExibicao);
    
      }
    
    
      public void diminuirCanal() {
    
          // variável static proximoCanalOuAnterior para aplicar lógica de não precisar passar o valor por parâmetro
    
          proximoCanalOuAnterior = canal;
    
          proximoCanalOuAnterior--;
    
          validarCanal();
    
      }
    
      
    
    // método criado pensando na reutilização de código, seguindos boas práticas de Programação Orientada a Objetos
    
      private void validarVolume() {
    
          if (aumentaOuBaixaVolume >= 0 && aumentaOuBaixaVolume <= 100) {
    
              volume = aumentaOuBaixaVolume;
    
              exibeCanalOuVolume(volume);
    
          }
    
      }
    
    
      public void aumentarVolume() {
    
          aumentaOuBaixaVolume = volume;
    
          aumentaOuBaixaVolume++;
    
          validarVolume();
    
      }
    
    
      public void diminuirVolume() {
    
          aumentaOuBaixaVolume = volume;
    
          aumentaOuBaixaVolume--;
    
          validarVolume();
    
      }
    
    }
    
    Compartilhe
    Comentários (0)