Ajuda com exercício orientado a objetos

4 respostas
ucastrobr

Tem um exercício no Livro que pede para o usuário inserir 3 valores e usando Math.min dizer qual é o menor. O código abaixo funciona muito bem. Mas queria melhorá-lo. Fiz assim:

import javax.swing.JOptionPane;

public class Minimo {
int result=0;
int number1, number2, number3;

  public void exibe(){
  String n1 = JOptionPane.showInputDialog("Escreva o primeiro número ");
  String n2 = JOptionPane.showInputDialog("Escreva o segunto número ");
  String n3 = JOptionPane.showInputDialog("Escreva o terceiro número ");
	int number1= Integer.parseInt(n1);
	int number2= Integer.parseInt(n2);
	int number3= Integer.parseInt(n3);
	System.out.printf("\nO menor dos três é %d\n\n",((int)Math.min(Math.min(number1,number2),number3)));
	}
			
	}

Primeira pergunta :Como eu faria em vez de colocar todo o cálculo em System.out.printf colocar o cálculo Math.min num método tipo int que retornasse o valor. Tipo um public int min(int....){valor= Math.min.. return valor;
Não consegui fazer.

Segunda pergunta : Tem como eu usar o JOptionMessageDialog para retornar o cálculo em vez do System.out.printf.
Tentei fazer deu a mensagem de erro:

ulycris@ulycris:~/Desktop$ javac Minimo.java
Minimo.java:14: cannot find symbol
symbol  : method showMessageDialog(<nulltype>,java.lang.String,int)
location: class javax.swing.JOptionPane
        JOptionPane.showMessageDialog(null," O menor dos três é ",((int)Math.min(Math.min(number1,number2),number3)));
                   ^
1 error

Observação: Estou tentando aprender java sozinho com o livro por isso não peguem pesado com minha ignorância.

4 Respostas

fjvasconcellos

E ai ucastrobr!

O que vc queria fazer era mais ou menos assim:

package testemath;

import javax.swing.JOptionPane;

public class Minimo {

    //numeros que serão digitados e apresentados ao usuário
    private int numero1,  numero2,  numero3,  menor12,  menorFinal;

    public void adiquiriDados() {
        numero1 = Integer.parseInt(JOptionPane.showInputDialog("Enre com o priemiro numero!"));
        numero2 = Integer.parseInt(JOptionPane.showInputDialog("Enre com o segundo numero!"));
        numero3 = Integer.parseInt(JOptionPane.showInputDialog("Enre com o terceiro numero!"));
    }

    private int achaMenor() {
        int aux = Math.min(numero1, numero2);
        menorFinal = Math.min(aux, numero3);
        return menorFinal;
    }

    public void exibeMenor() {
        // JOptionPane que exibe o resultado na tela!!
        JOptionPane.showMessageDialog(null, "O menor numero entre é: " + achaMenor(),
                "Resultado", JOptionPane.INFORMATION_MESSAGE);
    }

    public static void main(String[] args) {
        Minimo m = new Minimo();//Objeto da sua classe minimo

        m.adiquiriDados();//chama o metodo que ira adquirir os numeros.
        m.exibeMenor();//chama o metodo que ira exibir os numeros.        
    }
}

qualquer coisa tamo ai pra ajudar..

Continue com Java, é uma exelente linguagem!!!

OliveirakunJava
Cara da uma olhada nesse:
import javax.swing.*;

public class Minimo {
	int a;
	int b;
	int c;
          	
	public  int getMinimo(){
		int z=(int)Math.min(a,(Math.min(b,c)));
		return z;
	}

	public void setNumeros(){
	try{
			a=Integer.parseInt(JOptionPane.showInputDialog("Digite o 1º numero"));
			b=Integer.parseInt(JOptionPane.showInputDialog("Digite o 2º numero"));
			c=Integer.parseInt(JOptionPane.showInputDialog("Digite o 3º numero"));
					
		}catch(NumberFormatException e){
			JOptionPane.showMessageDialog(null,"Digite apenas números!");
			System.exit(0);
		}
	}
	
	
	
	public static void main(String[] args){
		Minimo a=new Minimo();
		a.setNumeros();
		JOptionPane.showMessageDialog(null,"O menor número é: "+a.getMinimo());
	}
}
É bom você colocar a parte do código que converte String em int em um bloco try/catch pois pode haver erros se o usuário digitar uma letra ao invés de um número. Como você pode perceber existem várias maneiras de se fazer um código para uma determinada função. Continue com seu aprendizado e boa sorte!
ucastrobr

Obrigado aos colegas acima. Era isso mesmo que queria.
Depois que aprender bem o livro Java como programar, daí é capaz de fazer um curso tipo Caelum ou GlobalCode.

OliveirakunJava

Obrigado aos colegas acima. Era isso mesmo que queria.
Depois que aprender bem o livro Java como programar, daí é capaz de fazer um curso tipo Caelum ou GlobalCode.

Da uma olhada no código acima pois mudei ele, agora sim está orientado a objetos…hehe
Se você tem facilidade em aprender sozinho recomendo que estude pelo livro Use a Cabeça Java da Kathy Sierra e do Bert Bates que é ótimo e ensina bem os conceitos de orientação á objeto necessários para o aprendizado da linguagem, acho ele muito melhor que o livro do Deitel.

Criado 14 de setembro de 2008
Ultima resposta 14 de set. de 2008
Respostas 4
Participantes 3