Orientação a Objetos e Java Graduação em Ciência da Computação
-
Upload
reuben-monroe -
Category
Documents
-
view
13 -
download
0
description
Transcript of Orientação a Objetos e Java Graduação em Ciência da Computação
![Page 1: Orientação a Objetos e Java Graduação em Ciência da Computação](https://reader036.fdocumentos.com/reader036/viewer/2022072114/56813351550346895d9a5e92/html5/thumbnails/1.jpg)
Orientação a Objetos e JavaGraduação em Ciência da Computação
Centro de Informática, UFPE
Alexandre Mota
(com material da Qualiti Software Process)
http://www.cin.ufpe.br/~acm
![Page 2: Orientação a Objetos e Java Graduação em Ciência da Computação](https://reader036.fdocumentos.com/reader036/viewer/2022072114/56813351550346895d9a5e92/html5/thumbnails/2.jpg)
Arrays
• São objetos especiais de Java
• Uma variável do tipo array é definida usando a notação:
Tipo[] arrayTipo;• Tipo[] é uma classe, mas não se pode
herdar dela
![Page 3: Orientação a Objetos e Java Graduação em Ciência da Computação](https://reader036.fdocumentos.com/reader036/viewer/2022072114/56813351550346895d9a5e92/html5/thumbnails/3.jpg)
Criação de arrays
• O Operador new X[tamanho] cria um objeto array, não os objetos do tipo X por ele referenciado
• O primeiro elemento do array tem índice 0 e o último tem índice tamanho – 1
• O comprimento do array é acessível pela variável de instância (atributo) final e pública length
![Page 4: Orientação a Objetos e Java Graduação em Ciência da Computação](https://reader036.fdocumentos.com/reader036/viewer/2022072114/56813351550346895d9a5e92/html5/thumbnails/4.jpg)
Inicializadores
– Exemplo: Declara, cria e inicializa um array de pontos int[][] pontos = {{10,10},{10,20},
{20,10},{20,20}};
pontos10 1010 20
20 10
20 20
Inicializadores de arrays são representados da seguinte forma: {<expressões>}. Onde expressões
representam expressões de tipos válidos separadas por vírgulas
![Page 5: Orientação a Objetos e Java Graduação em Ciência da Computação](https://reader036.fdocumentos.com/reader036/viewer/2022072114/56813351550346895d9a5e92/html5/thumbnails/5.jpg)
Acessovariável[expressão_inteira]
• Acesso a array é checado em tempo de execução. A exceção java.lang.IndexOutOfBoundsException é levantada na tentativa de acesso fora dos limites do array (0..TAMANHO-1)
• Exemplo:
if (contas[i].getNumero().equals(numero)) achou = true; else ...
Representa o envio da mensagem getNumero() para um objeto
do tipo Conta, referenciado pelo i-ésimo elemento do array
contas.
![Page 6: Orientação a Objetos e Java Graduação em Ciência da Computação](https://reader036.fdocumentos.com/reader036/viewer/2022072114/56813351550346895d9a5e92/html5/thumbnails/6.jpg)
Classe CadastroContas: Assinatura
public class CadastroContas { CadastroContas(){} void cadastrar(Conta c){} void remover(Conta c){} double getSaldo(String numeroConta){} void debitar(String numeroConta, double valor){} void creditar(String numeroConta, double valor){} void transferir(String numeroContaOrigem, String numeroContaDestino, double valor){} }
Todos os métodos são public
![Page 7: Orientação a Objetos e Java Graduação em Ciência da Computação](https://reader036.fdocumentos.com/reader036/viewer/2022072114/56813351550346895d9a5e92/html5/thumbnails/7.jpg)
Classe CadastroContas: Descrição
public class CadastroContas { private Conta[] contas; private int indice;
public CadastroContas(int tamanho) { contas = new Conta[tamanho]; indice = 0; }
public void cadastrar(Conta conta) { contas[indice] = conta; indice = indice + 1; }
![Page 8: Orientação a Objetos e Java Graduação em Ciência da Computação](https://reader036.fdocumentos.com/reader036/viewer/2022072114/56813351550346895d9a5e92/html5/thumbnails/8.jpg)
public void debitar(String numero, double valor) { Conta c; c = this.procurar(numero); c.debitar(valor); }
public void creditar(String numero, double valor) { Conta c; c = this.procurar(numero); c.creditar(valor); }
![Page 9: Orientação a Objetos e Java Graduação em Ciência da Computação](https://reader036.fdocumentos.com/reader036/viewer/2022072114/56813351550346895d9a5e92/html5/thumbnails/9.jpg)
private Conta procurar(String numeroConta) { int i = 0; boolean achou = false; Conta resposta = null; while((! achou) && (i < indice)) { if (contas[i].getNumero().equals(numeroConta)) achou = true; else i = i + 1; } if (achou) resposta = contas[i]; else throw new RuntimeException("Conta não existe!"); return resposta; }}
![Page 10: Orientação a Objetos e Java Graduação em Ciência da Computação](https://reader036.fdocumentos.com/reader036/viewer/2022072114/56813351550346895d9a5e92/html5/thumbnails/10.jpg)
Exercício• Defina a classe Banco com o construtor e os
métodos creditar, remover, transferir e getSaldo. A classe Banco utiliza a classe CadastroContas para manipular as contas do banco.
public class Banco { private CadastroContas contas ...}