image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Kleiton Aparecido
Kleiton Aparecido06/06/2024 22:18
Compartilhe
WEX - End to End EngineeringRecomendados para vocêWEX - End to End Engineering

Alteração de Classe SmartTV

  • #Java

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
Recomendados para você
TONNIE - Java and AI in Europe
Deal - Spring Boot e Angular (17+)
Cognizant - Arquitetura com Spring Boot e Cloud
Comentários (0)
Recomendados para vocêWEX - End to End Engineering