2 para Ana com CPF 123456789-01 Transfira R$400,00 da conta de Joao para a conta de Ana Imprima o saldo da conta de Joao Imprima o saldo da conta de Ana A solucao esta no arquivo Banco2.java/* * Movimentacao simples de duas contas bancarias */ import p1.aplic.banco.*; // para poder manusear contas bancarias public class Banco2 { public static void main(String args[]) { // Abra uma conta de numero 1 para Joao com CPF 309140605-06 // A conta sera "referenciada" com a variavel umaConta ContaSimples umaConta = new ContaSimples("Joao", "30914060506", 1); // Nesta conta, deposite R$1000,00 umaConta.depositar(1000.0); // Abra uma conta de numero 2 para Ana com CPF 123456789-01 // A conta sera "referenciada" com a variavel outraConta ContaSimples outraConta = new ContaSimples("Ana", "12345678901", 2); // Transfira R$400,00 da conta de Joao para a conta de Ana umaConta.transferir(outraConta, 400.0); // Imprima o saldo da conta de Joao double saldo = umaConta.getSaldo(); System.out.print("Saldo da conta de Joao: "); System.out.println(saldo); // Imprima o saldo da conta de Ana System.out.println("Saldo da conta de Ana: " + outraConta.getSaldo()); // Imprima o saldo da conta de Ana, novamente, com outro metodo System.out.println("Saldo da conta de Ana: " + outraConta.getSaldoMonetario()); // Impressao dos objetos System.out.println("Situacao da primeira conta: "); System.out.println(umaConta); System.out.println("Situacao da segunda conta: "); System.out.println(outraConta); } // fim do metodo main} // fim da classe Banco2 Saida do programa:Saldo da conta de Joao: 600.0Saldo da conta de Ana: 400.0Saldo da conta de Ana: R$400,00Situacao da primeira conta:ContaSimples numero 1, titular Joao, data 01/06/2001, saldo R$600,00Situacao da segunda conta:ContaSimples numero 2, titular Ana, data 01/06/2001, saldo R$400,00 Este exemplo mostra o conceito de identidade de objetos Os objetos cujas referencias sao umaConta e outraConta sao dois objetos diferentes (com identidade diferente) embora sejam da mesma classe (do mesmo molde) Mesmo que todos os atributos dos dois objetos fosse iguais, eles teriam identidade diferente Seriam objetos diferentes Eles seriam armazenados em lugares diferentes da memoria A referencia e essencialmente o endereco de memoria do objeto Observe que, no programa, uma referencia a um objeto pode ser passada como parametro de um metodo como qualquer outro valor Identifique isso no programa Banco2Proximo Programa: Varias Classes Nos programas acima, o titular das contas bancarias nao aparece como objeto Suspeitamos de sua existencia porque falamos do nome e CPF do titular No proximo programa, trataremos o titular de uma conta de forma explicita como objeto A solucao esta no arquivo Banco4.java/* * Uso de objetos de varias classes, entrada de dados */ import p1.aplic.banco.*;import p1.aplic.geral.*; // para mexer com a classe Pessoaimport p1.io.*; // para fazer entrada de dados public class Banco4 { public static void main(String args[]) { // declaracao de variaveis de 2 classes (tipos) diferentes // no fim, teremos 4 objetos de 2 classes Pessoa oTitular1, oTitular2; ContaSimples umaConta, outraConta; // tempo de vida: os objetos ainda nao existem // a seguinte linha daria erro: // umaConta.depositar(1000.0); // cria dois objetos Pessoa com nome e CPF oTitular1 = new Pessoa("Joao", "30914060506"); oTitular2 = new Pessoa("Ana", "12345678901"); // cria as duas contas // Observe que ContaSimples pode ser criada com