Orientação a
Objetos
PROFESSOR: EDUARDO HABIB
HABIB@DIV.CEFETMG.BR
Conceitos
Definição: o termo orientação a objetos significa
organizar o mundo real como uma coleção de
objetos que incorpo...
Conceitos
 Projeto OO é ó método que produz arquiteturas de
software baseadas nos objetos que o sistema
manipula;
 A pro...
Conceitos
O comportamento dos objetos é definido pelo seu
Tipo Abstrato de Dados (TAD);
A descrição de um TAD deve compree...
Conceitos
A representação das estruturas de dados do TAD
fica completamente encapsulada;
A representação das estruturas de...
Classes
 Classe é um conceito de software que descreve a
implementação de um TAD;
 Uma classe define:
◦ A estrutura de d...
Classes
 Exemplo de classe em C++
#include<iostream> //biblioteca
using namespace std;
class Pessoa {
private:
float peso...
Classes
Classes suportam os conceitos de:
◦ Encapsulamento
◦ Herança
◦ Abstração
◦ Proteção de dados;
◦ Polimorfismo;
◦ Hi...
Abstração
 Focalizar o essencial, ignorar propriedades acidentais
 A abstração deve ser sempre feita com algum objetivo,...
Abstração
Técnica para lidar com a complexidade de um problema.
Destaca os aspectos importantes do objeto real abstraído,
...
Abstração - Exemplos
Dirigir um carro.
Usar um tocador de DVD ou outro dispositivo eletrônico.
Tomar um vôo num aeroporto....
Abstração (Exemplo)
Quem usa as funções sqrt, pow, etc, da classe Math, interessa-se
por:
◦ Saber quantos são os parâmetro...
Conceitos OO
Classes
 Abstração é correlacionada aos objetivos de quem se
abstrai;
 A abstração do TAD Pessoa depende de...
Conceitos OO
Classes
 Encapsular consiste em incluir, proteger em uma
cápsula, classe;
 Encapsular é ocultar do usuário ...
Encapsulamento
Capacidade de esconder aspectos internos do projeto.
Quem utilizará o método não precisa saber como ele fun...
Encapsulamento
Encapsular é ocultar do usuário o funcionamento interno de
uma classe.
O acesso aos serviços oferecidos é f...
Encapsulamento
Não podemos acessar os dados de um objeto diretamente.
(Fenômeno da caixa preta)
Para acessar suas variávei...
Encapsulamento versus
abstração
A abstração representa um conceito
O encapsulamento impede os clientes de verem como este
...
Proteção de dados
Proteção de dados visa garantir o acesso apenas sobre operações e atributos
disponibilizados pela interf...
Proteção de dados
Todos os atributos e operações de uma classe podem ser acessados
pelas operações da mesma classe;
O aces...
Herança
Capacidade de compartilhar estruturas comuns entre diversas classes
derivadas
Reaproveitamento de código da classe...
Atributo
Um atributo é uma propriedade de uma classe que descreve um
conjunto de valores que as instâncias da classe, obje...
Objetos
Objetos são conceitos de software que modelam entidades
da aplicação;
Objetos são abstrações de dados;
Objetos tem...
Construtor
Construtor é um método chamado assim que uma
nova instância do objeto for criada.
 Existem, em geral, para as...
Destrutor
Destrutores são métodos invocados quando um objeto está para
``morrer''.
 Liberação de recursos
 Evita o vaza...
Exercício
Implemente a classe pessoa
A classe pessoa possui:
◦ 1 atributo chamado nome, , do tipo String
◦ 1 método que at...
Herança
É o processo em que um
objeto pode adquirir as
características de outro
objeto.
Herança Simples: um
objeto herda a...
Herança
Relacionamento entre classes onde uma classe
compartilha a estrutura e o comportamento de
uma ou mais classes;
Def...
Herança
A subclasse herda os atributos, operações e relacionamentos da
superclasse;
Cada subclasse pode definir novos atri...
Herança
Como identificar necessidade de heranças?
◦ Procure por similaridades entre as classes;
◦ Siga a regra: a subclass...
Exercício
Implemente em c++ as classes que representam a seguinte relação de
herança:
Próximos SlideShares
Carregando em…5
×

03 poo

244 visualizações

Publicada em

Orientação a Objetos - parte 1

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
244
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

03 poo

