Regras para a edição do livro: 1 A edição do livro será coordenada pelos professores, sendo eles responsáveis também pela escrita de alguns capítulos (como a introdução e as considerações finais) e pela revisão e correção dos demais; preocupando-se também com a continuidade dos exemplos e exercícios; 2 O livro será escrito por um conjunto de profissionais de TI, entre alunos, professores, e desenvolvedores, e será publicado sob uma licença de copyleft ou similar; 3 Cada capítulo será escrito por um grupo de 3 a 5 alunos, dependendo da quantidade de trabalho em cada caso; 4 Cada grupo de alunos deve organizar-se de forma a dividir igualmente o trabalho; ou seja, cada aluno fará, individualmente 3 subtópicos de um capítulo, ou um subtópico para 3 capítulos; 5 Cada aluno deve citar ao menos 5 referências diferentes em seu texto; 6 Não será permitida a cópia de material não autorizado para o conteúdo do livro, devendo cada grupo escrever seu texto sem copiar de nenhuma fonte, ou no máximo copiando esporadicamente uma frase e fazendo a devida citação ao autor original; 7 Após receber os trabalhos, cabe aos professores responsáveis pela coordenação do livro avaliar se o texto será ou não incluso no livro, os membros do grupo aprovado serão considerados então os autores daquele capítulo; 8 Semestralmente novos grupos poderão submeter novos textos para preencher tópicos ainda não abordados, ou para atualizar tópicos defasados; gerando assim uma nova edição do livro após uma considerável quantidade de mudanças. PROGRAMAÇÃO ORIENTADA À OBJETOS PARTE 1 – EMBASAMENTO TEÓRICO Capítulo 1 – Introdução 1.1 – Apresentação 1.2 – Paradigmas de Programação 1.3 – Apresentação do Documento Referências Capítulo 2 – O Paradigma Orientado à Objetos 2.1 – Conceitos Gerais (1) Emerson, Arnobio 2.2 – Classes (2) Emerson, Arnobio 2.3 – Objetos (3) Emerson, Arnobio 2.4 – Atributos (4) Emerson, Arnobio 2.5 – Métodos (5) Emerson, Arnobio 2.5.1 – Assinaturas 2.5.2 – Sobrecarga 2.6 – Relacionamentos entre Classes 2.6.1 – Herança (Generalização) (8) – Polimorfismo 2.6.3 – Associações: Agregação e Composição (9) José Daniel 2.6.4 – Dependência (10) José Daniel 2.6.5 – Realização (11) José Daniel 2.7 – Encapsulamento (12) 2.8 – Interfaces (13) Referências Capítulo 3 – Diagramas e Visões UML 3.1 – Conceitos Básicos (14) 3.2 – Elementos (15) 3.2.1 – Itens (16) – Estruturais; – Comportamentais; – De Agrupamento; – Anotacionais; – Outros. 3.2.2 – Relacionamentos – Herança (Generalização) (17) Edmundo – Agregação (18) Edmundo – Composição (19) Edmundo – Dependência (20) – Realização (21) 3.3 – Diagramas UML (22) 3.3.1 – Diagramas estruturais (23) Moroni, Akhnaton – Diagrama de Classes (24) Moroni, Akhnaton – Diagrama de Componentes (25) Moroni, Akhnaton – Diagrama de Estruturas Compostas (26) Elineto, Akhnaton – Diagrama de Desenvolvimento (27) Elineto – Diagrama de Objetos (28) Elineto – Diagrama de Pacotes (29) Moroni 3.3.2 – Diagramas Comportamentais (30) Gustavo, Edmo – Diagrama de Atividades (31) Gustavo, Edmo – Diagrama de Máquinas de Estado (32) Gustavo, Edmo – Diagrama de Casos de Uso (33) Gustavo, Edmo 3.3.3 – Diagramas de Interação (34) Walter, Marcos – Diagrama de Comunicação (35) Walter, Marcos – Diagrama de Interatividade (36) Walter, Marcos – Diagrama de Seqüência (37) Walter, Marcos – Diagrama de Tempo (38) Walter, Marcos 3.4 - Visões Arquiteturais (39) 3.4.2 – Visão de Requisitos Funcionais (40) 3.4.3 – Visão Estrutural Estática (41) 3.4.4 – Visão de Comportamento Dinâmico (42) Referências Capítulo 4 – Metodologias de Desenvolvimento de Software PARTE 2 – A LINGUAGEM JAVA Capítulo 5 – Fundamentos da Linguagem Java 5.1 – Introdução à Linguagem Java (43) Praxedes 5.1.1 - Histórico 5.1.2 – Características (44) Praxedes, Fabio – Tipos de Aplicação – Portabilidade: A Máquina Virtual Java – Robustês – Segurança – Distribuição – Multiprogramação 5.1.3 – Compilação e Interpretação (45) Praxedes, Fabio 5.1.4 – Alô Mundo em Java (46) Fabio 5.2 – Classes (47) Tulio 5.3 – Variáveis e Tipos (48) Tulio – Conversão de tipos 5.4 – Operações de Entrada e Saída (49) Tulio 5.5 – Operadores (50) Victor 5.6 – Controle de Fluxo (51) Victor 5.7 – Manipulação de Strings (52) Victor, Zamberth 5.8 – Métodos (53) Zamberth, Carlos 5.9 – Pacotes (54) Zamberth, Carlos 5.10 – Modificadores (55) Bruno, Carlos Referências Capítulo 6 – Orientação à Objetos em Java 6.1 – Conceitos Gerais (56) Bruno 6.2 – Classes (57) Bruno – O método Construtor 6.3 – Objetos (58) Bruno 6.4 – Variáveis e Atributos (59) 6.5 – Métodos (60) 6.5.1 – Assinaturas 6.5.2 – Sobrecarga 6.6 – Relacionamentos entre Classes (61) Moisés 6.6.1 – Herança (Generalização) (62) Moisés – Polimorfismo 6.6.3 – Associações: Agregação e Composição (63) Moisés 6.6.4 – Dependência (64) Moisés, Alex, Rosa 6.6.5 – Realização (65) Moisés, Alex, Rosa 6.7 – Encapsulamento (66) Alex, Rosa 6.8 – Interfaces (67) Alex, Rosa Capítulo 7 – Interface Gráfica do Usuário Capítulo 8 – Tópicos Avançados em Java 8.1. Métodos Especiais – O método equals() – O método toString() 8.2 – Tratamento de Arquivos 8.3 – Tratamento de Exceções 8.4 – Linhas de Execução (Threads) 8.5 – Conexões por Sockets Referências Capítulo 9 – Programação Web com Java 9.1 PARTE 3 – SOLUÇÕES PARTE 4 – FERRAMENTAS Capítulo 10 – Ferramentas de Criação e Manipulação de Diagramas UML 10.1 – Jude 10.2 – Rose 10.3 – ArgoUML 10.4 – Dia 10.5 – Visual Paradigm Referências Capítulo 11 – Ambientes Integrados de Desenvolvimento 11.1 – Eclipse 11.2 – NetBeans 11.3 – BlueJ Referências PARTE 4 – FINAL Capítulo 12 – Considerações Finais Capítulo 13 – Respostas aos Exercícios Capítulo 14 - Anexos