Académique Documents
Professionnel Documents
Culture Documents
Orientada a Objetos
Fundamentos Orientao a Objetos
2013
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
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
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;
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
Classes em C#
Declarao de uma classe em C#
public class Lampada
{
private bool ligado;
public void ligar() { ligado= true; }
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
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