programação orientada a objetos - renatomaia.net · renato dourado maia – programação...

27
Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Classes e Objetos Programação Orientada a Objetos

Upload: doanh

Post on 14-Nov-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia

Universidade Estadual de Montes Claros

Engenharia de Sistemas

Classes e Objetos

Programação Orientada a Objetos

Page 2: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Na Unidade II – Modelagem Orientada a Objetos, vimos:

Como utilizar a metodologia OO para organizar a com-plexidade de sistemas de software.

Quais os principais mecanismos que poderão ser utiliza-dos para isso.

Uma introdução à análise e ao projeto orientado a obje-tos.

Lembrando

Não tratamos essa parte em sala... Ela será estudada por vocês durante a execução do

primeiro trabalho!

17/08/2015 2/27

Page 3: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Na Unidade III – Classes e Objetos, veremos:

Como as ideias apresentadas na Unidade II se transfor-mam em código, utilizando-se a linguagem C++.

Especificamente, estudadaremos como criar classes e objetos em C++.

Unidade III

Será considerado que todos compreenderam as ideias apresen-tadas na Unidade II: elas foram revisitadas na primeira lista de

exercícios!

17/08/2015 3/27

Page 4: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Unidade III – Classes e Objetos:

Implementando classes e objetos em C++. Atributos e métodos: controle de acesso e encapsula-

mento. Inicialização e destruição. Sobrecarga de funções e argumentos default. Constantes, funções inline e controle de visibilidade. Ponteiros, referências, atributos dinâmicos, gerencia-

mento de memória e o construtor de cópia. Sobrecarga de operadores e conversão de tipos.

Unidade III

17/08/2015 4/27

Page 5: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Serão considerados conhecidos vários itens que são apresentados no capítulo 2 do livro:

O que significa o processo de compilação. Como criar projetos para efetuar compilação de vários

módulos em separado. O que significa o processo de “linkagem” e como utilizar

bibliotecas de funções em C. Qual é a diferença entre declaração e definição e porque

declarações são utilizadas (Declare.cpp). Como os header files são utilizados em C. Qual é a sintaxe utilizada para declarar funções em C.

Importante

17/08/2015 5/27

Page 6: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Importante

Mas eu não sei nada disso!!!

ENTÃO LEIA E ESTUDE, POIS VOCÊ DEVERIA SABER!!!

17/08/2015 6/27

Page 7: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Um Primeiro Programa em C++

17/08/2015 7/27

Page 8: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Analisar os programas listados a seguir, presen-tes no livro, que apresentam alguns aspectos es-pecíficos da entrada e saída em C++:

Stream2.cpp: formatação da saída. Concat.cpp: concatenação de arranjos de caracteres. Numconv.cpp: leitura de entrada e formatação da saída. CallHello.cpp: utilização da função system() para execu-

tar um programa de dentro de outro.

Aquecimento

17/08/2015 8/27

Page 9: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Isso foi feito nos programas anteriores: cin e cout são objetos pertencentes às classes istream e ostream do C++!

Utilizando Objetos de Classes Existentes na Biblioteca Padrão

17/08/2015 9/27

Page 10: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Utilizando Objetos de Classes Existentes na Biblioteca Padrão

17/08/2015 10/27

Page 11: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Utilizando Objetos de Classes Existentes na Biblioteca Padrão

17/08/2015 11/27

Page 12: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Utilizando Objetos de Classes Existentes na Biblioteca Padrão

17/08/2015 12/27

Page 13: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Criando vetores com a biblioteca vector<T> da biblioteca padrão:

Classe template, que permite a criação de vetores de ti-pos diferentes. Especifica-se o tipo no momento da de-claração do vetor!

Podem ser adicionados novos elementos ao vetor por meio do método push_back()!

Utilizando Objetos de Classes Existentes na Biblioteca Padrão

Estudaremos melhor as classes template depois!

