A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 1 Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes.

Apresentações semelhantes


Apresentação em tema: "Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 1 Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes."— Transcrição da apresentação:

1 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 1 Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes

2 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 2 Capitulo 3 – Introdução às classes Comportamento do objecto Operações disponíveis sobre uma conta bancária –Depositar dinheiro –Levantar dinheiro –Obter o extracto actual Métodos (implementam operações) deposit withdraw getBalance

3 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 3 Capitulo 3 – Introdução às classes Utilizando os métodos Transferir uma quantia de uma conta para outra double amt = 500; momsSavings.withdraw(amt); harrysChecking.deposit(amt); Adicionar juros final double RATE = 5.0; // 5% double amt = account.getBalance() * RATE / 100.0; account.deposit(amt);

4 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 4 Capitulo 3 – Introdução às classes Construindo objectos Construção de um objecto new BankAccount(); Guardar referência para o objecto BankAccount harrysChecking = new BankAccount(); Aplicar os métodos account.deposit(1000);

5 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 5 Capitulo 3 – Introdução às classes Criando um novo objecto BankAccount balance new BankAccount();

6 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 6 Capitulo 3 – Introdução às classes Inicializando uma variável objecto BankAccount balance 0 harrysChecking BankAccount harrysChecking =new BankAccount();

7 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 7 Capitulo 3 – Introdução às classes Definição da classe(métodos) class BankAccount { public void deposit(double amt) {//implementação do método } public void withdraw(double amt) {//implementação do método } public double getBalance() {//implementação do método } }

8 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 8 Capitulo 3 – Introdução às classes Características dos métodos Especificação do tipo acesso. Por exemplo: public Tipo de retorno. Por exemplo double, int, void Nome do método. Por exemplo: withdraw. Lista de parâmetros. Por exemplo: amt.

9 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 9 Capitulo 3 – Introdução às classes Atributos (variáveis membro) class BankAccount {... private double balance; } Visibilidade do atributo: private Tipo do atributo double. Nome do atributo: balance

10 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 10 Capitulo 3 – Introdução às classes Atributos (variáveis membro) BankAccount balance 0 harrysChecking BankAccount balance 7500 momsSavings Objecto Referência para objecto

11 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 11 Capitulo 3 – Introdução às classes Atributos privados Não é possível aceder a atributos declarados como privados harrysChecking.balance = 1000;//ERRO Utiliza-se o interface público para todos os acessos harrysChecking.deposit(1000); Implementação escondida – encapsulation – Segura – Torna fácil alterar a implementação –...

12 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 12 Capitulo 3 – Introdução às classes A implementação dos métodos class BankAccount { public void deposit(double amt) { balance = balance + amt; } public void withdraw(double amt) { balance = balance - amt; } public double getBalance() { return balance; } private double balance; }

13 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 13 Capitulo 3 – Introdução às classes Parâmetro implícito public void withdraw(double amt) { balance = balance - amt; } balance é o saldo do objecto à esquerda do ponto: momsSavings.withdraw(500) significa momsSavings.balance = momsSavings.balance - amt;

14 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 14 Capitulo 3 – Introdução às classes Construtores O construtor inicializa uma variável membro da instância Nome do construtor = nome da classe public class BankAccount { public BankAccount() { balance = 0; //... }

15 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 15 Capitulo 3 – Introdução às classes Construtores múltiplos public class BankAccount { public BankAccount( double inicialbalance) { balance = inicialbalance; } //... } BankAccount bAccount = new BankAccount(5000);

16 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 16 Capitulo 3 – Introdução às classes Dicas Declare todos os atributos como private Declare os métodos utilizados fora da classe como públicos. Os restantes como private. Alguns atalhos de teclado úteis Ctrl+C, Ctrl+V, Ctrl+X Alt+Tab, Ctrl+Esc Alt+letter

17 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 17 Capitulo 3 – Introdução às classes Programa para testar A classe BankAccount implementa uma conta bancária É necessário uma classe distinta para efectuarmos operações sobre uma conta bancária public class BankAccountTest { Escreva alguns métodos para testar a classe BankAccount }

18 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 18 Capitulo 3 – Introdução às classes Class BankAccount.java class BankAccount { public BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; } public void deposit(double amt) { balance = balance + amt; }

19 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 19 Capitulo 3 – Introdução às classes public void withdraw(double amt) { balance = balance - amt; } public double getBalance() { return balance; } private double balance; }

20 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 20 Capitulo 3 – Introdução às classes À descoberta das classes Substantivos – candidatos a classes Verbos – candidatos a métodos Exemplo: Desejamos obter o número de um aluno: Classe: Student Método: getNumber()

21 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 21 Capitulo 3 – Introdução às classes Copiando números double balance1 = 1000; double balance2 = balance1; balance2 = balance2 + 500; Alterações no valor do balance2 não afectam o valor do balance1

22 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 22 Capitulo 3 – Introdução às classes Cópia de números balance1 balance2 1000

23 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 23 Capitulo 3 – Introdução às classes Cópia de referencias para objectos BankAccount account1 = new BankAccount(1000); BankAccount account2 = account1; account2.deposit(500);

24 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 24 Capitulo 3 – Introdução às classes Copiando referencias a objectos BankAccount balance 0 account1 account2 Alterações efectuadas na account2 são visíveis através da account1 Variáveis de objectos contém referências e não os objectos em si.

25 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 25 Capitulo 3 – Introdução às classes Referencia a null account1 = null ; A account1 não se refere a nenhuma conta Não é possível chamar métodos associados a uma variável a apontar para null null não é o mesmo que zero Erro comum: A null string is not the same as the empty string ""

26 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 26 Capitulo 3 – Introdução às classes Uma referencia a null BankAccount balance 0 null account1 account2

27 Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 27 Capitulo 3 – Introdução às classes Referencias para Strings String Hello cumprimento mensagem String null comentario


Carregar ppt "Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/2002 1 Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes."

Apresentações semelhantes


Anúncios Google