A maior rede de estudos do Brasil

Grátis
118 pág.
poojava

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

DEPARTAMENTO DE ENGENHARIA DE COMPUTAÇÃO E AUTOMAÇÃO INDUSTRIAL
FACULDADE DE ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO
UNIVERSIDADE ESTADUAL DE CAMPINAS
Programação Orientada a Objetos:
Uma Abordagem com Java
Ivan Luiz Marques Ricarte
2001
Sumário
1 Fundamentos da programação orientada a objetos 3
1.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Herança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Polimorfismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Princípios da programação na linguagem Java 8
2.1 Tipos primitivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Identificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1 Expressões retornando valores numéricos . . . . . . . . . . . . . . . . . . . 11
2.3.2 Expressões retornando valores booleanos . . . . . . . . . . . . . . . . . . . 12
2.3.3 Outros tipos de expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.4 Controle do fluxo de execução . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.5 Comentários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Operações sobre objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.1 Arranjos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.2 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5 Classes em Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.1 Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.2 Definição de classes em Java . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.3 O método main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.4 Visibilidade da classe e seus membros . . . . . . . . . . . . . . . . . . . . . 25
2.5.5 Classes derivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.6 Classes abstratas e finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.7 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6 Exceções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.1 Tratamento de exceções . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6.2 Erros e exceções de runtime . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.6.3 Propagando exceções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.6.4 Definindo e gerando exceções . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.7 O ambiente de Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.7.1 Ferramentas do Java SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.7.2 Geração de código portátil . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1
Programação orientada a objetos com Java Sumário
2.7.3 Desenvolvimento de aplicações . . . . . . . . . . . . . . . . . . . . . . . . 35
3 Uso das classes da API padrão de Java 37
3.1 Funcionalidades básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Entrada e saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.1 Transferência de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.2 Transferência de bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.3 Manipulação de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2.4 Serialização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3 Framework de coleções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4 Extensões padronizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4 Desenvolvimento de aplicações gráficas 46
4.1 Apresentação gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2 Interfaces gráficas com usuários . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.1 Eventos da interface gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.2 Componentes gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.2.3 Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.4 Janelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.5 Gerenciadores de layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.3 Desenvolvimento de applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3.1 Criação de applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.3.2 Execução de applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.3.3 Passagem de parâmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.4 Contexto de execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5 Desenvolvimento de aplicações distribuídas 72
5.1 Programação cliente-servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.1.1 Conceitos preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.1.2 Aplicações TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.1.3 Aplicações UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.1.4 Aplicações HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2 Acesso a bancos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.2.1 Bancos de dados relacionais . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.2.2 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.2.3 JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3 Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.3.1 Ciclo de vida de um servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3.2 Fundamentos da API de servlets . . . . . . . . . . . . . . . . . . . . . . . . 92
5.4 Programação com objetos distribuídos . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.4.1 Arquiteturas de objetos distribuídos . . . . . . . . . . . . . . . . . . . . . . 94
5.4.2 Java RMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.4.3 Java IDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
A Palavras chaves de Java 117
c
�
2001 FEEC/UNICAMP 2
Capítulo 1
Fundamentos da programação orientada
a objetos
Neste capítulo são apresentados os conceitos básicos que permeiam o uso das técnicas de orien-
tação a objetos na programação, sempre utilizando a linguagem Java como motivador.
Objetos são instâncias de classes, que determinam qual informação um objeto contém e como ele
pode manipulá-la.
Um dos grandes diferenciais da programação orientada a objetos em relação a outros paradigmas
de programação que também permitem a definição de estruturas e operações sobre essas estruturas
está no conceito de herança, mecanismo através do qual definições existentes podem ser facilmente
estendidas. Juntamente com a herança deve ser enfatizada a importância do polimorfismo, que permi-
te selecionar funcionalidades que um programa irá utilizar de forma dinâmica, durante sua execução.
1.1 Classes
A definição de classes e seus inter-relacionamentos é o principal resultado da etapa de projeto de
software. Em geral, esse resultado é expresso em termos de alguma linguagem de modelagem, tal
como UML.