Você está na página 1de 32

Programao Estruturada e

Orientada a Objetos
Fundamentos Orientao a Objetos
2013

O que veremos hoje?


Introduo aos fundamentos de Orientao a
Objetos

Transparncias baseadas no material do


Prof. Jailton Carlos

Objetivos
Comparao Programao Estrutura e POO
Compreender os conceitos de Programao
Orientada a Objetos (POO);
Entender as vantagens de se utilizar POO;
Entender os conceitos de POO aplicado a uma
linguagem de programao (C# como
exemplo);
Aprender a criar classes e utiliz-las em um
contexto prtico.

Plano de Aula
Comparao Programao Estrutura e POO
Definio de Objetos
Conceito, propriedades

Definio de Classe
Elementos Principais de Programao Orientada a
Objeto
Abstrao, Encapsulamento, Modularidade, Herana,
Polimorfismo

Visibilidade
Classe em C#

Paradigma
Estrutural x Orientao a Objeto

Paradigma
Estrutural x Orientao a Objeto
Consiste no mapeamento do problema no mundo
real a ser resolvido num modelo computacional.
Programao Estrutura
Consiste na criao de um conjunto de procedimentos
(algoritmos) para resolver o problema
Encontrar modos apropriados de armazenar os dados

Programao Orientada a Objetos


Consistem em identificar os objetos e as operaes
relevantes no mundo real
O mapeamento desses em representaes abstratas
no espao de solues

Programao Orientada a Objetos


Paradigma de Programao
Dominante nos dias atuais

Substituiu as tcnicas de programao


procedimental (estruturada)
Fornece um mapeamento direto entre o mundo
real e as unidades de organizao utilizadas no
projeto
Diversas unidades de software, chamadas de
objetos, que interagem entre si
Separa claramente a noo de o que feito de
como feito

Programao Orientada a Objetos


Representao:

Definio de Objetos
Um objeto algo do mundo real :
Concreto ou Abstrato
As percepo dos seres humanos dada atravs dos objetos
Um objeto uma entidade que exibe algum comportamento
bem definido.

Objetos
Caractersticas
Dados representam caractersticas
So chamados atributos
So as variveis do objeto

Comportamento
Operaes definem comportamento
So os mtodos de um objeto
So as funes que so executadas por um objeto

Objetos - Propriedades
Estado
Representado pelos valores dos atributos de um objeto

Comportamento
Definido pelo conjunto de mtodos do objeto
Estado representa o resultado cumulativo de seu
comportamento

Identidade
Um objeto nico, mesmo que o seu estado seja idntico ao de
outro;
Seu valor de referncia

Os valores dos DADOS so modificados a partir das


OPERAES sobre estes dados

Objetos - Propriedades
Estado

Acesa
Apagada

Comportamento
Acender
Apagar

Identidade

Classes
So especificaes para objetos;
Representam um conjunto de objetos que
compartilham
caractersticas
e
comportamentos comuns.
Todo carro tem em comum:
Caracterstica
Cor
Pneu
Direo
Comportamento
Dirigir
Frear

Abstrao
Abstrao uma das formas fundamentais
que ns lidamos com a complexidade.;
Quando queremos diminuir a complexidade
de alguma coisa, ignoramos detalhes sobre as
partes para concentrar a ateno no nvel
mais alto de um problema;
No se analisa o todo, em POO importante
analisar as partes para entender o todo.

Abstrao
Foca a caracterstica essencial de alguns
objetos relativo a perspectiva do visualizador

Encapsulamento
Encapsulamento o processo de esconder todos os detalhes
de um objeto que no contribuem para as suas caractersticas
essenciais;
O encapsulamento o modo de dar ao objeto seu
comportamento caixa-preta, que o segredo da reutilizao
e confiabilidade.
Se o estado de um
objeto foi modificado
sem uma chamada de
mtodo desse objeto,
ento o
encapsulamento foi
quebrado

Encapsulamento e Abstrao
So conceitos complementares
Abstrao foca sobre o comportamento
observvel de um objeto, enquanto
encapsulamento se concentra na execuo
que d origem a esse comportamento

Modularidade
Modularizao o processo de dividir um todo em partes
bem definidas, que podem ser construdas e examinadas
separadamente.
Essas partes se interagem entre si, fazendo com que o sistema
funcione de forma adequada
Particionar um programa em componentes individuais, pode
reduzir a complexidade.

Herana
A abstrao ajuda a diminuir a complexidade.
Encapsulamento ajuda a gerenciar essa complexidade,
ocultando a viso dentro de nossa abstraes.
A modularidade tambm ajuda, dando-nos uma maneira
de agrupar logicamente abstraes relacionadas.
Um conjunto de abstraes, muitas vezes forma uma
hierarquia, e identificando essas hierarquias no nosso
projeto, simplifica grandemente o nossa compreenso do
problema.

Herana
Herana o mecanismo para expressar a
similaridade entre Classes, simplificando a definio
de classes iguais que j foram definidas.
O que um leo, um tigre, um gato, um lobo e um
dlmatas tm em comum?
Como eles so relacionados?

Herana

Polimorfismo
Polimorfimos
Poli -> varias; Morfos -> formas;

Significa que um objeto pode assumir


diferentes formas;
O conceito de polimorfismo est associado a
Herana;
caracterizado como o fato de uma operao
poder ser implementada de diferentes
maneiras pelas classes na hierarquia.

Polimorfismo

Visibilidade
Private
O nvel de acesso se restringe apenas a classe;
No passado por herana;

Public
O nvel de acesso irrestrito;
Por padro, a visibilidade definida para mtodos e atributos em uma classe

Protected
visvel em toda a classe;
passado por herana (mesmo em pacotes diferentes);

Internal
Com este modificador, o acesso limitado apenas ao assembly atual.

Protected Internal
Com este modificador, o acesso limitado ao assembly atual e aos tipos
derivados da classe que contm o modificador.

Classes
Classe Lampada
Atributos
potencia, ligada

mtodos
ligar, desligar,
estaLigada

Classes
Nome da classe

Atributos

mtodos

Classes em C#
Declarao de uma classe em C#
A palavra-chave class utilizada para definir uma
nova classe

A classe Lmpada, por exemplo, representa uma


entidade lmpada
Cada lmpada armazena o seu estado (ligado ou
desligado) e realiza as operaes ligar e desligar

Classes em C#
Declarao de uma classe em C#
public class Lampada

{
private bool ligado;
public void ligar() { ligado= true; }

public void desligar() { ligado=false; }


public bool estaLigada(){return ligado;}
}

Resumo
Objeto
Qualquer entidade que possui caractersticas e
comportamento

Classe
Descreve um tipo de objeto
Define atributos e mtodos

Atributo
Define caractersticas do objeto

Mtodo
Operaes que o objeto pode realizar

Exerccio implemente as classes


abaixo em C#

Exerccios
Imagine uma lmpada que possa ter trs
estados: apagada, acesa e meia-luz. Usando a
classe Lampada, vista nas transparncias,
escreva uma classe em C# para essa nova
lmpada.
Crie uma classe Livro que represente os dados
bsicos de um livro.
Escreva uma classe contenha a data do dia das
mes, ela deve conter dia, ms e ano.

Dvidas