PROGRAMAÇÃOPROGRAMAÇÃO
ORIENTADA ÀORIENTADA À
OBJETOSOBJETOS
Professor Bruno Augusto Soncino
Definição
 A orientação a objetos, também conhecida
como Programação Orientada a Objetos
(POO) é um paradigma de análise, projeto e
programação de sistemas de software
baseado na composição e interação entre
diversas unidades de software chamadas de
objetos.
Componentes Básicos da
Orientação a Objetos
 Classe → São moldes através dos quais criamos objetos
 Objeto → Abstração que agrupa características e comportamentos.
 Instância → É o objeto propriamente dito. Possui características próprias.
 Propriedade → Define as características dos objetos de uma classe.
 Método → Define o comportamento dos objetos de uma classe.
 Mensagem → Representa uma ação do objeto ou uma mudança de estado.
Define a comunicação entre objetos.
 Interface → Conjunto de mensagens que define o comportamento de um
objeto (Protocolo).
Objetos
 Um objeto representa uma entidade, seja ela de
natureza física, conceitual ou software.
 Entidade Física: Carro, Pessoa.
 Entidade Conceitual: Departamento.
 Entidade Software: um botão em uma GUI.
Mário
Características
(estado)
Comportamento
Identidade
Classe
 Uma classe serve de modelo para vários
objetos semelhantes que possuem os mesmos
tipos de informação em seu estado e tem os
mesmos comportamentos;
 Exemplo: Planta de uma casa, Carro, Pessoa.
Atributos
 Representam um conjunto de informações, ou
seja, elementos de dados que caracterizam
um objeto.
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário_Helena
Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade
Funcionário_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
Funcionário_Mário
Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000
InformarSalário
CalcularIdade
Método
 Quando um objeto é mapeado dentro do domínio do software,
os processos que podem mudar a sua estrutura de dados são
denominados Operações ou Métodos.
 Métodos são invocados por Mensagens.
 Cada objeto possui seu próprio conjunto de métodos.
 Definições:
 São procedimentos definidos e declarados que atuam sobre
um objeto ou sobre uma classe de objetos.
 Descrição de uma sequência de ações a serem executadas
por um objeto.
 Através dos métodos que especifica-se a um objeto COMO
FAZER alguma coisa.
 São intrínsecos aos objetos e não podem ser separados.
Herança
 Mecanismo que permite definir uma nova
classe (subclasse) a partir de uma classe já
existente (super-classe).
Encapsulamento
 Objetos encapsulam suas estruturas de dados (atributos).
 Os atributos de um objeto só podem ser manipulados pelos
próprios métodos do objeto
 Restringe a visibilidade do objeto mas facilita o reuso.
 Os DADOS e os MÉTODOS são empacotados sob um nome e
podem ser reusados como uma especificação ou componente de
programa.
Abstração
 Uma abstração é qualquer modelo que inclui os
aspectos relevantes de alguma coisa, ao
mesmo tempo em que ignora os menos
importantes.
Polimorfismo
 Conceito Chave
Objetos das subclasses podem ser tratados como objetos da
superclasse
::Project2
A
m1(...)
m2(...)
B
m1(...)
m3(...)
Interface
 Objetos se comunicam através de Mensagens, que
invocam os Métodos desejados.
 Parte Privada do Objeto (Visão Interna)
 Métodos
 Atributos
 Parte Compartilhada do Objeto ou Interface
corresponde à parte externa do objeto, isto é, àquela
que é vista por outros objetos com a finalidade de
invocar os métodos que o objeto realiza agrupa um
conjunto de mensagens que o objeto pode
 Responder as mensagens especificam quais
operações sobre o objeto podem ser realizadas, mas
não como a operação será executada.
Conclusão
 Concluímos que a transposição dos objetos do mundo
real para um software se tornam muito mais simples e
fácil quando usamos da orientação à objetos porque as
abstrações são expressas com uma maior qualidade ao
mundo computacional, fazendo com que a complexidade
do desenvolvimento e manutenção em linguagens de
alto nível (como Java ou .NET, por exemplo) sejam mais
rápidas e eficientes.

