Você está na página 1de 26

Introduo a Orientao a Objetos utilizando a Linguagem C++

Tecg Carlos Henrique da Silva Santos


henrique@dmo.fee.unicamp.br

Agradecimentos

Ramo Estudantil IEEE da Eng. Eltrica (Alexandre) Captulo EDS (Ricardo Cotrin) Organizadores (Jlio Novais e a Fernanda) Faculdade de Eng. Eltrica (Marco Aurlio) SIFEEC Prof. Dr. Hugo Figueroa

Carlos Henrique / Introduo C++

(Provrbios 2:10)
Porquanto a sabedoria entrar no teu corao, e o conhecimento ser suave tua alma.

Carlos Henrique / Introduo C++

Tpicos

Introduo Estruturas de Controle Funes Vetores e matrizes Ponteiros e Strings Classes e Abstrao de dados Sobrecarga de Operadores Herana Funes Virtuais e Polimorfismo Entrada/Sada de dados com Streams Manuseamento de Arquivos

Carlos Henrique / Introduo C++

Introduo: Histria

BCPL (1967) - Martin Richards BCPL contribui com a Linguagem B desenvolvida por Ken Thompson, criando as primeiras verses do UNIX no Bell Labs (1970) Evoluo para C em 1972 por Ken Thompson e Dennis Ritchie (linguagem do UNIX) Final dos anos 70, publicao de Kernighan e Ritchie (C clssico)
Carlos Henrique / Introduo C++ 5

Introduo: Histria
C++ desenvolvida no incio dos anos 80 por Bjarne Stroustrup no Bell Laboratories 1983 - Comit X3J11 para produzir uma definio no-ambgua e independente da linguagem de mquina 1989, padro aprovado (ISO e ANSI) Documento em 1990 ANSI/ISO 9899:1990

Carlos Henrique / Introduo C++ 6

Introduo: Histria

Bjarne Stroustrup
Carlos Henrique / Introduo C++ 7

Introduo: Apresentao e Padro


Orientao a objetos Uma das linguagens de desenvolvimento de softwares mais populares O curso utilizar o C++ padronizado nos EUA atravs da American National Standards Intitute (ANSI), e no mundo atravs da International Standards Organization (ISO)

Carlos Henrique / Introduo C++ 8

Introduo: Padro e Biblioteca


Peas chaves: Classes e Funes Vantagens


Organizao Reutilizao de Cdigo-Fonte Velocidade de desenvolvimento (Facilidade) Modelagem para Representao/Apresentao (UML) Tempo de desenvolvimento inicial (Boa Estrutura)

Desvantagens

Carlos Henrique / Introduo C++

Introduo: Orientao Objetos


Esquema de empacotamento que ajuda a criar unidades de software com significados prprios. Linguagens baseadas em substantivos ou coisas (objetos). Exemplos: objetos data, objetos fatura, objetos udio, objeto mamferos.

Carlos Henrique / Introduo C++ 10

Introduo: Dicionrio OO
Abstrao: a especificao de aspectos de determinar coisas interpretveis. Classe: um tipo de abstrao de dados (TAD). As classes podem ser vistas como uma fbrica de objetos idnticos no que diz respeito sua interface e implementao.

Carlos Henrique / Introduo C++ 11

Introduo: Exemplo de Classe


class primeiro { public: void primeiro() { cout << "Ol Mundo!!"; } };
Carlos Henrique / Introduo C++ 12

Introduo: Dicionrio OO

Objeto: pode ser definido como uma unidade de software constitudo de atributos (dados) e de mtodos (cdigos de funes) que atuam sobre os dados, sendo os representantes das classes. Atributos: qualquer propriedade, qualidade ou caracterstica que possa ser atribuda, podendo ser acessado pelo servios. Funes: Blocos de cdigos para especificar comportamentos e/ou aes
Carlos Henrique / Introduo C++ 13

Introduo: Dicionrio OO
Servios: atividade executada para permitir o acesso a alguns recursos, em OO um comportamento especfico que um objeto deve exibir. Encapsulamento: restrio de escopo ou visibilidade dos dados do aplicativo que podero ser acessados pelos servios.

Carlos Henrique / Introduo C++ 14

