Oi gente, sou bem iniciante em Java, pesquisei em apostila, vi exemplo pela net mas até agora não achei nada que se encaixe com a minha necessidade. Bem, comecei a fazer um exercício porém desde ontem tou travada no método transferir e como é pedido no enunciado não sei como codificá-lo, será que vocês podem me ajudar? Aqui segue a questão e o que consegui fazer até então:
a) Classe ContaCorrente.
a. Atributos da classe ContaCorrente:
numeroConta (inteiro) → não pode receber um valor menor ou igual a zero;
correntista (string) → não pode receber um valor nulo ou string vazia;
saldo (ponto-flutuante) → não pode manter um valor menor que zero;
b. Implementar apenas um construtor recebendo valores para os atributos numeroConta e correntista da classe ContaCorrente.
c. Utilizar a técnica de encapsulamento apresentada no curso e implementar métodos get e set para todos os atributos da classe (ver observação abaixo).
OBS: Não implementar o método set para o atributo saldo. O valor do atributo saldo só poderá ser alterado através dos métodos deposita, saque e transfere detalhados a seguir.
d. Implementar o método boolean deposita(double valor) que deposita um valor na conta corrente. O método retorna verdadeiro se o depósito foi realizado com sucesso ou falso em caso contrário.
OBS: Verificar se o valor informado é maior que zero.
e. Implementar o método boolean saque(double valor) que realiza um saque na conta corrente. O método retorna verdadeiro se o saque foi realizado com sucesso ou falso e caso contrário.
OBS: Verificar se o valor informado é maior que zero e se há saldo suficiente para realizar o saque.
f. Implementar o método boolean transfere(double valor, ContaCorrente c2) que realiza uma transferência de um valor da conta corrente para a conta corrente c2. O método retorna verdadeiro se a transferência foi realizada com sucesso ou falso em caso contrário.
OBS: Verificar se o valor informado é maior que zero, se o objeto c2 não é nulo e se há saldo suficiente para realizar a transferência.
b) Implementar uma aplicação chamada AplicacaoContas que instancia dois objetos do tipo ContaCorrente, a partir de dados informados pelo usuário. Em seguida, o programa deve oferecer um menu para o usuário com as seguintes opções:
a. Imprimir dados de uma conta. Para esta opção o usuário deverá informar o número da conta;
b. Realizar depósito. Para esta opção o usuário deverá informar o número da conta e o valor para depósito;
c. Realizar saque. Para esta opção o usuário deverá informar o número da conta e o valor para saque;
d. Realizar transferência. Para esta opção o usuário deverá informar o número da conta origem, o número da conta destino e o valor para transferência;
OBS: Para as opções de depósito, saque e transferência, o programa deve imprimir na tela uma mensagem indicando se o depósito, o saque ou a transferência foi realizado com sucesso ou não.
public class ContaCorrente {
int numeroConta;
String correntista;
double saldo;
ContaCorrente(int numeroConta, String correntista){
this.numeroConta = numeroConta;
this.correntista = correntista;
}
public void SetNumeroConta (int numeroConta){
this.numeroConta;
}
int GetNumeroConta(){
return this.numeroConta;
}
public void SetCorrentista(String correntista){
this.correntista = correntista;
}
String GetCorrentista(){
return this.correntista;
}
boolean deposita(double valor){
if (valor > 0 ){
this.saldo = this.saldo + valor;
return true;
}else{
return false;
}
}
boolean saque (double valor){
if (valor>0){
if(this.saldo > valor){
this.saldo = this.saldo - valor;
return true;
}else{
return false;
}
}else{
return false;
}
}
boolean transfere (double valor, ContaCorrente c2){
if (valor > 0){
boolean retirou = this.saque(valor);
if (retirou == false){
return false;
}else{
c2.deposita(valor);
return true;
}
}else{
System.out.println(“Valor abaixo de zero”);
return false;
}
}
}