Classe liquidificador

2 respostas
van_bommel
/*Exercício 02

Implemente um programa Java que simule um aparelho liquidificador com teclas.
O status da velocidade do liquidificador começa sempre em modo desligado (valor 0), 
podendo depois passar para as seguintes velocidades: velocidade 1 (baixa), velocidade 2 
(média baixa), velocidade 3 (média), velocidade 4 (média alta) e velocidade 5 (alta). 
Diferente do liquidificador com botão seletor, este aparelho consegue mudar de um nível de velocidade para outro diretamente.
Pede-se:

   1. Escreva um método que altere a velocidade apenas recebendo como parâmetro o número da velocidade desejada 
   (de zero a 5). Caso o usuário entrar com um valor menor que 0 ou maior que 5, a velocidade não é alterada.
   2. Escreva um método que implemente a funcionalidade desligar.
   3. Escreva um método que retorne a velocidade atual do liquidificador. Retorne um número.
   4. Escreva um método que imprima na tela a velocidade atual do liquidificador. Faça um chamado ao método do item 3. 
   Quando a velocidade for igual a zero, imprima "Desligado"; 1, "Velocidade baixa"; 2, "Velocidade média baixa"; 3, 
   "Velocidade média"; 4, "Velocidade média alta"; 5, "Velocidade alta".
*/

    public class  Liquidificador{
   
      private int velocidade ;
      private boolean  ligar , desligar ;
     
   
       public Liquidificador(  ) {
         velocidade = 0;
      }
      
       public  void     velocidadeDesejada ( int aumentarVelocidade ) {
         if ( aumentarVelocidade >=0 &&   aumentarVelocidade <= 5){
            while ( velocidade != aumentarVelocidade){
               velocidade ++;
            }
         }
         else 
         {
            while ( velocidade > aumentarVelocidade){
               velocidade --;
             
            }
                       
         }
       
      }
      
   
       public void desligar () {
         
         desligar =false ;
         this.velocidade = 0;
      
      	
      }
       public void ligar () {
      
         ligar = true ;
         this.velocidade=1;
      }
   	 
       public String  EstadoAtual () {
         if ( velocidade == 0 ){
            return ("desligado ");
         }
         else 
            return ("ligado ");
      }
   	 
   	
       public int  GetVelocidade (){
         return this.velocidade;
      }
   	
       public void ImprimirVelocidade () {
       
          
          
         if ( velocidade == 0)
            System.out.println("Estado  = "  + EstadoAtual()+" :"+GetVelocidade ());
               
            
               
            
         else if  ( velocidade == 1){
            
            System.out.println(EstadoAtual()+" = Velocidade baixa :" + GetVelocidade ()); 
         }
               
         else if  ( velocidade == 2){
            
            System.out.println(EstadoAtual() +"=" +" Velocidade media baixa : " +GetVelocidade ()); 
         }
             
         else if ( velocidade == 3){
            
            System.out.println(EstadoAtual()+"="+" Velocidade media :" +GetVelocidade ()); 
         }
               
               
         else if ( velocidade == 4){
            
            System.out.println(EstadoAtual()+"+" +"Velocidade media alta :"+GetVelocidade ()); 
         }
              
            
         else if ( velocidade == 5){
            
            System.out.println(" Velocidade alta  : "+ GetVelocidade ()); 
         
            
         
         }
      
      }
   }

estou começando em java agora
é a melhor forma de fazer ?

2 Respostas

Richard_Mendes_Madur

Já que você está começando agora, vou tentar ser o mais didático possível.
Para atender a esse problema eu faria da seguinte maneira:
Problema 1 - Não precisa de duas variaveis booleanas para armazenar o status do liquidicador. Se está ligado é status = true e desligado o status=false.
Mas se você quiser, não precisa de nenhuma variável booleana. Se está desligado a velocidade é zero e ligado é qualquer outro valor.
Problema 2 - Para desligar, basta modificar a velocidade do liquidificador para zero.
Problema 3 - Basta retornar o valor da variável velocidade.
Problema 4 - Para isso eu criei os objetos strings publicos no início da classe e dentro do método eu utilizo a estrutura switch-case.

public class Liquidificador{
	public static final String DESLIGADO = "Desligado";
	public static final String VELOCIDADE_BAIXA = "Velocidade Baixa";
	public static final String VELOCIDADE_MEDIA_BAIXA = "Velocidade Média Baixa";
	public static final String VELOCIDADE_MEDIA = "Velocidade Média";
	public static final String VELOCIDADE_MEDIA_ALTA = "Velocidade Média Alta";
	public static final String VELOCIDADE_ALTA = "Velocidade Alta";
	public int velocidade;
	
	//problema 1
	public void setVelocidade(int velocidade){
		if (velocidade>=0 && velocidade <=5){
			this.velocidade = velocidade;
		}
	}
	
	//problema 2
	public void desligar(){
		velocidade = 0;
	}
	
	//problema 3
	public int getVelocidadeAtual(){
		return velocidade;
	}
	
	//problema 4
	public void imprimeVelocidade(){
		String mensagem = "";
		
		switch(velocidade){
			case 0:
				mensagem = DESLIGADO;
				break;
			case 1:
				mensagem = VELOCIDADE_BAIXA;
				break;
			case 2:
				mensagem = VELOCIDADE_MEDIA_BAIXA;
				break;
			case 3:
				mensagem = VELOCIDADE_MEDIA;
				break;
			case 4:
				mensagem = VELOCIDADE_MEDIA_ALTA;
				break;
			case 5:
				mensagem = VELOCIDADE_ALTA;
				break;
		}
		System.out.println(mensagem);	
	}
}

Obs.: Acho que ainda ficaria mais orientado a objeto se fosse utilizado um enum para armazenar as velocidades do liquidificador.
Mais ou menos assim:

private enum VelocidadeLiquidificador{
	DESLIGADO(0, "Desligado"),
	VELOCIDADE_BAIXA(1, "Velocidade Baixa"),
	VELOCIDADE_MEDIA_BAIXA(2, "Velocidade Média Baixa"),
	VELOCIDADE_MEDIA(3, "Velocidade Média"),
	VELOCIDADE_MEDIA_ALTA(4, "Velocidade Média Alta"),
	VELOCIDADE_ALTA(5, "Velocidade Alta");

	private int velocidade;
	private String nome;

	private VelocidadeLiquidificador(int velocidade, String nome){
		this.velocidade = velocidade;
		this.nome = nome;
	}
	
	public int getVelocidade(){
		return velocidade;
	}
	
	public String getNomeVelocidade(){
		return nome;
	}
}

Com o enum acima, a sua classe liquidificador modificaria um pouco.
em vez de utilizar um int para armazenar a velocidade, você utilizaria o enum VelocidadeLiquidificador. E para modificar os seus valores bastaria fazer algo assim:

VelocidadeLiquidificador velocidadeLiquidificador = VelocidadeLiquidificador.VELOCIDADE_BAIXA;

Já para imprimir as velocidades, não precisaria mais do switch-case. Bastaria fazer assim na classe Liquidificador:

public void imprimeVelocidade(){
   System.out.println(velocidadeLiquidificador.getNomeVelocidade();
}

Espero ter ajudado.

van_bommel

valew cara você ajudo muito , o grande problema de estar começando a programar é complicar muito.e você enxugou o codigo e deixou melhor.

Criado 24 de maio de 2009
Ultima resposta 25 de mai. de 2009
Respostas 2
Participantes 2