A maior rede de estudos do Brasil

Grátis
166 pág.
Apostila Java - Orientação a Objetos

Pré-visualização | Página 1 de 26

TREINAMENTOS
Orientação a Objetos em Java
Orientação a Objetos em Java
17 de novembro de 2010
www.k19.com.br ii
Sumário
1 Introdução 1
2 Lógica 3
2.1 O que é um Programa? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Linguagem de Programação VS Linguagem de Máquina . . . . . . . . . . . . 3
2.3 Exemplo de programa Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Método Main - Ponto de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.5 Máquinas Virtuais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.6 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.7 Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.8 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.9 IF-ELSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.10 WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.11 FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.12 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 Orientação a Objetos 19
3.1 Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4 Manipulando Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5 Agregação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.6 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.7 Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.8 Sobrecarga(Overloading) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.9 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.10 Construtores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.10.1 Construtor Default . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.10.2 Sobrecarga de Construtores . . . . . . . . . . . . . . . . . . . . . . . 33
3.10.3 Construtores chamando Construtores . . . . . . . . . . . . . . . . . . 34
3.11 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.12 Referências como parâmetro . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.13 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
iii
SUMÁRIO SUMÁRIO
4 Arrays 39
4.1 Arrays de Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Percorrendo Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3 Operações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5 Eclipse 45
5.1 Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2 Welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3 Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.4 Perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.5 Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.6 Criando um projeto java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.7 Criando uma classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.8 Criando o método main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.9 Executando uma classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.10 Corrigindo erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.11 Atalhos Úteis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.12 Save Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6 Atributos e Métodos de Classe 59
6.1 Atributos Estáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.2 Métodos Estáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.3 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
7 Encapsulamento 63
7.1 Atributos Privados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 Métodos Privados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.3 Métodos Públicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.4 Implementação e Interface de Uso . . . . . . . . . . . . . . . . . . . . . . . . 65
7.5 Escondendo a implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.6 Acesso e Alteração de atributos . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8 Herança 71
8.1 Reutilização de Código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.2 Reescrita de Método . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.3 Construtores e Herança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9 Polimorfismo 83
9.1 Modelagem das contas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.2 É UM (extends) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.3 Melhorando o gerador de extrato . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
www.k19.com.br iv
SUMÁRIO SUMÁRIO
10 Classes Abstratas 89
10.1 Classes Abstratas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
10.2 Métodos Abstratos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
10.3 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
11 Interfaces 93
11.1 Padronização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
11.2 Contratos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
11.3 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
11.4 Polimorfismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
11.5 Interface e Herança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
11.6 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
12 Pacotes 101
12.1 Organização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
12.2 O comando package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
12.3 Sub Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
12.4 Classes ou Interfaces públicas . . . . . . . . . . . . . . . . . . . . . . . . . . 102
12.4.1 Fully Qualified Name . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
12.5 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
12.6 Níveis de visibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
12.6.1 Privado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
12.6.2 Padrão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
12.6.3 Protegido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
12.6.4 Público . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
12.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .