Ir ao conteúdo

Chamar métodos para classe


Junior Borges

Posts recomendados

Postado

Galera to com um problema em chamar os métodos da minha classe.

o programa esta executando pelo netbeans, mas não esta fazendo os cálculos e nem exibindo o total q são os meus métodos.

AI VAI OS CÓDIGOS !

PRINCIPAL



package estadio;

import java.util.Scanner;

public class Estadio {


public static void main(String[] args) {

Scanner scan = new Scanner(System.in);
Menor14Anos menor = new Menor14Anos();


int ingresso;

System.out.println("Digite: \n 1- Camarote R$ 300,00 \n 2- Arquibancada R$ 100,00");
ingresso = scan.nextInt();


if(ingresso == 1){
System.out.println("ingresso para Camarote comprado !");

}
else if(ingresso == 2){
System.out.println("Ingresso para Arquibancada comprado !");

}
else{
System.out.println("Opção invalida");
}

String nome, cpf;
int idade;

Scanner leia = new Scanner(System.in);

System.out.println("Digite o nome do torcedor:");
nome= leia.nextLine();


System.out.println("Digite o CPF do torcedor:");
cpf= leia.nextLine();

System.out.println("Digite a idade do torcedor:");
idade = leia.nextInt();

if (idade <= 14) {
System.out.println("Torcedor tem desconto de 50% no ingresso");
int id = scan.nextInt();
menor.setcalcularIngresso(idade);
System.out.println("Preço do ingresso: " + menor.getexibirIngresso());
}

else System.out.println("Valor integral no ingresso"); {

}


}



}

CLASSE MENOR14ANOS


package estadio;


public class Menor14Anos {

int idade;
double precoI;


public void setcalcularIngresso(int idade){
this.precoI = (this.precoI * 0.50);
}

public double getexibirIngresso(){
return this.precoI;
}
}

Postado

public void setcalcularIngresso(int idade){
this.precoI = (this.precoI * 0.50);
}

primeiro, quando uma variavel dentro de uma classe não é iniciada, ela tem valor 0 (inteiros e pontos flutuantes), null (classes) e false (boolean).

Então quando você da new Menor14Anos(), as variaveis idade e precoI iniciam com valor 0, logo o metodo sempre vai retornar 0.

Minha solução seria essa:

import java.util.Scanner;

public class Program {

public static void main(String[] args) {
Scanner console = new Scanner(System.in);

Ingresso ingresso;

System.out.println("Digite: \n 1- Camarote R$ 300,00 \n 2- Arquibancada R$ 100,00");
int i = console.nextInt();

switch (i)
{
case 1:
ingresso = Ingresso.gerarIngressoCamarote();
break;
case 2:
ingresso = Ingresso.gerarIngressoArquibancada();
break;
default:
ingresso = Ingresso.gerarIngressoArquibancada();
}


System.out.println("Digite a idade:");
int idade = console.nextInt();
if (idade <= 14)
ingresso.descontoParaMenor();

System.out.println(ingresso);

console.close();
}
}

class Ingresso
{
private String tipo;
private float valor;

private Ingresso(String tipo, float valor)
{
this.tipo = tipo;
this.valor = valor;
}

public static Ingresso gerarIngressoCamarote()
{
return new Ingresso("Camarote", 300f);
}

public static Ingresso gerarIngressoArquibancada()
{
return new Ingresso("Arquibancada", 100f);
}

public void descontoParaMenor()
{
valor /= 2;
tipo += " (Menor de idade)";
}

public String toString()
{
return tipo + " R$ " + valor;
}
}

  • Moderador
Postado

Caso o autor necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...