apostila orientacao objetos
£ £ £ £
£ £
£
¢ ¡¡ ¡£ ¢¡¡
¢ ££ £
¢
£¡¢¢¡£¢
£
¢ £ ¡¡¡¢ ¢¡
¡ ¢¡¢¢ £¡ £
¢ £
££ £
¢ ¡¡ ¡¢ ¢¡
¢ ££ £
£¡¢¢¡£¢ £¡ £
¢¡ ¢¡¡¡¡¢¡ ¢¡
¢¢¢
Instituto de Computa¸˜o - UNICAMP ca 2009
2
Sum´rio a Sum´rio a i
Lista de Tabelas
v
Lista de Figuras
vii
1 Introdu¸˜o ca 1.1 Estrutura¸˜o de Software . . . . . . . . . . . . . . . . . . . . . . . . . . ca 1.1.1 Gerenciamento da Complexidade do Software . . . . . . . . . . .
1.1.2 T´cnicas de Estrutura¸˜o de Software . . . . . . . . . . . . . . . e ca
1.1.3 Crise de Software . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Evolu¸˜o da Abstra¸˜o em Linguagens de Programa¸ao . . . . . . . . . ca ca c˜ 1.2.1 Desenvolvimento de Software . . . . . . . . . . . . . . . . . . . .
1.2.2 M´dulos, Pacotes e Subsistemas . . . . . . . . . . . . . . . . . . o 1.2.3 Tipos Abstratos de Dados . . . . . . . . . . . . . . . . . . . . . .
1.2.4 Programa¸˜o Orientada a Objetos . . . . . . . . . . . . . . . . . ca 1.2.5 Programa¸˜o Orientada a Objetos vs. Programa¸˜o Estruturada ca ca
1.2.6 Linguagens Orientadas a Objetos . . . . . . . . . . . . . . . . . .
1.3 Fundamentos do Paradigma de Objetos . . . . . . . . . . . . . . . . . .
1.3.1 O Conceito de Objeto . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.3 Classifica¸˜o/Instancia¸˜o . . . . . . . . . . . . . . . . . . . . . . ca ca
1.3.4 Abstra¸˜o de Dados e Hierarquias de Abstra¸˜es . . . . . . . . . ca co
1.3.5 Generaliza¸˜o/Especializa¸˜o . . . . . . . . . . . . . . . . . . . . ca ca
1.3.6 Agrega¸˜o/Decomposi¸˜o . . . . . . . . . . . . . . . . . . . . . . ca ca