:?:Boa tarde amigos, sou novo por aqui e comecei a estudar java a pouco tempo, estou com um pequeno problema no trecho de codigo que mostra nas imagens que compartilhei no google docs (basta clicar no link abaixo), este codigo é referente ao enunciado que inseri abaixo da imagem.
Coloquei em anexo tambem o enunciado e o codigo referente a classe que estou com problemas, alguem pode me ajudar a resolver ? Esta aparecendo 5 erros que não consigo entender.
OBS: Eu já terminei só preciso corrigir estes erro que não encontro o motivo.
Desde já agradeço pela atenção.[b]
https://drive.google.com/folderview?id=0B-m-v6_Q9szxdDFEUERqUEM0OFk&usp=sharing :?:
Voce poderia criar o objeto no começo da classe
Conta c = new Conta();
No trecho onde o ‘c’ aparece com erro, provavelmente voce também não instanciou aquela variavel.
[quote=herman.monteiro] :?:Boa tarde amigos, sou novo por aqui e comecei a estudar java a pouco tempo, estou com um pequeno problema no trecho de codigo que mostra nas imagens que compartilhei no google docs (basta clicar no link abaixo), este codigo é referente ao enunciado que inseri abaixo da imagem.
Coloquei em anexo tambem o enunciado e o codigo referente a classe que estou com problemas, alguem pode me ajudar a resolver ? Esta aparecendo 5 erros que não consigo entender.
OBS: Eu já terminei só preciso corrigir estes erro que não encontro o motivo.
Desde já agradeço pela atenção.[b]
https://drive.google.com/folderview?id=0B-m-v6_Q9szxdDFEUERqUEM0OFk&usp=sharing :?: [/quote]
Só dá para ver uma imagem
e pela imagem
faltou instância
Conta c = new Conta();
SEGUE ABAIXO COMO ESTA MEU CODIGO.
package Classes;
import java.util.ArrayList;
public class Agencia {
private ArrayList<Conta> CC = new ArrayList<Conta>(20);
private int Localizar_Conta (int numero){
for (int cont = 0; cont < CC.size(); cont++){
Conta c = CC.get(cont);
if (c.getNumero() == numero){
return cont;
}
}
return -1;
}
public String Criar (String nome, int numero, float saldo) {
if (CC.size() < 20){
int indice = Localizar_Conta(numero);
if (indice != -1){
return "Conta corrente já existente, favor informar outro número.";
}else {
CC.add(new Conta(nome, numero, saldo)); [b] [color=red]/*ERRO NESTA LINHA*/[/color][/b]
return "Operação realizada com sucesso!";
}
}else{
return "Número máximo de contas atingido!";
}
}
public String Cancelar (int numero){
int indice = Localizar_Conta(numero);
if (indice != -1){
CC.remove(indice);
return "Conta cancelada!";
}else{
return "Conta não encontrada!";
}
}
public String Sacar (int numero, float valor){
int indice = Localizar_Conta(numero);
if (indice != -1){
Conta c = CC.get(indice);
c.sacar(valor);
}
if (valor < c.getSaldo()){ [b] [color=red]/*ERRO NESTA LINHA*/[/color][/b]
c.sacar(valor); [b] [color=red]/*ERRO NESTA LINHA*/[/color][/b]
return "Saque realizado com sucesso!";
}else{
System.out.println("Saldo insuficiente.");
System.out.println("Seu saldo disponível no momento é de R$" + c.getSaldo()); [b] [color=red]/*ERRO NESTA LINHA*/[/color][/b]
}
}
public void Depositar (int numero, float valor){
int indice = Localizar_Conta(numero);
if (indice != -1){
Conta c = CC.get(indice);
c.depositar(valor);
System.out.println("O deposito foi concluido.");
System.out.println("Seu saldo atual é de R$" + c.getSaldo());
}else{
System.out.println("Conta não encontrada!");
}
}
public void Relatório (){
for (Conta c : CC){
System.out.println(c.Listar());
}
}
}
Velho, como vc mesmo disse que é iniciante gostaria só de dá uma dica de material: Oh, a Caelum tem umas apostilas muito boas pra quem tá começando. Digo isso pois seu código pode até funcionar mas tem muito código desnecessário. Digo, vc pode fazer as mesmas coisas escrevendo menos e com melhores práticas de programação, ou seja, usando o que a OO tem de melhor a oferecer. Por isso só uma dica.
Mas vamos ao problema: Velho, é o seguinte: Vc colocou a classe Conta como abstract, logo ela não vai poder ser instanciada. Então mude-a para public.
Outra coisa. O método Sacar está com problema no retorno. Deixe-o assim:
public String Sacar (int numero, float valor){
int indice = Localizar_Conta(numero);
if (indice != -1){
Conta c = CC.get(indice);
c.sacar(valor);
if (valor < c.getSaldo()){
c.sacar(valor);
return "Saque realizado com sucesso!";
}else{
return ("Saldo insuficiente.");
}}
return null;
}
Não testei o programa, mas pelo menos os erros que inicialmente estava aparecendo foram sanados.
Espero ter ajudado.
Bons estudos.
Abraços.
[b]Prezados amigos programadores java.
Estou com um outro pequeno probleminha, meu metodo Cancelar não esta cancelando, quando eu utilizo ele, é me retornado uma mensagem dizendo que a CONTA FOI CANCELADA COM SUCESSO, porem quando eu insiro o comando para [color=red]LISTAR CONTAS[/color], aparece a conta que acabei de cancelar, alguem pode me ajudar?
segue os blocos dos comando envolvidos abaixo;
FUNÇÃO CLASSE TESTE CANCELAR;
case 2:
System.out.println("\n 2 - Cancelar conta");
System.out.print("\n Informe o numero da conta: ");
numero = dados.nextInt();
agencia.Cancelar(numero);
System.out.println(“Cancelamento realizado com sucesso.”);
break;
METODO CANCELAR
public String Cancelar(int numero) {
int indice = Localizar_Conta(numero);
if (indice != -1) {
CC.remove(indice);
return “Conta cancelada!”;
} else {
return “Conta não encontrada!”;
}
}
METODO LISTAR CONTAS
public void Relatório() {
for (Conta c : CC) {
System.out.println(c.Listar());
}
}
----------------[/b]