Bom dia galera…
Estou programando uma aplicação java de uma conta bancária e estou com uma dificuldade. (Sou iniciante)
Criei uma classe Conta com todos os métodos (sacar, depositar, transferir, saldo), depois criei mais duas classes ContaCorrente e ContaInvestimento, as duas herdam da classe Conta. Criei uma outra classe com o nome MenuBanco, com o menu simples solicitando todos os métodos. Como faço para criar um objeto chamando das classes ContaCorrente e ContaInvestimento?
ClasseCorrente cc = new ClasseCorrente();
ClasseInvestimento ci = new ClasseInvestimento();
Qual a dificuldade com isso?
Ele não reconhece, diz que tenho que criar uma variável local…
Posta o código
Essas coisas que eu mostrei são o que, criatura?
Classe Conta
import java.util.Scanner;
public class Conta {
Scanner leia = new Scanner(System.in);
private double saldo;
public double sacar() {
double valor;
System.out.println("Valor do saque: ");
valor = leia.nextDouble();
System.out.println("Realizando Saque... " + valor);
return saldo = saldo - valor;
}
public double depositar() {
double valor;
System.out.println("Valor do depósito: ");
valor = leia.nextDouble();
System.out.println("Realizando Depósito... " + valor);
return saldo = saldo + valor;
}
public void transferir(Conta c, double valor) {
System.out.println("Valor da Transferência: ");
valor = leia.nextDouble();
System.out.println("Transferindo valor... " + valor);
System.out.println("Saldo: " + getSaldo());
sacar();
c.depositar();
}
public void mostrarSaldo() {
System.out.println("Saldo: " + getSaldo());
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
}
Classe ContaCorrente
import java.util.Scanner;
public class ContaCorrente extends Conta{
Scanner leia = new Scanner(System.in);
private String titular;
private float cpf;
private double valor;
private double saldo;
public ContaCorrente() {
System.out.println("Estamos processando sua solicitação!");
System.out.println("Nome do Titular: ");
titular = leia.nextLine();
System.out.println("CPF do Titular: ");
cpf = leia.nextFloat();
System.out.println("Valor de depósito inicial: (Mínimo R$ 50,00)");
valor = leia.nextDouble();
depositoInicial(valor);
System.out.println("Bem Vindo(a), " + titular);
System.out.println("Sua Conta Corrente já está em operação!");
}
public double sacar(double valor) {
System.out.println("Valor do saque: ");
valor = leia.nextDouble();
System.out.println("Realizando Saque... " + valor);
return saldo = saldo - valor;
}
public double depositar(double valor) {
System.out.println("Valor do depósito: ");
valor = leia.nextDouble();
System.out.println("Realizando Depósito... " + valor);
return saldo = saldo + valor;
}
public double depositoInicial(double valor) {
return saldo = saldo + valor;
}
public void transferir(Conta c, double valor) {
System.out.println("Valor da Transferência: ");
valor = leia.nextDouble();
System.out.println("Transferindo valor... " + valor);
System.out.println("Saldo: " + getSaldo());
sacar();
c.depositar();
}
public String getTitular() {
return titular;
}
public void setTitular(String titular) {
this.titular = titular;
}
public float getCpf() {
return cpf;
}
public void setCpf(float cpf) {
this.cpf = cpf;
}
public double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
}
Classe ContaInvestimento
import java.util.Scanner;
public class ContaInvestimento extends Conta{
Scanner leia = new Scanner(System.in);
private String titular;
private float cpf;
private double valor;
private double saldo;
public ContaInvestimento() {
System.out.println("Estamos processando sia solicitação!");
System.out.println("Nome do Titular: ");
titular = leia.nextLine();
System.out.println("CPF do Titular: ");
cpf = leia.nextFloat();
System.out.println("Valor de depósito inicial: (Mínimo R$ 50,00)");
valor = leia.nextDouble();
super.depositar();
System.out.println("Bem Vindo(a), " + titular);
System.out.println("Sua Conta Poupança já está em operação!");
}
public double sacar(double valor) {
System.out.println("Valor do saque: ");
valor = leia.nextDouble();
System.out.println("Realizando Saque... " + valor);
return saldo = saldo - valor;
}
public double depositar(double valor) {
System.out.println("Valor do depósito: ");
valor = leia.nextDouble();
System.out.println("Realizando Depósito... " + valor);
return saldo = saldo + valor;
}
public void transferir(Conta c, double valor) {
System.out.println("Valor da Transferência: ");
valor = leia.nextDouble();
System.out.println("Transferindo valor... " + valor);
System.out.println("Saldo: " + getSaldo());
sacar(valor);
c.depositar();
}
public double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
public String getTitular() {
return titular;
}
public void setTitular(String titular) {
this.titular = titular;
}
public float getCpf() {
return cpf;
}
public void setCpf(float cpf) {
this.cpf = cpf;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
}
Classe MenuBanco
import java.util.Scanner;
public class MenuBanco extends Conta{
Scanner leia = new Scanner(System.in);
int operaid;
char operacao;
public MenuBanco() {
System.out.println("** BEM VINDO AO BANCO OLIVERWS **");
System.out.println("");
System.out.println("|------------ MENU ------------|");
System.out.println("| 1- CRIAR CONTA |");
System.out.println("| 2- CONSULTAR SALDO |");
System.out.println("| 3- SAQUE |");
System.out.println("| 4- DEPÓSITO |");
System.out.println("| 5- TRANSFERÊNCIA |");
System.out.println("|------------------------------|");
System.out.println("");
System.out.printf("Selecione a operação desejada: ");
operaid = leia.nextInt();
switch (operaid) {
case 1:
menuCriarConta();
break;
case 2:
super.mostrarSaldo();
break;
case 3:
super.sacar();
break;
case 4:
super.depositar();
break;
case 5:
Conta c2 = null;
super.transferir(c2, 100);
break;
}
}
public void menuCriarConta() {
System.out.println("\n");
System.out.println("********* CRIAR CONTA *********");
System.out.println("");
System.out.println("|------------ MENU ------------|");
System.out.println("| 1- CONTA CORRENTE |");
System.out.println("| 2- CONTA INVESTIMENTO |");
System.out.println("| 3- VOLTAR AO MENU |");
System.out.println("|------------------------------|");
System.out.println("");
System.out.println("Selecione a operação desejada: ");
operaid = leia.nextInt();
switch (operaid) {
case 1:
new ContaCorrente();
System.out.println("CRIAR CONTA CORRENTE");
break;
case 2:
new ContaInvestimento();
System.out.println("CRIAR CONTA INVESTIMENTO");
break;
case 3:
System.out.println("** BEM VINDO AO BANCO OLIVERWS **");
System.out.println("");
System.out.println("|------------ MENU ------------|");
System.out.println("| 1- CRIAR CONTA |");
System.out.println("| 2- CONSULTAR SALDO |");
System.out.println("| 3- SAQUE |");
System.out.println("| 4- DEPÓSITO |");
System.out.println("| 5- TRANSFERÊNCIA |");
System.out.println("|------------------------------|");
System.out.println("");
System.out.printf("Selecione a operação desejada: ");
operaid = leia.nextInt();
//limpatela();
break;
}
}
public static void limpatela() {
System.out.printf("\n\n\n");
}
}
E onde esta o erro?
Já corrigi o erro cara…
Depois que cria a conta, queria que voltasse para o MenuConta…
return ou break não ajudam?
Mas o método está em outra classe…
Acho que você faltou algumas aulas.
Quando você tem um método, você precisa dizer o que ele retorna. void, caso não retorne nada ou XYZ caso ele retorne XYZ.
Independente do que retorne, se você quer interromper a execução de determinado trecho de código e retornar ao ponto que o invocou, você precisa incluir uma condição de parada. Para métodos, no caso, a palavra reservada return.
public void fazAlgo() {
//Faz algo
return;//Para a execução deste método
}
ou
public String fazAlgoString() {
//Faz algo
return "blablabla";//Para a execução deste método
}
Acho que vc não entendeu…
Eu estou no método do menu, e chamei o construtor de outra classe, preciso que ele retorne para o método que estava executando…
Não, quem não entendeu foi você.
A função do construtor, como o próprio nome dele diz, deve ser utilizado só para construir e devolver a nova instância do objeto.
Todo o resto deve ser executado por métodos que a classe possua, certo?
Certo…
Mas seguindo o código, ele conclui a execução…
Queria que ele voltasse para o método da outra classe…
Não sei qual a tua dificuldade.
A execução é sequencial, ela obedece a ordem de comandos que você insere, exceto se, encontrar return, break ou exceção.
public void foo() {
System.out.println("Oi");
System.out.println("Tudo");
System.out.println("bem?");
//Faz algo
//Faz algo 2
//Faz algo 3
Classe classe = new Classe();
classe.executaUmMetodoQualquer();
System.out.println("Fui");
}
O método acima vai executar cada linha, até imprimir fui, exceto se houver erros.
Pro menu ficar voltando é melhor usar um do while ou até um while.
E o texto do menu fica num método e não em um construtor.
Da pra fazer com o menu no construtor, só que o construtor não serve pra isso/não é a maneira correta.
Entendi Mike…
Muito obrigado…
Já consegui fazer aqui justamente dessa forma e deu certo…
Obrigado pela atenção parceiro…
Que bom que deu certo!