Introduo: Dicionrio OO
Passagem de mensagem: Possibilita a comunicao entre objetos. Herana: mecanismo para trabalhar com similaridades entre as classes como, por exemplo, mamferos so os homens e o macacos, podendo consider-los como herdeiros dos atributos da classe mamferos.

Carlos Henrique / Introduo C++ 15

Introduo: Dicionrio OO
Superclasse: Classe base para as subclasses (Mamferos). Subclasse: herdeiros das superclasses (Homens e Macacos) Superclasse Abstrata: Finalidade apenas de determinao de uma superclasse, no permitindo o manuseio pelas subclasse.

Carlos Henrique / Introduo C++ 16

Introduo: Dicionrio OO

Associao: Conexo de idias atravs das classes como, por exemplo, diferenas finitas podem resolver problemas de eletromagnetismo. Polimorfismo: Relaciona as diferentes formas de um objeto.
Janela () Janela (1 x 2, 2) Janela(1x2, 2, Azul)

Carlos Henrique / Introduo C++

17

Introduo: Primeiros-Passos
Importante:

Documentar cdigos utilizando comentrios


//<uma linha> /* <vrias linhas> */

cin,cout,

cerr

Carlos Henrique / Introduo C++

18

Introduo: Exemplo Ol Mundo


#include <iostream> using std::cout; using std::cin; class hello { public: void primeiro() { cout << "Ol Mundo!!"; } };

Declarando a classe

Importante: Nunca esquecer o ; ao final de cada classe

int main() Objeto { hello ex; Invocando ex.primeiro(); return 0; }

Mtodo

Carlos Henrique / Introduo C++

19

Introduo: Seqncia de escape


\n - pula linha \t - tabulao horizontal \r - retorno do carro \a - soar alarme \\ - barra invertida \ - aspas

Carlos Henrique / Introduo C++

20

Introduo: Programa Adio


#include <iostream> using std::cout; using std::cin; int main() { int var1, var2, soma; // declarao cout << Entre com o primeiro inteiro\n"; cin >> var1; cout << Entre com o segundo inteiro\n"; cin >> var2; soma = var1+var2; // realizando a soma cout << O Resultado " << soma << endl; return 0; }
Carlos Henrique / Introduo C++ 21

Introduo: Operadores
+ * / % == != > < >= <= Adio Subtrao Multiplicao Diviso Mdulo Igualdade Diferente Maior Menor Maior ou igual Menor ou igual
22

Carlos Henrique / Introduo C++

Introduo: Exemplo Condicional


#include <iostream> using std::cout; using std::cin; int main() { int num1, num2; cout << "Entre com dois valores inteiros que sero comparados!\n"; cin >> num1 >> num2; // ler dois valores inteiros if ( num1 == num2 ) cout << num1 << " igual " << num2 << endl; if ( num1 != num2 ) cout << num1 << " diferente " << num2 << endl; if ( num1 < num2 ) cout << num1 << " menor que " << num2 << endl; if ( num1 > num2 ) cout << num1 << " maior que " << num2 << endl; if ( num1 <= num2 ) cout << num1 << " menor ou igual a " << num2 << endl; if ( num1 >= num2 ) cout << num1 << " maior ou igual a " << num2 << endl; return 0; }

Carlos Henrique / Introduo C++

23

Introduo: UML
UML: Unified Modeling Language, o esquema de representao grfica mais utilizado para modelagem de sistemas orientados a objetos. Vantagem: Flexibilidade Especificaes da OMG para a UML www.omg.org/uml

Carlos Henrique / Introduo C++ 24

Introduo: Exemplo UML


Retngulo
Retngulo (SupDir, InfEsq) : Retngulo Largura(): N Inteiro Altura(): N Inteiro SuperiorEsquerdo(): Ponto InferiorDireito(): Ponto MoverPara(local : Ponto) -Retngulo()

Ponto
Abscissa: N Inteiro Ordenada: N Inteiro

definido por 2

Ponto() : Ponto X(): N Inteiro Y(): N Inteiro -Ponto()

Diagrama da UML para um subsistema geogrfico

Carlos Henrique / Introduo C++

25

Introduo: Resumo
Apresentao do Curso Histria Dicionrio da Orientao a Objetos Primeira Classe Iniciando com a Programao

Carlos Henrique / Introduo C++

26