MC322 - Programação Orientada a Objetos

Pré-Requisitos
MC202
Ementa

Conceitos básicos e avançados de programação orientada a objetos. Aplicação dos conceitos usando uma linguagem orientada a objetos.

Programa
  • Conceitos básicos do modelo de objetos: objeto, interface pública, estado, mensagens, encapsulamento de dados e operações, comportamento.
  • Introdução a uma linguagem de programação orientada a objetos: tipos básicos, estruturas de dados e de programação.
  • Abstração de dados, classes e tipos abstratos de dados: declaração de classes, métodos, variáveis, modificadores de acesso, instanciação de objetos e construtores.
  • Visibilidade de atributos e métodos: modificadores de visibilidade privado, público, protegido e de pacote.
  • Métodos estáticos e atributos estáticos: atributos de instância versus atributos estáticos; métodos de instância versus métodos estáticos.
  • Vetores estáticos e dinâmicos: declaração, inicialização e manipulação de arrays unidimensionais e multidimensi-onais; lista de argumentos de tamanho variável.
  • Enumerações
  • Herança Simples e Múltipla: relacionamento “é um”; subclasses e superclasses; sobreposição e ocultamento; métodos e classes finais; construtores em subclasses.
  • Polimorfismo e Acoplamento Dinâmico: polimorfismo de inclusão, sobrecarga (overloading), redefinição de ope-rações (overriding), acoplamento estático versus dinâmico, métodos finais, classes finais, operações polimórficas.
  • Classes abstratas
  • Interfaces
  • Tratamento de exceções: erros e exceções; hierarquia de exceções; captura ou declaração de exceções; lançamento de exceções; retrocesso de pilha; encadeamento de exceções.

*** Tópicos Opcionais

  • Arquivos
  • Coleções Genéricas
  • Classes genéricas
  • Interfaces gráficas
  • Programação Concorrente
  • Expressões Regulares
Bibliografia
1. Java: Como Programar, Paul Deitel & Heivey Deitel, Pearson, 8a. Ed, 2010.
2. Java in a Nutshell, David Flanagan, O’Reilley, 6th. Ed, 2014.
3. The Java Programming Language, Ken Arnold, James Gosling, & David Holmes; Prentice Hall, 4th edition (2005)
4. Thinking in Java, Bruce Eckel; Prentice Hall, 2th edition (2000)
5. Data Structures and Algorithms with Object Oriented Design Patterns in Java, Bruno Preiss;
6. The Java Tutorials (Oracle) (http://docs.oracle.com/javase/tutorial/)
7. Java Pocket Guide - Robert Liguori & Patricia Liguori; O’Reilley, 2008.
8. Guia do Usuário UML, Grady Booch et. al.; Campus(1999)