Centro Integrado de Tecnologia da Informação

Slides:



Advertisements
Apresentações semelhantes
Centro Integrado de Tecnologia da Informação
Advertisements

PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
INF Computação Gráfica
Linguagem de Programação II
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Centro Integrado de Tecnologia da Informação
Curso de C/C++ Avançado
Curso de C/C++ Avançado
Centro Integrado de Tecnologia da Informação
Curso de C/C++ Avançado
Curso de C/C++ Avançado
Herança e Polimorfismo
Classes e objetos P. O. O. Prof. Grace.
Curso de extensão em Desenvolvimento Web
Introdução a programação (if669cc)
Programação Orientada a Objetos com Java
Aula prática 13 Orientação a Objetos – C++ Parte 1
+ Java Web XIV Jornada de Cursos. Você pode: copiar, distribuir, exibir e executar a obra criar obras derivadas fazer uso comercial da obra Sob as seguintes.
Linguagens de Programação
Sobrecarga e Encapsulamento
Tópicos avançados em internet A
Linguagem de Programação II
Atributos, Encapsulamento e Interface em Java
Aula 3 CoL, atividade Polimorfismo (late binding) Modificador final Modificador abstract Interfaces Herança múltipla Atribuição, Construtores, Destrutores,
Programação I Aula 2 (Métodos)
+ Curso de C/C++ Aula 6 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
+ Curso de C/C++ Aula 7 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
+ Curso de C/C++ Aula 8 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
Classes, Objetos, Atributos e Métodos JAVA
Curso de C/C++ Aula 9 Instrutor: Luiz Felipe Sotero
Curso de C/C++ Aula 2 Instrutor: Luiz Felipe Sotero
+ Curso de C/C++ Aula 10 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Laboratório I Mateus Raeder. Mateus Raeder – fevereiro de 2009 Associação entre classes  Um objeto é a representação de uma entidade do mundo real 
2002/2003 Programação Orientada para Objectos 1 Aula 6 Classes que reservam recursos externos Problemas comuns Construtores e destrutores Construção por.
Orientação a Objetos Parte II
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação I Aula 6 (Herança, Polimorfismo e Encapsulamento)
Programação Orientada à Objetos
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Orientação a Objetos usando Java
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Classes Abstratas e Interface
Herança e Polimorfismos
Programação I Aula 1 Prof. Gilberto Irajá Müller Última atualização 2/3/2009.
Herança Modelagem e Programação Orientada a Objetos
Construtores e Destrutores
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Conteúdos Programáticos Criação de classes em VB Criar Criar Manipular Manipular Tipos de acesso Tipos de acesso Constructores Constructores.
Introdução a Orientação a Objetos
Herança.
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
Módulo II Capítulo 1: Orientação a Objetos
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Prof.: Bruno Rafael de Oliveira Rodrigues. Herança Possibilita a uma classe usar campos ou métodos definidos em outra classe. Assim a classe pai possui.
Linguagem de Programação
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Felipe Nunes Flores – Programa de Educação Tutorial.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Centro Integrado de Tecnologia da Informação Curso de C/C++ Aula 7 Allan Lima http://allanlima.wordpress.com/

Sob as seguintes condições: Você pode: copiar, distribuir, exibir e executar a obra criar obras derivadas fazer uso comercial da obra Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra. Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor. Veja aqui a licença completa

Roteiro O ponteiro this Membros estáticos Overload de operadores Friends Herança

O ponteiro this É um atributo que método possui Ele é um ponteiro para o objeto no qual um membro esta sendo executado. No código escrevemos: void Ponto::setX(float newX) { this->x = newX; }

O ponteiro this Mas assinatura real é: E quando chamamos o método: void setX(Ponto *this, float newX) { this->x = newX; } E quando chamamos o método: p.setX(10); Na verdade estamos fazendo: setX(&p, 10); Isso significa que todo método é um função

Membros Estáticos São membros que possuem apenas uma cópia compartilhada por todos os objetos de um tipo Podem ser métodos ou atributos: Atributos estáticos devem ser definidos dentro da própria classe e inicializados fora dela Métodos estáticos só podem fazer referência a atributos estáticos.

Exemplo exemploStatic.cpp

