Exercicio - Conta de Banco

Ola, sou iniciante em Java (mais especificamente em orientaçao a objetos), recebi um exercicio que eu tenho que cadastrar 10 contas em um array, cada conta tera um saldo e seu tipo. O tipo de conta determina o valor maximo que se pode sacar. Havera 3 tipos de contas, eu gostaria de fazer ele usando herança. Alguen poderia me dar uma ajuda e explicar o que foi feito? Aqui o código:

Agencia.java

[code]package bancos;

import java.util.Scanner;

public class Agencia {

Conta[] conta = new Conta[10];

public static void main(String[] args) {
	Agencia agencia = new Agencia();
	agencia.menu();
}

public void menu() {
	System.out.println("..:: Sistema Bancário::..");
	int opcao = Console
			.leInt("(1)Cadastrar\t (2)Sacar\t (3)Depositar\t (4)Ver Saldo\t (5)Sair");
	switch (opcao) {
	case 1:
		cadastrar();
		menu();
		break;
	case 2:		

		menu();
		break;
	case 3:
	case 4:
		verSaldo();
		menu();
	default:
		break;
	}
}

public void cadastrar() {
	String numeroConta = Console.leString("Digite o Numero da Conta");
	double saldo = Console.leDouble("Digite o Saldo");
	Conta c = new Conta(numeroConta, saldo);
	for (int i = 0; i < conta.length; i++) {
		if (conta[i] == null) {
			conta[i]=c;
			break;
		}
	}
}

public Conta acharConta(String numeroConta) {
	for (int i = 0; i < conta.length; i++) {
		Conta c = conta[i];
		System.out.println("1 numeroConta: "+ c.getNumeroConta());
		System.out.println("2 numeroConta: "+ numeroConta);
		if (c.getNumeroConta().equals(numeroConta)) {
			return c;
		}
	}
	return conta[0];
}

public void verSaldo(){
	String numeroConta = Console.leString("Digite o Numero da Conta");
	double saldo = acharConta(numeroConta).getSaldo();
	System.out.println(saldo);
}

}[/code]

Conta.java

[code]package bancos;

public class Conta {
private String numeroConta;
private double saldo;
public Conta(String numeroConta, double saldo){
this.numeroConta = numeroConta;
this.saldo = saldo;
}

public String getNumeroConta() {
	return numeroConta;
}

public void setNumeroConta(String numeroConta) {
	this.numeroConta = numeroConta;
}

public double getSaldo() {
	return saldo;
}

public void setSaldo(double saldo) {
	this.saldo = saldo;
}

}
[/code]

Console.java

[code]package bancos;
import java.util.Scanner;

public class Console {

public static String leString(String pMensagem) {
	System.out.println(pMensagem);
	Scanner c = new Scanner(System.in);
	return c.nextLine();
}

public static double leDouble(String pMensagem) {
	System.out.println(pMensagem);
	Scanner c = new Scanner(System.in);
	return c.nextDouble();
}

public static int leInt(String pMensagem) {
	System.out.println(pMensagem);
	Scanner c = new Scanner(System.in);
	return c.nextInt();
}	

public static int leTipo(String pMensagem) {
	System.out.println(pMensagem);
	Scanner tipo = new Scanner(System.in);
	return tipo.nextInt();
}

}
[/code]

Obrigado desde ja.

Cara, vc ta querendo que a gente te explique esse código todo? posta suas dúvidas pontuais…

nao pedi o codigo todo, perguntei como eu faço para fazer 3 tipos de contas, no caso seria criar 3 novas classes (para cada tipo de conta), o tipo de conta apenas ira definir o limite do saque.

Foi isso q vc pediu…

Mas assim, se as contas são iguais e só muda o tipo pra ter essa diferença de limite do saque… vc cria 1 unica classe com um atributo Tipo… ai sua aplicação olha qual o tipo da conta e faz essa validação do limite do saque

Foi isso q vc pediu…

Mas assim, se as contas são iguais e só muda o tipo pra ter essa diferença de limite do saque… vc cria 1 unica classe com um atributo Tipo… ai sua aplicação olha qual o tipo da conta e faz essa validação do limite do saque[/quote]

Sou meio novo em orientação a objeto, costumava trabalhar com C, parei de programar por alguns anos e recomecei em java por tanto tenho algumas dificuldados com o termo atributo, eu poderia fazer um atributo que seja uma variavel?

Ps: A parte que voce citou, eu me referia a explicar oq foi adicionado ao codigo que mostrei e nao o codigo em si :slight_smile:

Ah blz…

Então, o atributo de uma classe é uma variavel.

vc teria lá uma classe Conta e um atributo(variavel) do tipo String para representar o tipo da conta.

[quote=Poneis123]Ah blz…

Então, o atributo de uma classe é uma variavel.

vc teria lá uma classe Conta e um atributo(variavel) do tipo String para representar o tipo da conta.[/quote]

Blz, vlw, vo tentar isso