/**
* Classe Conta;
*
* @author Pablo; Aqui temos uma especificação de atributos que seram usados em
* Conta; A classe Conta é apenas uma instancia que serve de modelo para
* ser usada; Em Contas;
*
*/
public class Conta {
double saldo;
int agencia;
int numero;
String titular;
/**
* Metodo para deposito;
*
* @param valor
* será utilizado para agregar a variavel saldo; Em meu metódo
* deposita eu recebo um valor do tipo double;7 E digo que
* this.saldo, ou seja, o saldo do objeto em questão é igual o valor
* atual mais o valor do metodo; Digo que esse metodo é do tipo void
* pois ele não me retorna nada somente faz a ação do saldo; Void é o
* que o metodo devolve pra você, nesse caso nada; (double valor) é o
* que o metodo recebe;
*/
public void deposita(double valor) {
this.saldo += valor;
}
/**
* Metodo saca;
*
* @param valor
* será utilizado para sacar do saldo da conta em questão;
* @return um true ou false dependendo se a condição do saque for positiva ou
* não; Regra para o saque;
* Só possivel sacar se o valor do saque for menor, ou igual, ao de saldo;
*/
public boolean saca(double valor) {
if (this.saldo >= valor) {
this.saldo -= valor;
System.out.println("Você sacou " + valor + " Seu saldo atual é: " + this.saldo);
return true;
} else {
System.out.println("Você não tem saldo sulficiente, tente um valor menor! Seu saldo é: "
+ this.saldo);
return false;
}
}
/**
* Metodo para transferência;
* @param valor será utilizado para receber o valor que será utilizado na transferência;
* @param destino é o paramêtro utilizado para setar a conta destino da transferência;
* @return como o metodo é tipo boolean ele retornará um true ou false;
* E também os System.out.println(); que foram escritos;
* O if é a regra do negocio para nossa transferência;
* Se o valor do saldo for maior ou igual ao valor setado a transferencia será efetuada;
* Caso o contrario a transferência não ocorrerá;
*/
public boolean transfere(double valor, Conta destino) {
if(this.saldo >= valor) {
this.saldo -= valor;
/**
* Eu posso utilizar, ou reaproveitar, um metodo ja existente dentro de outor;
* Aqui estou utilizando o metodo deposita() para fazer o deposito em destino;
*/
destino.deposita(valor);
System.out.println(this.titular + " Transferiu: " + valor + "R$ para conta de: "
+ destino.titular + ". Seu saldo atual é: " + this.saldo + "R$.");
return true;
} else {
System.out.println("Não foi possivel fazer a tranfeência de: " + valor + "R$ para conta de: " +
destino.titular
+ ", seu saldo é insulficiente: " + this.saldo + "R$.");
System.out.println("Tente um valor menor!");
return false;
}
}
}
/**
* Classe TestaMetodo;
*
* @author Pablo;
*
*/
public class TestaMetodo {
public static void main(String[] args) {
/**
* Criando uma nova Conta; Referenciando essa nova Conta em conta01 que é do
* tipo Conta; Setando saldo a está conta; Setando um deposito a está conta;
*/
Conta conta01 = new Conta();
conta01.titular = "Pablo";
conta01.saldo = 100;
/**
* Chamando o metodo deposita();
*/
conta01.deposita(50);
/**
* Imprimindo o saldo de conta01.;
*/
System.out.println(conta01.saldo);
/**
* Chamando o metodo saca();
*/
conta01.saca(50);
/**
* Criando conta02;
*/
Conta conta02 = new Conta();
conta02.titular = "Luzana";
conta02.deposita(250);
conta02.transfere(100, conta01);
conta01.transfere(755, conta02);
}
}