MC302 - Programação Orientada a Objetos

Créditos: 6
Horas semanais de atividades teóricas: 4
Horas semanais de atividades de laboratório: 2
Oferecimento: Ambos os períodos letivos
 
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.
  • Modelagem orientada a objetos e UML
  • 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.
  • Modularização e pacotes
  • 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 multidimensionais; lista de argumentos de tamanho variável.
  • Relacionamentos entre classes: hierarquias de generalização/especialização, hierarquias de agrega-ção/decomposição e associação.
  • Enumerações
  • Classes Internas: classes internas e anônimas.
  • Herança Simples e Múltipla: relacionamento “é um”; subclasses e superclasses; sobreposição e ocul-tamento; métodos e classes finais; construtores em subclasses.
  • Polimorfismo e Acoplamento Dinâmico: polimorfismo de inclusão, polimorfismo paramétrico, so-brecarga (overloading), redefinição de operações (overriding), acoplamento estático versus dinâmico, métodos finais, classes finais, operações polimórficas, classes genéricas, parametrização de tipos.
  • 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; pré-condições e pós-condições; assertivas.
  • Arquivos: E/S em arquivos textuais e binários; serialização e persistência de objetos.
  • Coleções genéricas: Interfaces e implementações concretas de estruturas de dados genéricas.
  • Conceitos introdutórios em Padrões de Projeto

*** Tópicos Opcionais

  • Interfaces gráficas
  • Programação Concorrente
  • Expressões Regulares
  • Metaclasses
  • Aplicativos em Web
  • Interface com Banco de Dados
Bibliografia
The Java Programming Language, Ken Arnold, James Gosling, & David Holmes; Prentice Hall, 4th edition (2005)
Java in a Nutshell, David Flanagan; O'Reilly & Associates, 5th edition (2005)
Thinking in Java, Bruce Eckel; Prentice Hall, 4th edition (2006)
Head First Java, Kathy Sierra & Bert Bates; O'Reilly Media, 2nd edition (2005)
Java How to Program, Harvey M. Deitel & Paul J. Deitel; Prentice Hall, 7th edition (2007)
Object-Oriented Programming with Java: An Introduction, David J. Barnes; Prentice Hall (2000)