Bom estou assistindo várias video aulas e também lendo alguns livro para a linguagem java, e depois de ver algumas video aulas e ler alguns capitulos de livro resolvi então, fazer um exercício para ter certeza que apreendi algo e estou com uma dúvida em um aspecto simples.
Eu destaquei no código a parte que está me dando poblema.
o poblema que está dando é o seguinte, a variável totalOvosGranja recebe a quantidade de ovos botados pelos objetos galinha1 e galinha2(somados), e ai que aparece o poblema, declarei um método MediaOvosgranja() que retorna um double no caso eu coquei para retornar totalOvosGranja/2, agora se o totalOvosGranja for um número par
ele me devolve um resultado correto, mais se ele for impar por exemplo 3 , ele me devolve 1.0,sendo que 3/2 é igual a 1,5, se o totalOvosGranja for 5, ele me devolve 2.0, nessa sequencia, se alguem puder me ajudar ficaria muito grato :shock: ;
[code]package MetodosVariaveisStatic;
import javax.swing.JOptionPane;
public class GalinhaMain {
public static void main(String[] args) {
Galinha galinha1 = new Galinha();
Galinha galinha2 = new Galinha();
int opcao=0;
do{
opcao = Integer.parseInt(JOptionPane.showInputDialog("GRANJA OVOS BONS" + "\n" + "1- Ações da galinha" + "\n" +
"2- Ver Quantidade e média de ovos da galinha" + "\n" + "3- informações da granja" +"\n" + "0- sair"));
switch (opcao) {
case 0:
opcao = 0;
JOptionPane.showMessageDialog(null, "Sistema finalizado","Finalizado",JOptionPane.PLAIN_MESSAGE,null);
break;
case 1:
do{
opcao = Integer.parseInt(JOptionPane.showInputDialog("1- Botar ovo com gainha 1" + "\n" + "2- botar ovo com galinha 2"
+ "\n" +"0- Sair"));
switch (opcao) {
case 0:
opcao = 0;
break;
case 1:
galinha1.BotarOvos();
JOptionPane.showMessageDialog(null, "A Galinha 1 botou 1 ovo, ele foi adicionado a conta");
break;
case 2:
galinha2.BotarOvos();
JOptionPane.showMessageDialog(null, "A Galinha 2 botou 1 ovo, ele foi adicionado a conta");
break;
default:
JOptionPane.showMessageDialog(null, "Digito inválido","inválido",JOptionPane.ERROR_MESSAGE,null);
opcao = 1;
break;
}// final swt
}while(opcao != 0);
opcao = 1;
break;
case 2:
JOptionPane.showMessageDialog(null, "Número de ovos botados pela 1º galinha: " + galinha1.getOvosBotados() + "\n" +
"Arrecadamento da 1º galinha: " + galinha1.ArrecadementoGalinha() + "\n" + "Número de ovos botados pela 2º galinha: " +
galinha2.getOvosBotados() + "\n" + "Arrecadamento da 2º galinha: " + galinha2.ArrecadementoGalinha() );
// exibir o quanto cada galinha colocou de ovos, a quantidade total pertencente a granja, a média de ovos e o preço total dos ovos;
break;
case 3:
JOptionPane.showMessageDialog(null, "Ovos na grajas: " + Galinha.getTotalOvosGranja() + "\n" + "Média dos ovos da granja: " +
Galinha.MediaOvosgranja() + "\n" + "Valor obtido: " + Galinha.ArrecadamentoGraja());
break;
default:
JOptionPane.showMessageDialog(null, "Digito inválido","invalido",JOptionPane.ERROR_MESSAGE,null);
opcao = 0;
break;
}
}while(opcao != 0);
}}
[/code]
[size=18] AGORA A OUTRA CLASE[/size]
[code]package MetodosVariaveisStatic;
import java.text.DecimalFormat;
public class Galinha {
private int ovosBotados; // ovos colocados por cada galinha
private double valorArrecadoGalinha; // valor em dinheiro do que a galinha rendeu;
private static double arrecadamentoGranja; // quanto a granja faturo em dinheiro, variavel pertencente a classe galinha e não ao objeto
private static int totalOvosGranja = 0;
public static final double PRECO_DO_OVO = 0.20;// constante global da classe, pode ser vista por todo o projeto
public Galinha(){
this(0,0,0);
}
//Construtor
public Galinha(int ovosBotados, float mediaOvosGalinha,double valorArrecadoGalinha) {
this.ovosBotados = ovosBotados;
this.valorArrecadoGalinha = valorArrecadoGalinha;
}
// getters e setters obejeto
public int getOvosBotados() {
return ovosBotados;
}
public void setOvosBotados(int ovosBotados) {
this.ovosBotados = ovosBotados;
}
public double getValorArrecadoGalinha() {
return valorArrecadoGalinha;
}
public void setValorArrecadoGalinha(double valorArrecadoGalinha) {
this.valorArrecadoGalinha = valorArrecadoGalinha;
}
//getters e setters da classe
public static double getArrecadamentoGranja() {
return arrecadamentoGranja;
}
public static void setArrecadamentoGranja(double arrecadamentoGranja) {
Galinha.arrecadamentoGranja = arrecadamentoGranja;
}
public static int getTotalOvosGranja() {
return totalOvosGranja;
}
public static void setTotalOvosGranja(int totalOvosGranja) {
Galinha.totalOvosGranja = totalOvosGranja;
}
// metodo auxiliar - segundario/indireto
private static final String FormatacaoValor(double valor){ // formatação de valor, não pode ser subscrito
DecimalFormat df = new DecimalFormat();
df.applyPattern("#0.00");
return df.format(valor);
}
//métodos objeto
public void BotarOvos(){
ovosBotados++; // acrecentando um ovo botado aoobjeto galinha
totalOvosGranja++; //acrecentando o avo ao total de ovos da granja
}
public String ArrecadementoGalinha(){ // retorna uma string com o valor arrecadado pela galinha
valorArrecadoGalinha = ovosBotados*PRECO_DO_OVO;
return "R$ " + FormatacaoValor(valorArrecadoGalinha);
}
//métodos da classe
public static double MediaOvosgranja(){ //media de ovos que tem na granja
return totalOvosGranja/2;
}
public static String ArrecadamentoGraja(){
arrecadamentoGranja = totalOvosGranja*PRECO_DO_OVO;
return "R$ " + FormatacaoValor(arrecadamentoGranja);
}[/code]