Problema no Boolean.

Java

27/09/2017

Olá pessoal, estou com um problema eu um programa onde tenho que guarda
dados privados para armazenar a frequência de clock, o tamanho do HD e nome do processador, e tenho que entrar com dois tipos de dados e ver se são iguais ou não usando boolean ,s endo que o resultado sempre volta false.
Se alguém poder ajudar , ficaria muito grato.

segue o codigo
public class Computador {
	
	private int clock;
	private int tamanhoHD;
	private String nomeProcessador;
	
	public void setClock(int clock){
		this.clock = clock;
	}
	public int getClock(){
		return this.clock;
	}

    public void setTamanhoHD(int tamanhoHD){
		this.tamanhoHD = tamanhoHD;
	}
	public int getTamanhoHD(){
		return this.tamanhoHD;
	}
	public void setNomeProcessador(String nomeProcessador){
		this.nomeProcessador = nomeProcessador;
	}
	public String getNomeProcessador(){
		return this.nomeProcessador;
	}
    
    public void print(){
    		System.out.println("Quantidade de hertz: ");
    		System.out.println("tamanho do HD: ");
    		System.out.println("Nome do processador: ");
    		System.out.println("");
    }
    
    public boolean saoIguais(Computador c2){
    	boolean  x;
    	if(this.nomeProcessador.equals(c2.nomeProcessador) && this.tamanhoHD == c2.tamanhoHD && this.clock == c2.clock){
    		x=true;
    	}else{
    		x=false;
    	}
    	return x;
    }
    public String comparaCom(Computador c2){
    	String resul = "";
    	if(this.tamanhoHD > c2.tamanhoHD){
    		System.out.println("esse é maior (this)" + this.tamanhoHD);
    	}
    	else{
    		System.out.println("esse é maior (c1)" + c2.tamanhoHD);
    	}
    	if(this.clock > c2.clock){
    		System.out.println("esse é maior (this)" + this.clock);
    	}
    	else{
    		System.out.println("esse é maior (c1)" + c2.clock);
    }
	return resul;
}

}

aqui é saída dos dados
import java.util.Scanner;

public class TesteComputador {
   
    public static void main(String[] args) {
       Computador f1 = new Computador();
       Computador f2 = new Computador();

       Scanner ler = new Scanner(System.in);
   	   
       System.out.println("Quantidade de hertz: ");
         f1.setClock(ler.nextInt());
       System.out.println("tamanho do HD: ");
         f1.setTamanhoHD(ler.nextInt());
       System.out.println("Nome do processador: ");
         f1.setNomeProcessador(ler.next());

       System.out.println("Quantidade de hertz: ");
        f1.setClock(ler.nextInt());
       System.out.println("tamanho do HD: ");
        f1.setTamanhoHD(ler.nextInt());
       System.out.println("Nome do processador: ");
        f1.setNomeProcessador(ler.next());
        
		System.out.println("eles são: " +  f1.saoIguais(f2));
		
        System.out.println("esse é maior: " + f1.comparaCom(f2));

		
    }
}

Kaleb Pignaton

Kaleb Pignaton

Curtidas 0

Respostas

Marcos Saffran

Marcos Saffran

27/09/2017

Olá Kaleb,

no seu código você não está lançando valores para f2, está lançando valores para f1, então sugiro que altere a parte do código:

       System.out.println("Quantidade de hertz: ");
         f1.setClock(ler.nextInt());
       System.out.println("tamanho do HD: ");
         f1.setTamanhoHD(ler.nextInt());
       System.out.println("Nome do processador: ");
         f1.setNomeProcessador(ler.next());

       System.out.println("Quantidade de hertz: ");
        f1.setClock(ler.nextInt());
       System.out.println("tamanho do HD: ");
        f1.setTamanhoHD(ler.nextInt());
       System.out.println("Nome do processador: ");
        f1.setNomeProcessador(ler.next());


para:
       System.out.println("Quantidade de hertz: ");
         f1.setClock(ler.nextInt());
       System.out.println("tamanho do HD: ");
         f1.setTamanhoHD(ler.nextInt());
       System.out.println("Nome do processador: ");
         f1.setNomeProcessador(ler.next());

       System.out.println("Quantidade de hertz: ");
        f2.setClock(ler.nextInt());
       System.out.println("tamanho do HD: ");
        f2.setTamanhoHD(ler.nextInt());
       System.out.println("Nome do processador: ");
        f2.setNomeProcessador(ler.next());


Dessa forma a comparação dará true, caso lance valores iguais.

Até mais
GOSTEI 0
POSTAR