programação orientada a objetos (oop)rns/astroprog/oop_edu.pdf programas em c++ para compilar: ......
TRANSCRIPT
![Page 1: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/1.jpg)
Programação
Orientada a Objetos
(OOP)
J.E.S.CostaDep. Astronomia – IF/UFRGS
(maio/2010)
![Page 2: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/2.jpg)
● Estrutura de (struct)
● Classes x Estruturas
● Classes & Objetos
● Público x Privado
● Variávies & Métodos
● Construtures
● Operadores
● Declaração x Implementação
● Polimorfismo
● Herança
Tópicos
![Page 3: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/3.jpg)
Desenvolver um programa que faça o seguinte:
● Entrar dois vetores via teclado: v1=<x1, y1, z1> e v2=<x2,y2,z2>
● Calcular o módulo de cada vetor: d=|v1|=sqrt(x1*x1+y1*y1+z1*z1)
● Calcular o vetor unitário na direção de v1:
u1 = <x1/d, y1/d, z1/d>
● Calcular: v = v1 + v2
● Calcular: v = v1 – v2
● Calcular: v = v1 * v2 (produto escalar)
● Calvular: v = v1 x v2 (produto vetorial)
● Mostrar resultados.
Problema Proposto
![Page 4: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/4.jpg)
Programas em C++
Para compilar: % g++ prog01.cpp -o prog01Para executar: % prog01
![Page 5: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/5.jpg)
Uma solução baseada em programação estruturada
(prog01.cpp)
![Page 6: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/6.jpg)
ESTRUTURAS (struct)
Permite agrupar variáveis relacionadascom um mesmo objeto.
Todas as variáveis da estrutura sãoacessíveis → PÚBLICAS
![Page 7: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/7.jpg)
Usando Estruturas de Dados (struct)
(prog02.cpp)
![Page 8: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/8.jpg)
CLASSES x ESTRUTURAS
Classes são “estruturas com superpoderes!”
As variáveis membros de umaclasse são PRIVADAS pordefault, ao contrário das dasestruturas, que são PÚBLICAS.
C é um “objeto” da classe“minhaClasse” →
![Page 9: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/9.jpg)
CLASSE = VARIÁVEIS + MÉTODOS
As classes possuem dois tipos de membros:VARIÁVEIS e MÉTODOS.
MÉTODOS são funções que podem retornarum valor de algum tipo (int, float, string, double)ou... não retornar nenhum valor (void = muda).
Todos os MÉTODOS enxergam as variáveis Membros da classe.
MÉTODOS PÚBLICOS podem ser chamadosde for a da classe.
MÉTODOS PRIVADOS só podem ser chamadosde dentro da classe onde estão.
OBJETOS são instâncias de uma classe.
![Page 10: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/10.jpg)
Usando umaCLASSE
(prog03.cpp)
![Page 11: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/11.jpg)
MÉTODO CONSTRUTOR
Pode-se definir um MÉTODO CONSTRUTOR(constructor) que é chamado automaticamentelogo que um objeto da classe é criado.
O método construtor tem sempre o MESMO NOMEda classe (e não possui tipo).
![Page 12: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/12.jpg)
Adicionando um
CONSTRUCTOR
(prog04.cpp)
![Page 13: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/13.jpg)
MÉTODOS OPERADORES (operators)
É possível definir OPERADORES (+ - = * / # ).
![Page 14: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/14.jpg)
Declarando
OPERADORES
(prog05.cpp)
![Page 15: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/15.jpg)
(prog05.cpp)
Usando OPERADORES
![Page 16: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/16.jpg)
Incluindo métodos de
Input e output
(prog06.cpp)
![Page 17: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/17.jpg)
DECLARAÇÃO x IMPLEMENTAÇÃO
É conveniente separar as duas partes.
declaração + Implementação → file.h
ou
declaração → file.hImplementação → file.cpp
![Page 18: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/18.jpg)
Declaração e Implementaçãode uma Classe.
![Page 19: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/19.jpg)
Versão final do programa
(prog07.cpp)
![Page 20: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/20.jpg)
POLIMORFISMO
Métodos diferentes podem ter o mesmo nome!
Polimorfismo = várias formas.
![Page 21: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/21.jpg)
HERANÇA
Uma classe pode herdar variáveis e métodos de outra classe.
![Page 22: Programação Orientada a Objetos (OOP)rns/astroprog/oop_edu.pdf Programas em C++ Para compilar: ... Uma solução baseada em programação estruturada (prog01.cpp) ESTRUTURAS (struct)](https://reader031.vdocuments.site/reader031/viewer/2022031314/5c435ec393f3c34c4b2639c0/html5/thumbnails/22.jpg)
Referências:
http://www.cplusplus.com/