Como retornar 2 ou + valores em um método ?
Olá,
Eu criei esse método :
E eu gostaria de criar um método getCalculo retornando os valores para o objeto:
Como eu faria isso ?
Desde já. Obrigado,
Gustavo
public void setCalculo() {
if (ano <= 2000) {
desconto = 0.12;
totAte2000 += 1;
} else {
desconto = 0.07;
totMais2000 += 1;
}
}
double desconto; int totAte2000; int totMais2000;
Gustavo
Curtidas 0
Respostas
Ricardo Viana
04/08/2011
Retornando um array de valores:
Só não entendi o que esse seu método faz (nem tentei quando percebi que as variáveis eram globais).
public int[] setCalculo() {
if (ano <= 2000) {
desconto = 0.12;
totAte2000 += 1;
} else {
desconto = 0.07;
totMais2000 += 1;
}
int[] valores = new int[] {totAte2000,totMais2000}; //Aqui você coloca os valores para retorno, separados por virgula
return valores;
}GOSTEI 0
Douglas Eric
04/08/2011
se as variaveis são de atributo (não globais que isso não é pascal!), então... pra que você quer retorná-las?
GOSTEI 0
Douglas Eric
04/08/2011
Retorne um objeto que tenha como atributo os valores que voce precisa.
GOSTEI 0
Douglas Eric
04/08/2011
Oi Gente, obrigado !!
Desculpa eu acho que realmente eu fui muito vago na minha pergunta.
Mas o que queria era talvez reduzir o tamanho do código, retornando mais de um valor no mesmo método, pois achava que tinha algum jeito.
Consegui copilar o código que queria , ele acabou ficando meio grande, mas acho que não tem outro jeito. (??)
Vê o que vocês acham ? ... acrescente sugestões !! (Obrigado)
Valeu gente obrigado
import javax.swing.JOptionPane;
public class ValorCarro {
int valor;
double valorFinal;
int ano;
boolean sair;
double desconto;
int totAte2000;
int totMais2000;
public void setinfo() {
valor = Integer.parseInt(JOptionPane
.showInputDialog("Digite o valor do carro"));
ano = Integer.parseInt(JOptionPane
.showInputDialog("Digite o ano do carro"));
}
public int getValor() {
return valor;
}
public int getAno() {
return ano;
}
public void Calculo() {
if (ano <= 2000) {
desconto = valor * 0.12;
totAte2000 += 1;
} else {
desconto = valor * 0.07;
totMais2000 += 1;
}
valorFinal = valor - desconto;
}
public double getDesconto() {
return desconto;
}
public double getValorFinal() {
return valorFinal;
}
public int getTotAte2000() {
return totAte2000;
}
public int getTotMais2000() {
return totMais2000;
}
public void imprimir1() {
JOptionPane.showMessageDialog(null,
"O valor final do carro com desconto é de \n" + "R$ "
+ valorFinal);
}
public void setSair() {
int y = 0;
y = Integer
.parseInt(JOptionPane
.showInputDialog("Você deseja continuar a usar o programa ?" + "\n"
+ "Digite (1)- Sim , (2)- Nao"));
switch (y) {
case 1:
sair = true;
break;
case 2:
sair = false;
break;
}
}
public boolean getSair() {
return sair;
}
public static void main(String[] args) {
ValorCarro a1 = new ValorCarro();
do {
a1.setinfo();
a1.getValor();
a1.getAno();
a1.Calculo();
a1.getDesconto();
a1.getValorFinal();
a1.getTotAte2000();
a1.getTotMais2000();
a1.imprimir1();
a1.setSair();
a1.getSair();
} while (a1.sair == true);
JOptionPane.showMessageDialog(null, "Foram calculados " + "\n"
+ a1.totAte2000 + " carros com ano até 2000 " + "e" + "\n"
+ a1.totMais2000 + " carros com ano maior de 2000 ");
}
}
GOSTEI 0
Ial Silva
04/08/2011
Pelo que eu entendi tu quer reduzir o tamanho do teu código?!?!?!?
Começa declarando as variáveis que são do mesmo tipo, lado a lado.
GOSTEI 0
Douglas Eric
04/08/2011
[quote="ialjonas"]Pelo que eu entendi tu quer reduzir o tamanho do teu código?!?!?!?
Começa declarando as variáveis que são do mesmo tipo, lado a lado.
não, não e NÃO!
"diminuir código" não tem nada a ver com diminuir o numero de linhas
e sim deixar um código mais enxuto, resumido, e de facil leitura.
Declarar mais variaveis do mesmo tipo é possível, mas é uma péssima tecnica.
Deixa o código dificil de ler, e muito mais facil de você se perder e acabar fazendo algo que não devia quando for fazer manutenção do código.
Se fosse só para diminuir linhas, você podia fazer o código inteiro em uma linha só.
GOSTEI 0
Douglas Eric
04/08/2011
[quote="staroski"]Retorne um objeto que tenha como atributo os valores que voce precisa.
Caro staroski,
achei interessante sua colocação.
Supondo que eu tenha um código de uma calculadora, utilizando como GUI somente o JOptionPane. A calculadora deve receber 2 números (um de cada vez), a operação a ser realizada, realizar o cálculo e exibir o resultado.
Esse seria um exemplo didático para meus alunos, então solicitei a eles que separassem cada atividade em um método diferente, portanto existem os seguintes métodos:
+ int pegaNumero1()
+ int pegaNumero2()
+ int pegaOperacao() -- utilizando switch case
+ double calculaResultado()
+ int exibeResultado()
Como eu poderia fazer um único método que pegasse com 2 OptionPanes os 2 números, os armazenassem em um vetor e depois eu pudesse passar o resultado desse método para o método calculaResultado() ?
Obrigado,
GOSTEI 0
Marcelo Senaga
04/08/2011
[quote="airmigjr"][quote="staroski"]Retorne um objeto que tenha como atributo os valores que voce precisa.
Caro staroski,
achei interessante sua colocação.
Supondo que eu tenha um código de uma calculadora, utilizando como GUI somente o JOptionPane. A calculadora deve receber 2 números (um de cada vez), a operação a ser realizada, realizar o cálculo e exibir o resultado.
Esse seria um exemplo didático para meus alunos, então solicitei a eles que separassem cada atividade em um método diferente, portanto existem os seguintes métodos:
+ int pegaNumero1()
+ int pegaNumero2()
+ int pegaOperacao() -- utilizando switch case
+ double calculaResultado()
+ int exibeResultado()
Como eu poderia fazer um único método que pegasse com 2 OptionPanes os 2 números, os armazenassem em um vetor e depois eu pudesse passar o resultado desse método para o método calculaResultado() ?
Obrigado,
GOSTEI 0