Apresentação programação orientada à objetos

  • 1.
  • 2.
    Definição  A orientação aobjetos, também conhecida como Programação Orientada a Objetos (POO) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos.
  • 3.
    Componentes Básicos da Orientaçãoa Objetos  Classe → São moldes através dos quais criamos objetos  Objeto → Abstração que agrupa características e comportamentos.  Instância → É o objeto propriamente dito. Possui características próprias.  Propriedade → Define as características dos objetos de uma classe.  Método → Define o comportamento dos objetos de uma classe.  Mensagem → Representa uma ação do objeto ou uma mudança de estado. Define a comunicação entre objetos.  Interface → Conjunto de mensagens que define o comportamento de um objeto (Protocolo).
  • 4.
    Objetos  Um objetorepresenta uma entidade, seja ela de natureza física, conceitual ou software.  Entidade Física: Carro, Pessoa.  Entidade Conceitual: Departamento.  Entidade Software: um botão em uma GUI. Mário Características (estado) Comportamento Identidade
  • 5.
    Classe  Uma classeserve de modelo para vários objetos semelhantes que possuem os mesmos tipos de informação em seu estado e tem os mesmos comportamentos;  Exemplo: Planta de uma casa, Carro, Pessoa.
  • 6.
    Atributos  Representam umconjunto de informações, ou seja, elementos de dados que caracterizam um objeto. Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000 InformarSalário CalcularIdade Funcionário_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000 InformarSalário CalcularIdade Funcionário_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000 InformarSalário CalcularIdade
  • 7.
    Método  Quando umobjeto é mapeado dentro do domínio do software, os processos que podem mudar a sua estrutura de dados são denominados Operações ou Métodos.  Métodos são invocados por Mensagens.  Cada objeto possui seu próprio conjunto de métodos.  Definições:  São procedimentos definidos e declarados que atuam sobre um objeto ou sobre uma classe de objetos.  Descrição de uma sequência de ações a serem executadas por um objeto.  Através dos métodos que especifica-se a um objeto COMO FAZER alguma coisa.  São intrínsecos aos objetos e não podem ser separados.
  • 8.
    Herança  Mecanismo quepermite definir uma nova classe (subclasse) a partir de uma classe já existente (super-classe).
  • 9.
    Encapsulamento  Objetos encapsulamsuas estruturas de dados (atributos).  Os atributos de um objeto só podem ser manipulados pelos próprios métodos do objeto  Restringe a visibilidade do objeto mas facilita o reuso.  Os DADOS e os MÉTODOS são empacotados sob um nome e podem ser reusados como uma especificação ou componente de programa.
  • 10.
    Abstração  Uma abstraçãoé qualquer modelo que inclui os aspectos relevantes de alguma coisa, ao mesmo tempo em que ignora os menos importantes.
  • 11.
    Polimorfismo  Conceito Chave Objetosdas subclasses podem ser tratados como objetos da superclasse ::Project2 A m1(...) m2(...) B m1(...) m3(...)
  • 12.
    Interface  Objetos secomunicam através de Mensagens, que invocam os Métodos desejados.  Parte Privada do Objeto (Visão Interna)  Métodos  Atributos  Parte Compartilhada do Objeto ou Interface corresponde à parte externa do objeto, isto é, àquela que é vista por outros objetos com a finalidade de invocar os métodos que o objeto realiza agrupa um conjunto de mensagens que o objeto pode  Responder as mensagens especificam quais operações sobre o objeto podem ser realizadas, mas não como a operação será executada.
  • 13.
    Conclusão  Concluímos quea transposição dos objetos do mundo real para um software se tornam muito mais simples e fácil quando usamos da orientação à objetos porque as abstrações são expressas com uma maior qualidade ao mundo computacional, fazendo com que a complexidade do desenvolvimento e manutenção em linguagens de alto nível (como Java ou .NET, por exemplo) sejam mais rápidas e eficientes.