Programação Centrada em Objetos Código: 26706 ECTS: 6 Ano Letivo: 2015/16 Carga horária: T: 2:00 h; TP: 1:30 h; OT: 2:00 h; Departamento: Informática Área Científica: Informática; Objetivos da Unidade Curricular Pretende-se que o aluno adquira os conceitos e as técnicas fundamentais da programação centrada em objectos, com ênfase na abstracção em classes, herança, polimorfismo e excepções; pretende-se igualmente que o aluno aprenda a manusear a linguagem de programação Java. Pré-requisitos Programação I (26701) Programação II (26705) Conteúdos - Noção de classe e objecto no paradigma orientado-a-objectos, instanciados na linguagem de programação Java. - Herança de tipos, polimorfismo, excepções, e tipos genéricos. - Introdução à modelação e desenho de classes usando UML. - Desenho por contracto: noções de pré-condição, pós-condição e invariante de classe. Herança de classes e o princípio de substituição de Liskov. Introdução à linguagem de contractos JML para Java. - Uso de componentes da Java API: "collections framework", input/output, reflecção, serialização. Descrição detalhada dos conteúdos programáticos Componente Teórica Classes Java enquanto tipos com implementação, configuração e comportamento das classes (Atributos, métodos), criação de objectos. Noção de cliente e fornecedor, encapsulamento de informação. Abstracção e interfaces. Herança e Polimorfismo. Excepções. Asserções e programação por contrato. Classes genéricas. Componente Teórica-Prática Realização de três trabalhos práticos de programação em grupos de 1/2 alunos. Bibliografia Recomendada The JAVA Programming Language, 4th edition, K. Arnold, J.Gosling, and D.Holmes, Addison-Wesley 2005, ISBN 0-321-34980-6. Programação, Algoritmos e Estruturas de Dados, 2ed. João Pedro Neto. Escolar Editora 2008, ISBN 9725922163. Outros elementos de estudo The Java Language Specification, Java SE 7 Edition(online) J. Gosling et al., (disponível online) Design by Contract with JML ,G.T. Leavens e Y. Chen, 2006 Introduction to Programming Using Java, D. Eck, 2006. Métodos de Avaliação * Trabalhos práticos de programação: 6 valores * Exame final: 14 valores Língua de ensino Português