Linguagem de Programação I

Documentos relacionados
Carlos Eduardo Batista. Centro de Informática - UFPB

Linguagem de Programação I

Carlos Eduardo Batista. Centro de Informática - UFPB

1 Introdução e Conceitos básicos

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Java para Desktop. Programação Orientada à Objetos 2 JSE

Laboratório de programação II

Linguagem de Programação I Apresentação da Disciplina

Programação Orientada a Objetos

2. Introdução à Programação e Análise. Orientada a Objetos

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Laboratório de programação II

Introdução ao Java. Prof. Herbert Rausch Fernandes

Classe Abstrata e Interface

Modelo do Mundo Real. Abstração. Interpretação

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Encapsulamento. Alberto Costa Neto DComp - UFS

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

POO29004 Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos

COMPORTAMENTOS - Observações

Carlos Eduardo Batista. Centro de Informática - UFPB

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Herança. BCC702-Programação de Computadores II Emiliana Mara Lopes Simões Universidade Federal de Ouro Preto abril 2010

Introdução à Programação. Encapsulamento e Herança

Polimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

9 Classes Abstractas e Interfaces

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Linguagem de Programação I

UML - Linguagem de Modelagem Unificada

Introdução à Programação. Conceitos Básicos de Orientação a Objetos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Polimorfismo. O que é polimorfismo?

Orientação a Objetos e UML

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

Programação Java (nível intermediário) 4. Polimorfismo


PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo

Programação Orientada a Objetos

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Aula 08 Relacionamento entre Objetos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo.

Linguagem de Programação. Diagrama de classes

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

AULA 11 PROGRAMAÇÃO ORIENTADA A OBJETOS (INTRODUÇÃO) Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Conceitos de Programação Orientada a Objetos

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Conceitos de Orientação a Objetos

Interfaces e Classes Abstratas

POO29004 Programação Orientada a Objetos

Computação II Orientação a Objetos

Composição e Herança. carro meucarro = new carro();

Orientação a Objetos e UML

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Requisitos de sistemas

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Linguagem de Programação C++

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

ACH2002. Orientação a Objetos

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

Programação Orientada a Objeto: Introdução. Professor: Adonai Estrela Medrado Data: 22/07/2008

Sobrecarga, Sobreposição e Polimorfismo

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Linguagem de Programação III

Análise e Projeto Orientados a Objetos

Introdução à Programação Orientada a Objetos II

Universidade Federal de Uberlândia

Introdução à Orientação a Objetos. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Linguagem de Programação IV Introdução

6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Classes e Objetos. Sintaxe de classe em Java

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II)

Programação Orientada a Objeto

2. Introdução à Programação e Análise. Orientada a Objetos. Programação Orientada a Objetos em C O que é a Programação Orientada a Objetos?

Programação Orientada a Objetos

Linguagens de Programação Aula 12

Python Orientação a Objetos. Introdução à Programação SI2

//conteúdo do arquivo ponto2dcirculo.h #ifndef PONTO2DCIRCULO_H #define PONTO2DCIRCULO_H class Ponto2D { public: Ponto2D (float, float); void setx

Transcrição:

Linguagem de Programação I Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB bidu@ci.ufpb.br

C++ e POO Fundamentação de Orientação a Objetos (OO) Sintaxe básica de C++ Modelagem de sistemas orientada a objetos 2

Orientação a Objetos Análise e projeto orientados a objetos = decomposição orientada a objetos de um sistema de somware Coisas/en)dades que compõem o sistema = objetos Objetos são instâncias de classes Análise estruturada = foco nos procedimentos

Orientação a Objetos Análise e projeto orientados a objetos Aspectos dis6ntos de um sistema Modelo lógico: estrutura de classes e objetos Modelo Tsico: módulos e processos Evolução das linguagens Mais mecanismos para criação de abstrações (linguagem da solução) Criação de modelos para resolução do problema Problema -> Abstração -> Modelo solução

Orientação a Objetos Espaço da solução para o espaço do problema Objetos Pequena parte do problema Estado e operações Semelhantes a objetos do mundo real (caracterís6cas e comportamentos...)

Orientação a Objetos O que é um Objeto (em linguagens como C++) É uma variável que Objetos Armazena dados estruturados (como TADs) Possui operações (funções) associadas Atributos Dados Métodos Funções

Orientação a Objetos

Orientação a Objetos Programa escrito em linguagem OO Conjunto de objetos que se comunicam através de mensagens para a resolução do problema abordado (requisitos funcionais) Mensagens Chamadas a funções que pertencem a um objeto específico Classes são os 6pos dos objetos 8

