Marco Antonio Moreira de Carvalho
 Departamento de Computação  |  Universidade Federal de Ouro Preto

BCC221 - Programação Orientada a Objetos

Material das Aulas

Onde encontrar

O material da disciplina pode ser encontrado no Moodle ou no repósitório do GitHub.

Conteúdo

  • Introdução ao Curso (aula 00).
  • Link para o artigo "Object Oriented Programming";
  • Conteúdo 1 (slides, listex)
    • Programação Estruturada
    • Orientação a Objetos
      • Conceitos básicos
        • Objetos
        • Classes
        • Relacionamentos entre classes
      • Análise
      • Projeto
    • UML
      • Conceitos básicos
      • Diagramas de Classses
    • Programação Estruturada vs. POO
  • Conteúdo 2 (slides, listex)
    • Processo de Criação de um Programa C++
    • Programando em C++
    • Operadores
    • Palavras reservadas
    • cin
    • cout
    • Blocos de código
    • Referências
    • Ponteiros e Alocação Dinâmica
    • Sobrecarga de Funções
  • Conteúdo 3 (slides, listex, driver da classe string, classe String)   
    • Classes
    • Objetos
    • Métodos
      • Construtores
      • Destrutores
      • Objetos como Parâmetros de Métodos
      • Métodos que Retornam Objetos
      • Separando a Interface da Implementação
    • Composição: Objetos como Membros de Classes
    • Funções Amigas
    • Sobrecarga de Operadores
    • O Ponteiro This
  • Conteúdo 4 (slides, listex)
    • Herança
      • Compilação
      • Redefinição de Métodos
      • Construtores e Destrutores em Classes Derivadas
    • Herança Pública vs. Privada vs. Protegida
    • Conversões de Tipo entre Base e Derivada
    • Herança Múltipla
      • Classes Bases Virtuais
      • Compilação
      • Construtores em Herança Múltipla
  • Conteúdo 5 (slides, listex, exemplo completo)
    • Polimorfismo
      • Funções Virtuais
      • Resolução Dinâmica
      • Classes Abstratas
        • Funções Virtuais Puras
      • Conversão de Tipos
      • Destrutores Virtuais
  • Conteúdo 6 (slides)
    • Exceções
      • trythrow catch
      • Modelo de Terminação
      • Erros comuns
      • Quando Utilizar Exceções?
      • Classes de Exceções da Biblioteca Padrão
  • Conteúdo 7 (slides, listex)
    • Genéricos (Templates)
      • Programação Genérica
      • Funções Genéricas
      • Classes Genéricas
        • Outros Parâmetros e Parâmetros Padronizados
      • Observações Sobre Genéricos e Herança
      • Observações Sobre Genéricos e Funções Amigas
      • Observações Sobre Genéricos e Membros static
    • Standard Templates Library
      • Contêineres
      • Iteradores
      • Algoritmos
      • Exemplos
  • Conteúdo 8 (slides)
    • Processamento de Arquivos
      • Escrita
      • Leitura
      • Ponteiros de Posição
      • Arquivos de Acesso Aleatório
      • Exemplos

 

  • Enunciado do Trabalho Prático I;

 

  • Conteúdo 9 (slides, listex)
    • Breve história do Java
    • Criação de Um Programa Java
    • Instruções de Saída
    • Importando Classes
      • Classe Scanner
    • Caixas de Diálogo
    • Operadores e Palavras Reservadas
    • Vetores
    • API Java
    • Classes e Métodos
      • Passagem de Parâmetros
      • Escopo de Variáveis e Atributos
      • Construtores
      • Finalizadores e Coleta de Lixo Automática
      • Membros static
    • Outros
  • Conteúdo 10 (slides, listex)
    • Métodos static
    • Classe Math
    • Promoção de Argumentos
    • Sobrecarga de Métodos
    • Composição
    • Enumerações
      • Enumerações e Classes
    • static import
    • Criando Pacotes
      • Acesso de Pacote
    • Breve Comparação entre C++ e Java
  • Conteúdo 11 (slides, listex)
    • Herança
    • Especificadores de Acesso
    • Classe Object
    • Exemplo
    • Construtores em Subclasses
    • Compilação
    • Redefinição de Métodos
    • Engenharia de Software com Herança
  • Conteúdo 12 (slides, listex)
    • Polimorfismo
      • Exemplo
    • Classes e métodos abstratos
      • Exemplo Polimorfismo e Downcast
      • Resolução Dinâmica
      • Operador instanceof
      • Downcast
      • Método getclass
    • Métodos e Classes final
    • Criando e Utilizando Interfaces
    • Declarando Constantes em Interfaces
    • Herança Múltipla e Interfaces
    • Interfaces Comuns da API Java
  • Conteúdo 13 (slides, códigos, trabalho II)
    • Caixas de Diálogo
    • Componentes Swing
    • Swing vs. AWT
    • Componentes Leves e Pesados
    • Exibindo Textos e Imagens em uma Janela
    • Especificando o Leiaute
    • Criando Labels
    • Campos de Texto e Introdução à Manipulação de Eventos
    • Tipos Comuns de Eventos e Listener Interfaces
    • Botões
      • Botões que Mantêm seu Estado
    • Caixas de Marcação
    • Botões de Opção
    • Caixas de Combinação
    • Listas
      • Listas de Seleções Múltiplas
    • Manipulação de Eventos do Mouse
    • Classes Adaptadoras
    • Subclasse JPanel para Desenhar com o Mouse
    • Manipulação de Eventos do Teclado
    • Gerenciadores de Leiaute
    • Áreas de Texto
  • Conteúdo 14 (slides, listex)
    • try catch
    • Modelo de Terminação
    • Cláusula throws
    • Quando Utilizar Exceções?
    • Hierarquia de Exceções Java
    • Blocos finally
    • throw
    • Desfazendo a Pilha
    • printStackTracegetStackTrace getMessage
    • Exceções Encadeadas
    • Declarando Novos Tipos de Exceções
    • Pré-Condições e Pós-Condições
    • Asserções
  • Conteúdo 15 (slides, listex)
    • Genéricos
      • Métodos Genéricos
      • Classes Genéricas
      • Tipos "Crus"
      • Coringas em Métodos Genéricos
      • Genéricos e Herança
    • Coleções
      • Classe Arrays
      • Interface Collection e Classe Collections
      • Listas
        • ArrayList Iterator
        • LinkedList
      • Vector
      • Algoritmos
      • Pilhas
      • Filas de Prioridade
      • Conjuntos
      • Mapas
  • Conteúdo 16 (slides)
    • Arquivos
    • Classe File
    • Arquivos Texto de Acesso Sequencial
      • Escrita
      • Leitura
      • Atualização
    • Serialização de Objetos
      • Escrita
      • Leitura
    • Arquivos de Acesso Aleatório
  • Conteúdo 17 (slides)
    • Introdução ao Java Reflections API

Departamento de Computação  |  ICEB  |  Universidade Federal de Ouro Preto
Campus Universitário Morro do Cruzeiro  |  CEP 35400-000  |  Ouro Preto - MG, Brasil
Telefone: +55 (31) 3559-1663  |  marco.opt@gmail.com