17/08/2015 13/27

Page 14: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Utilizando Objetos de Classes Existentes na Biblioteca Padrão

Vejam o programa Getwords.cpp!

17/08/2015 14/27

Page 15: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Utilizando Objetos de Classes Existentes na Biblioteca Padrão

17/08/2015 15/27

Page 16: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Será considerado que todos são familiares com a sintaxe da linguagem C! O Capítulo 3 faz uma revisão de pontos fundamentais:

Como criar funções e protótipos de função. Como utilizar funções da biblioteca padrão. Como criar sua própria biblioteca de funções. Estruturas de controle de execução: if-else, while, do-

while, for, break, continue, switch, etc. Funções recursivas. Tipos de dados pré-definidos na linguagem. Ponteiros.

O C Dentro do C++

17/08/2015 16/27

Page 17: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

O C Dentro do C++

Mas eu não sei nada disso!!!

ESTUDE! DICA: http://www.ead.cpdee.ufmg.br/cursos/C/

17/08/2015 17/27

Page 18: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Ponteiros: declaração, atribuição, operador ende-reço e operador de indireção ou de-referenciação (“conteúdo”)...

O C Dentro do C++

17/08/2015 18/27

Page 19: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Ponteiros e arrays: aritmética de ponteiros...

O C Dentro do C++

17/08/2015 19/27

Page 20: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Ponteiros e arrays: alocação dinâmica de memó-ria...

O C Dentro do C++

17/08/2015 20/27

Page 21: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

A passagem de parâmetros padrão em C é feita por cópia:

Passagem de Parâmetros por Referência Utilizando Ponteiros

<iostream.h> ???

17/08/2015 21/27

Page 22: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Em C++ podem ser declaradas referências:

E parâmetros podem ser passados por referência:

Passagem de Parâmetros por Referência Utilizando Referências

17/08/2015 22/27

Page 23: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Regras de escopo. Criação de tipos: typedef, structs, ponteiros e

structs, enums. Arrays e Matrizes. Dicas para debug de programas. Utilização de asserts. Ponteiros para função. Utilização de Makefiles para estruturar projetos.

Outros Pontos Importantes

17/08/2015 23/27

Page 24: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

O capítulo 4 do livro mostra como as bibliotecas na linguagem C são estruturadas (de forma pro-cedural):

Existem várias funções independentes que são agrupa-das por sua “afinidade” em um arquivo.

Muitas vezes se cria uma estrutura de dados (struct) que agrupa os dados sobre os quais ssas funções atuam.

Essa é uma abordagem clássica, utilizada por vá-rias bibliotecas de sucesso e que utilizam a lin-guagem C.

Efetuando Abstração de Dados com as Linguagens C e C++

17/08/2015 24/27

Page 25: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Lembrando...

Programação Estruturada

Dados Atributos (Dados)

Funções Métodos

(Funções)

Objeto

Programação Orientada a Objetos

17/08/2015 25/27

Page 26: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Mensagem Final

Na próxima aula, iniciaremos de fato o estudo sobre implementação de

classes e objetos. Estudem o que foi tratado na aula de hoje (muita coisa),

pois o ritmo será acelerado!

Lembem-se: alguns detalhes não são tratados em aula! Vamos dar uma olhada no livro, para que vocês vejam o que

há para ser lido...

17/08/2015 26/27

Page 27: Programação Orientada a Objetos - renatomaia.net · Renato Dourado Maia – Programação Orientada a Objetos Na Unidade II – Modelagem Orientada a Objetos, vimos: Como utilizar

Renato Dourado Maia – Programação Orientada a Objetos

Esta apresentação é uma adaptação do material originalmente desenvolvido pelo professor Renato Cardoso Mesquita, do Departamento de Engenha-ria Elétrica da Universidade Federal de Minas Ge-rais.

Importante

http://www.cpdee.ufmg.br/~renato/

17/08/2015 27/27