Sumário 䉴 Capítulo 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 “Alô, Mundo!” em Java 24 Comentários de documentação 27 Tipos primitivos 30 Comandos de controle de fluxo 33 Referências para objetos 33 Passagem de parâmetros 35 Pacotes 37 Tratamento básico de exceções 38 Strings 41 Lendo a entrada 43 Listas sobre vetores e listas encadeadas Vetores 45 Campos e métodos estáticos 47 Estilo de programação 49 䉴 Capítulo 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 Horstmann_Iniciais.indd 15 23 43 O Processo de Projeto Orientado a Objetos Do problema à codificação 54 Conceitos de objeto e classe 56 Identificando classes 59 Identificando responsabilidades 62 Relacionamentos entre classes 63 Casos de uso 65 Cartões CRC 66 Diagramas de classe UML 69 Diagramas de seqüência 73 Diagramas de estado 75 Usando javadoc para documentação de projeto Estudo de caso: sistema de correio de voz 77 䉴 Capítulo 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 Um Curso Relâmpago de Java 53 76 Orientações para o Projeto de Classes Uma visão geral das classes de data da biblioteca Java Projetando a classe Day 105 Três implementações para a classe Day 108 A importância do encapsulamento 120 Analisando a qualidade de uma interface 127 Programando por contratos 131 Teste unitário 139 101 102 6/1/07 9:59:18 AM 16 Sumário 䉴 Capítulo 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 A interface Icon 146 Polimorfismo 150 A interface Comparable 151 A interface Comparator 154 Classes anônimas 155 Frames e componentes de interface com o usuário Ações da interface com o usuário 159 Temporizadores 163 Desenhando formas 164 Projetando uma interface 169 䉴 Capítulo 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 Horstmann_Iniciais.indd 16 157 Padrões e Programação de GUI 177 Heranças e Classes Abstratas 215 O conceito de herança 216 Programando interfaces gráficas usando herança 222 Classes abstratas 227 O padrão TEMPLATE METHOD 234 Interfaces protegidas 238 A hierarquia dos componentes Swing 241 A hierarquia de figuras geométricas básicas 245 A hierarquia de classes de exceção 249 Quando não usar herança 251 䉴 Capítulo 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 145 O iterador como padrão 178 O conceito de padrão 180 O padrão OBSERVER 183 Gerenciadores de layout e o padrão STRATEGY 186 Componentes, contêineres e o padrão COMPOSITE 196 Barras de rolagem e o padrão DECORATOR 197 Como reconhecer os padrões 200 Colocando os padrões para funcionar 202 䉴 Capítulo 6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 Interfaces e Polimorfismo O Modelo de Objetos de Java 257 O sistema de tipos de Java 258 Questionando tipos 264 A classe Object 266 Cópia rasa e cópia profunda 274 Serialização 278 Reflexão 281 Tipos genéricos 287 Componentes JavaBeans 295 6/1/07 9:59:18 AM Sumário 䉴 Capítulo 8 8.1 8.2 8.3 8.4 8.5 Frameworks Multithreading 9.1 Conceitos básicos 350 9.2 Sincronização de threads 9.3 Animações 373 䉴 Capítulo 10 10.1 10.2 10.3 10.4 10.5 10.6 10.7 342 349 357 Mais Padrões de Projeto 383 O padrão ADAPTER 384 Ações e o padrão COMMAND 387 O padrão FACTORY METHOD 391 O padrão PROXY 393 O padrão SINGLETON 397 O padrão VISITOR 399 Outros padrões de projeto 405 Glossário Índice 409 415 Crédito das Fotos Horstmann_Iniciais.indd 17 311 Framework 312 Applets como um framework simples 312 O framework Coleções 316 O framework de um editor de grafos 325 Melhorando o framework de editores de grafos 䉴 Capítulo 9 17 424 6/1/07 9:59:19 AM