Bom dia pessoal, este é meu primeiro post aqui no forum de java.
Este semestre comecei a estudar java pela faculdade e tenho gostado mas ai vem um problema o professor passou excessão para estudar e colocar em alguns problemas de uma lista de exercicio.
Vi por alguns livros e sites que posso usar o bloco try catch ou usar o throws com o throw criando minha propria excessão.
Mas tive uma duvida quero tratar no exercicio dentro da classe de execessão o problema.
Vou postar o codigo…
Codigo main
package exerc_9;
import java.util.Scanner;
public class Banco {
public static void main(String[] args) throws BancoException {
int op;
Scanner s = new Scanner(System.in);
BancoMethods banco = new BancoMethods();
do {
System.out.println("Informe o operação que deseja realizar");
System.out.println("1 - Saque da conta");
System.out.println("2 - Pagamento");
System.out.println("3 - Deposito");
System.out.println("4 - Saldo");
System.out.println("5 - Sair");
System.out.print("Informe o opção: ");
op = s.nextInt();
banco.setOpcao(op);
} while (op != 5);
}
}
codigo aonde faço as operações
package exerc_9;
import java.util.Scanner;
public class BancoMethods {
private float saldo;
private float saque;
private float pagamento;
private int opcao;
Scanner s = new Scanner(System.in);
public void setOpcao(int opcao) throws BancoException {
this.opcao = opcao;
operacao(this.opcao);
}
private void operacao(int op) throws BancoException {
switch (op) {
case 1:
setSaque(this.saque);
break;
case 2:
setPagamento(this.pagamento);
break;
case 3:
setSaldo(this.saldo);
break;
case 4:
System.out.println("Saldo bancário: " + getSaldo());
break;
case 5:
System.out.println("Programa finalizado");
break;
default:
System.out.println("Opção Invalida");
}
}
private void setSaldo(float saldo) {
System.out.print("Informe o valor a ser depositado: ");
saldo = s.nextFloat();
this.saldo = saldo;
}
private void setSaque(float saque) throws BancoException {
System.out.print("Informe o valor a ser sacado: ");
saque = s.nextFloat();
this.saque = saque;
if (this.saque > this.saldo) {
throw new BancoException(this.saque);
} else {
this.saldo -= this.saque;
}
System.out.println("Saldo: " + getSaldo());
}
private void setPagamento(float pagamento) throws BancoException {
System.out.print("Informe o valor a ser pago: ");
pagamento = s.nextFloat();
this.pagamento = (float) (pagamento + (pagamento * 0.1));
if (this.pagamento > this.saldo) {
throw new BancoException(this.saque);
} else {
this.saldo -= this.pagamento;
}
System.out.println("Saldo: " + getSaldo());
}
private float getSaldo() {
return this.saldo;
}
}
codigo da excessão
package exerc_9;
public class BancoException extends Exception{
BancoException(float valor){
super("Valor inválido: "+valor);
}
}
Gostaria de uma critica sobre o meu trabalho para eu também melhorar…por exemplo nos metodos getters and setters há algum problema eu chamar ele de get e set sendo que eu os defini como private e nos metodos set não passar valor de parametro?
E a duvida sobre excessão seria passar como parametro valores aonde dentro da classe de excessão seria tratados…
Obrigado