System.out.println(saldo); // Saque R$300,00 desta conta umaConta.sacar(300.0); // Imprima o objeto umaConta System.out.println(umaConta); // Imprima o saldo da conta de Joao System.out.println("Saldo da conta de Joao depois do saque: " + umaConta.getSaldo()); } // fim do metodo main} // fim da classe Banco1 Saida do programa:Saldo da conta de Joao antes do saque: 1000.0ContaSimples numero 1, titular Joao, data 01/06/2001, saldo R$700,00Saldo da conta de Joao depois do saque: 700.0 A linha com "import" e usada para dizer ao compilador Java que estaremos usando classes do "pacote" p1.aplic.banco Um objeto e criado com a palavra new, especificando sua classe Diz-se "chamamos o construtor da classe" A operacao tambem se chama instanciar o objeto No caso da classe ContaSimples, o construtor tem 3 parametros que sao o valor de certos atributos do objeto (nome do titular, CPF do titular, numero da conta) Observe que nao temos classe Cliente para representar o titular da conta A conta em si assume os atributos do titular A variavel umaConta e do tipo da classe ContaSimples e armazena uma referencia ao objeto E como se o objeto fosse uma pipa e a referencia fosse uma linha amarrada a pipa E semelhante a ponteiros em outras linguagens Um objeto existe enquanto houver pelo menos uma referencia a ele Depois que nao houver mais referencias, o objeto some (que nem a pipa sem linha!) No programa, estamos vendo chamadas a 3 comportamentos do objeto umaConta depositar(...) sacar(...) getSaldo() toString() A sintaxe umaConta.depositar(1000.0) significa que estamos chamado o metodo depositar() do objeto umaConta Um metodo e como um sub-programa, subrotina ou funcao de outras linguagens Tambem se fala que estamos enviando a mensagem "depositar" para o objeto "umaConta" Certos metodos podem ter parametros e outros nao Podemos imprimir um objeto como um todo!System.out.println(umaConta); Isso e equivalente a chamar:System.out.println(umaConta.toString()); ... porque toda classe tem um metodo toString que retorna uma representacao do objeto e dos seus atributos como String Pergunta: qual e o String retornado por umaConta.toString()? A partir deste String, voce pode identificar um provavel atributo de uma ContaSimples que nao vimos ate agora nem informamos no construtor?Encapsulamento Muito importante: conseguimos usar objetos da classe ContaSimples sem saber nada sobre como ContaSimples esta escrita em Java! Isso se chama Ocultacao de Informacao e e muito importante na programacao E a forma basica de lidar com a complexidade dos programas Tambem podemos dizer que a Classe ContaSimples encapsula dados e comportamento em cima desses dados Os dados sao os atributos escondidos de nos (saldo, historico de transacoes, dados do titular, ...) O comportamento sao os metodos que podemos chamar para manipular o objeto So podemos "mexer" com o objeto atraves de seus metodos Portanto, ve-se que classes como ContaSimples tem comportamento Mais precisamente, os objetos dessa classe e que tem comportamento definido pela classe Podemos ver uma definicao mais completa do comportamento da classe ContaSimples aquiProximo Programa: Identidade de Objetos Pense sobre a implementacao do seguinte programa, dado em pseudo-codigoPrograma Banco2 Abra uma conta de numero 1 para Joao com CPF 309140605-06 Nesta conta, deposite R$1000,00 Abra uma conta de numero