Orientação a Objetos Classes Definem caracterís6cas comuns dos objetos Estados dos objetos Valores dos atributos individuais Cada objeto pertence a uma classe, que define seu comportamento e suas caracterís6cas Conjunto de métodos de um objeto = interface Encapsulamento define a visibilidade 9

Orientação a Objetos UML Ven6lador String modelo; int numserie; int qtdvento; liga(); desliga(); maisvento(); menosvento(); Nome da Classe Atributos Métodos/Interface Ventilador v; v.liga(); 10

Orientação a Objetos Interface versus implementação Encapsulamento Controle de acesso a atributos e métodos Público, privado... Interface = métodos públicos Reuso 11

Encapsulamento Carro private: String modelo; String chassis; Motor m; public: liga(); acelera(int); freia(int); private: liberacombus6vel(int); freioabs(int); 12

Encapsulamento 13

Composição Reuso Carro Motor 1 private: String modelo; String chassis; Motor m; Roda r[4]; Lataria la; 4 Roda Lataria 1 14

Herança Hierarquia de classes Classes mais especializadas herdam das mais genéricas Atributos e métodos são herdados Classe filha é um 6po de Classe Pai 15

Herança 16

Herança Polígono Cor c; desenhar(); apagar(); definircor(cor c); area(); Retângulo desenhar(); apagar(); area(); Círculo desenhar(); apagar(); area(); Triângulo desenhar(); apagar(); area(); 17

Polimorfismo Hierarquia permite tratar objetos por sua classe (6po) base Facilita reuso e acréscimo de novas subclasses (sub6pos) Polimorfismo o que possui várias formas U6lizar o mesmo nome para métodos diferentes Implementados em diferentes níveis de uma hierarquia de classes 18

Polimorfismo Universal Inclusão Poligono p = new Circulo(raio); Paramétrico Função polimórfica (templates) Ad-hoc Sobrecarga adicionar(circulo c) adicionar(triangulo t) htp://www.catonmat.net/blog/cpp-polymorphism/ 19

Orientação a Objetos em C++ struct x class Em C++ uma struct pode conter funções e funcionar como uma classe Visibilidade padrão, porém, é diferente 20

Orientação a Objetos em C++ Instanciando objetos Invocando métodos 21

Orientação a Objetos em C++ class Retangulo { public: int altura, largura; int area() { return altura*largura; } }; main() { Retangulo r; r.altura=5; r.largura=2; cout << r.area(); return 0; } 22

Orientação a Objetos em C++ class Retangulo { public: int altura, largura; int area(); }; int Retangulo::area() { return altura*largura; } main() { Retangulo r; r.altura=5; r.largura=2; cout << r.area(); return 0; } 23

Orientação a Objetos em C++ class Retangulo { private: int altura, largura; public: Retangulo(int a, int l) { altura=a; largura=l; } int area() { return altura*largura; } }; main() { Retangulo r(5, 2); cout << r.area(); return 0; } 24

Orientação a Objetos em C++ Retangulo.h #ifndef RETANGULO_H #define RETANGULO_H class Retangulo { private: int altura, largura; public: int area(); }; #endif //RETANGULO_H 25

Orientação a Objetos em C++ Retangulo.cpp #include Retangulo.h int Retangulo::area() { return altura*largura; } 26

Orientação a Objetos em C++ Encapsulamento Classe C++ Atributos e métodos são privados (private) por padrão Struct C++ Atributos e métodos são públicos (public) por padrão Friend Quebra o encapsulamento Classe ou função que acessa membros privados de uma outra classe Evitar uso demasiado 27

Orientação a Objetos em C++ 28

Orientação a Objetos em C++ class X; // Declaração da classe X class Y { public: void f(x*); // declaração de X... }; class X { // Definição de X private: int i; public: void initialize(); friend void Y::f(X*); // friend pertencente à Y friend class Z; // A classe Z é friend }; void Y::f(X* x) { x->i = 47; } 29

Próxima aula Fundamentação de Orientação a Objetos (OO). Modelagem de sistemas orientada a objetos usando C++ Modelagem de sistemas orientada a objetos. Conceitos básicos de Análise e Projeto Orientado a Objetos u6lizando a UML (Unified Modeling Language). 30

Referências htp://www.cplusplus.com/doc/tutorial/ htp://gillius.org/ooptut/ htp://people.cs.aau.dk/~normark/ap/basicfacili6es.html htp://linuxgazete.net/issue55/williams.html 31

Linguagem de Programação I Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB bidu@ci.ufpb.br