  1. 1. Orientação a Objetos PROFESSOR: EDUARDO HABIB HABIB@DIV.CEFETMG.BR
  2. 2. Conceitos Definição: o termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam estes dados.
  3. 3. Conceitos  Projeto OO é ó método que produz arquiteturas de software baseadas nos objetos que o sistema manipula;  A propriedade básica do método: ◦ Evite perguntar: O que o sistema faz? ◦ Melhor perguntar: Sobre o que o sistema faz o que?  Olhar primeiro para o dado é a regra que favorece a reusabilidade;  Descrição de objetos deve ser: completa, precisa, não ambígüa e independente de representação física.
  4. 4. Conceitos O comportamento dos objetos é definido pelo seu Tipo Abstrato de Dados (TAD); A descrição de um TAD deve compreender: ◦ Interface do TAD; ◦ Comportamento do TAD; Um tipo abstrato de dados é uma classe de estrutura de dados descrita por uma interface externa: ◦ Lista de serviços disponíveis; ◦ Propriedades destes serviços.
  5. 5. Conceitos A representação das estruturas de dados do TAD fica completamente encapsulada; A representação das estruturas de dados do TAD não faz parte de sua definição; O adjetivo abstrato de um tipo abstrato de dados enfatiza o fato de as estruturas de dados que representam o tipo não fazerem parte da definição, isto é, da interface do tipo.
  6. 6. Classes  Classe é um conceito de software que descreve a implementação de um TAD;  Uma classe define: ◦ A estrutura de dados que representa o TAD; ◦ A implementação das operações, métodos, sobre esta estrutura; ◦ Uma interface explícita;  Classe é apenas um molde para criação de TAD;  Uma classe é a representação de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica.
  7. 7. Classes  Exemplo de classe em C++ #include<iostream> //biblioteca using namespace std; class Pessoa { private: float peso,altura; //variável char sexo; string nome; public: Pessoa(){ //cria o construtor objeto } void setNome(string n,float p,float a,char s) { //recebe o valor do int main nome = n; peso = p; altura = a; sexo = s; } string getNome(){ return nome; } void print(){ //mostra o valor na tela cout << "-------------n"; cout << "Nome: " << nome << endl; cout << "sexo: " << sexo << endl; cout << "Peso: " << peso << endl; cout << "Altura: " << altura << endl; } };
  8. 8. Classes Classes suportam os conceitos de: ◦ Encapsulamento ◦ Herança ◦ Abstração ◦ Proteção de dados; ◦ Polimorfismo; ◦ Hierarquia.
  9. 9. Abstração  Focalizar o essencial, ignorar propriedades acidentais  A abstração deve ser sempre feita com algum objetivo, porque este determina o que é e o que não é importante.
  10. 10. Abstração Técnica para lidar com a complexidade de um problema. Destaca os aspectos importantes do objeto real abstraído, segundo perspectiva do observador. Ignora os detalhes não relevantes para o observador. Exemplos de uso da abstração no dia a dia:
  11. 11. Abstração - Exemplos Dirigir um carro. Usar um tocador de DVD ou outro dispositivo eletrônico. Tomar um vôo num aeroporto. Retirar dinheiro num caixa eletrônico.
  12. 12. Abstração (Exemplo) Quem usa as funções sqrt, pow, etc, da classe Math, interessa-se por: ◦ Saber quantos são os parâmetros para as funções chamadas e em que ordem são passados ◦ Saber quais os tipos dos parâmetros ◦ Saber os tipos dos dados que as funções retornam ◦ Saber o significado desse dado retornado
  13. 13. Conceitos OO Classes  Abstração é correlacionada aos objetivos de quem se abstrai;  A abstração do TAD Pessoa depende de seu uso no sistema; ◦ Pessoa sob a perspectiva de um médico:  Pessoa sob a perspectiva de cadastro de dados:
  14. 14. Conceitos OO Classes  Encapsular consiste em incluir, proteger em uma cápsula, classe;  Encapsular é ocultar do usuário o funcionamento interno de uma classe.
  15. 15. Encapsulamento Capacidade de esconder aspectos internos do projeto. Quem utilizará o método não precisa saber como ele funciona e sim apenas os seus atributos.
  16. 16. Encapsulamento Encapsular é ocultar do usuário o funcionamento interno de uma classe. O acesso aos serviços oferecidos é feito via interface, independentemente do funcionamento interno de uma classe;
  17. 17. Encapsulamento Não podemos acessar os dados de um objeto diretamente. (Fenômeno da caixa preta) Para acessar suas variáveis de instância, devemos fazer através de métodos. Não precisamos saber como as variáveis de instância são armazenadas para poder utilizá-las. Considere o seguinte trecho de código: double d = 0; d += 2.5;
  18. 18. Encapsulamento versus abstração A abstração representa um conceito O encapsulamento impede os clientes de verem como este conceito foi implementado
  19. 19. Proteção de dados Proteção de dados visa garantir o acesso apenas sobre operações e atributos disponibilizados pela interface da classe; Modificadores de acesso: ◦ Acesso público; ◦ Public: Uma classe declarada como pública dá as outras classes, de todos os pacotes, acesso aos seus membros que forem públicos também ◦ Acesso protegido; ◦ Protected: Quando um membro da classe é declarado assim, ele se torna acessível por classes através de herança. ◦ Acesso privado: ◦ Private: O membro da classe não pode ser acessado por nenhuma outra classe;
  20. 20. Proteção de dados Todos os atributos e operações de uma classe podem ser acessados pelas operações da mesma classe; O acesso aos atributos é, em geral, privado ou protegido; O acesso às operações que fazem parte da interface da classe é público.
  21. 21. Herança Capacidade de compartilhar estruturas comuns entre diversas classes derivadas Reaproveitamento de código da classe pai
  22. 22. Atributo Um atributo é uma propriedade de uma classe que descreve um conjunto de valores que as instâncias da classe, objetos, podem atribuir a essa propriedade; Representa uma propriedade persistida, em geral; Uma classe pode ter um número qualquer de atributos, inclusive zero.
  23. 23. Objetos Objetos são conceitos de software que modelam entidades da aplicação; Objetos são abstrações de dados; Objetos tem estado (estrutura interna); Objetos são manipulados só pelas operações; Objetos são instâncias de classes; Recordando: ◦ Uma classe é a representação de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica.
  24. 24. Construtor Construtor é um método chamado assim que uma nova instância do objeto for criada.  Existem, em geral, para assegurar que um objeto seja inicializado de forma correta. Exemplo: Data
  25. 25. Destrutor Destrutores são métodos invocados quando um objeto está para ``morrer''.  Liberação de recursos  Evita o vazamento de memória.
  26. 26. Exercício Implemente a classe pessoa A classe pessoa possui: ◦ 1 atributo chamado nome, , do tipo String ◦ 1 método que atribui valor ao nome ◦ 1 método que lê o valor armazenado em nome Seu programa deve ser capaz de: ◦ Ler do teclado o nome da pessoa. ◦ Armazenar o nome da pessoa no atributo nome ◦ Imprimir o nome da pessoa. Seu programa deve possuir um construtor que inicializa os atributos da classe pessoa toda vez que ela é instanciada.
  27. 27. Herança É o processo em que um objeto pode adquirir as características de outro objeto. Herança Simples: um objeto herda as características de uma única classe. Herança Múltipla: uma objeto herda características de mais de uma classe. ◦ Algumas linguagens não permitem CLASSE BASE CLASSES DERIVADAS A B AB C D Características Herdadas AB E F
  28. 28. Herança Relacionamento entre classes onde uma classe compartilha a estrutura e o comportamento de uma ou mais classes; Define uma hierarquia de abstrações na qual a subclasse herda de uma ou mais superclasses: ◦ Herança simples; ◦ Herança múltipla; Uma herança é um relacionamento do tipo “é um tipo de”.
  29. 29. Herança A subclasse herda os atributos, operações e relacionamentos da superclasse; Cada subclasse pode definir novos atributos e/ou operações.; Cada subclasse pode redefinir operações da superclasse; Cada subclasse pode participar de relacionamentos específicos.
  30. 30. Herança Como identificar necessidade de heranças? ◦ Procure por similaridades entre as classes; ◦ Siga a regra: a subclasse é um tipo da superclasse; ◦ Evite herança de implementação, siga a regra; ◦ A herança deve ser total, pela subclasses; Caso a regra não seja satisfeita, utilize composição.
  31. 31. Exercício Implemente em c++ as classes que representam a seguinte relação de herança:

×