Overload de Operadores C++ permite a aplicação de alguns operadores aos tipos que nós criamos Alguns operadores como o “=” são criados automaticamente Porém outros devem ser implementados pelo programador Sintaxe: tipo operator símbolo(parâmetros);

Exemplo exemploOperador.cpp

Overload de Operadores C++ permite a sobrecarga dos seguintes operadores: Unários: + - * ! ~ & ++ -- () -> ->* new delete Binários: / % | ^ << >> = += -= /= %= &= |= ^= <<= >>= = = != < > <= >= && || [] ,

Exercícios Crie uma classe Ponto similar a da aula anterior e implemente os seguintes operadores: == != + -

Friends Permitem a quebra dos níveis de acesso pelas palavras reservadas private e protected Podemos ter funções, métodos ou classes friends As declarações são feitas através da palavra reservada friend Toda classe é friend dela mesma Exemplo: exemploFriend.cpp

E os métodos também precisamos repetir? Herança class Empregado { string nome; float salario; int numDepartamento; int ramal; //... }; class Gerente { string nome; float salario; int numDepartamento; int ramal; Empregado *grupo; //... }; Precisamos mesmo repetir todos os atributos da classe Empregado na classe Gerente? E os métodos também precisamos repetir?

Herança É um mecanismo utilizado para permitir o reuso de código Quando uma classe B herda de uma outra classe A dizemos que B é uma sub-classe de A Em C++ todos os membros public e protected da classe base são herdados Construtores, Destrutores, o operador = e os friends não são herdados

Herança Sintaxe class nomeDaClasse : tipoDaHeranca classeBase public – Os membros public e protected da classe base são por default public e protected respectivamente private – Os membros public e protected da classe base são por default private protected – Os membros public e protected da classe por default são protected Se tipoDaHeranca não for especificado, private é assumido para as classes e public para as estruturas

Herança Apesar dos construtores e destrutores não serem herdados, quando criamos um objeto ele chama o construtor padrão de sua classe base e também o destrutor padrão quando ele está prestes a ser desalocado da memória Também podemos re-utilizar o código do construtor da classe base: construtorClasse(parametros) : construtorDaSuperClasse(parametros) { ... }

Dizemos que Gerente herda de Empregado Herança A solução: class Empregado { string nome; float salario; int numDepartamento; int ramal; // ... }; class Gerente : public Empregado { Empregado *grupo; //.. Dizemos que Gerente herda de Empregado

Ponteiros e Herança Podemos criar ponteiros para classes A inicialização é feita através do operador new ou do & Quando usarmos o new também temos que usar o delete para liberar memória Restrições: Um ponteiro para uma classe base só pode chamar métodos desta Mas podemos usar casts para ter acesso aos demais métodos

Exemplo exemploHeranca.cpp

Herança Múltipla C++ permite que uma classe herde de várias outras Sintaxe: class nomeDaClasse : tipoHeranca classeBase1, // ... tipoHeranca classeBaseN Mas isso traz problemas: A e B possuem o método m C herda de A e de B O que acontece quando chamamos m de C?

Exemplo exemploHerancaMultipla.cpp

Exercícios 2)Implemente a seguinte hierarquia de classes: Temporario Empregado Secretaria SecretariaTemp Gerente Consultor

Classe Empregado Atributos: Métodos Nome E-mail Celular Salário Departamento Métodos gets e sets Construtor com os seu atributos

Classe Gerente Atributos Métodos Os empregados que gerencia O número empregados que gerencia Métodos Gets e sets Construtor com os seus atributos

Classe Secretaria Atributos Métodos O empregado do qual é secretaria Gets e sets Construtor com os seus atributos

Classe Temporario Atributos Métodos A data de início do contrato O número de meses do contrato Métodos Gets e Sets Construtor com os seus atributos

SecretariaTemporaria Métodos: Construtor com os seu atributos

Consultor Atributos: Métodos Área de consultoria Get e sets Construtor com os seus atributos

Referências Stroustrup, Bjarne. The C++ Programming Language, Special Edition. Eckel, Bruce. Thinking in C++, 2nd ed. Volume 1. Slides de Gustavo (ghpc@cin.ufpe.br)do curso de C/C++

Agradecimentos Gustavo Henrique Porto Pelo material cedido para montagem da aula