SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Programação Estruturada e
Orientada a Objetos
Fundamentos Orientação a Objetos
2013
O que veremos hoje?
• Introdução aos fundamentos de Orientação a
Objetos
Transparências baseadas no material do
Prof. Jailton Carlos
Objetivos
• Comparação Programação Estrutura e POO
• Compreender os conceitos de Programação
Orientada a Objetos (POO);
• Entender as vantagens de se utilizar POO;
• Entender os conceitos de POO aplicado a uma
linguagem de programação (C# como
exemplo);
• Aprender a criar classes e utilizá-las em um
contexto prático.
Plano de Aula
• Comparação Programação Estrutura e POO
• Definição de Objetos
– Conceito, propriedades
• Definição de Classe
• Elementos Principais de Programação Orientada a
Objeto
– Abstração, Encapsulamento, Modularidade, Herança,
Polimorfismo
• Visibilidade
• Classe em C#
Paradigma
Estrutural x Orientação a Objeto
Paradigma
Estrutural x Orientação a Objeto
• Consiste no mapeamento do problema no mundo
real a ser resolvido num modelo computacional.
• Programação Estrutura
– Consiste na criação de um conjunto de procedimentos
(algoritmos) para resolver o problema
– Encontrar modos apropriados de armazenar os dados
• Programação Orientada a Objetos
– Consistem em identificar os objetos e as operações
relevantes no mundo real
– O mapeamento desses em representações abstratas
no espaço de soluções
Programação Orientada a Objetos
• Paradigma de Programação
– Dominante nos dias atuais
• Substituiu as técnicas de programação
procedimental (estruturada)
• “Fornece um mapeamento direto entre o mundo
real e as unidades de organização utilizadas no
projeto”
• Diversas unidades de software, chamadas de
objetos, que interagem entre si
• Separa claramente a noção de o que é feito de
como é feito
Programação Orientada a Objetos
• Representação:
Definição de Objetos
• Um objeto é algo do mundo real :
– Concreto ou Abstrato
• As percepção dos seres humanos é dada através dos objetos
• Um objeto é uma entidade que exibe algum comportamento
bem definido.
Objetos
• Características
– Dados representam características
• São chamados atributos
• São as variáveis do objeto
• Comportamento
– Operações definem comportamento
• São os métodos de um objeto
• São as funções que são executadas por um objeto
Objetos - Propriedades
• Estado
– Representado pelos valores dos atributos de um objeto
• Comportamento
– Definido pelo conjunto de métodos do objeto
– Estado representa o resultado cumulativo de seu
comportamento
• Identidade
– Um objeto é único, mesmo que o seu estado seja idêntico ao de
outro;
– Seu valor de referência
• Os valores dos DADOS são modificados a partir das
OPERAÇÕES sobre estes dados
Objetos - Propriedades
• Estado
• Comportamento
• Identidade
Acesa
Apagada
Acender
Apagar
Classes
• São especificações para objetos;
• Representam um conjunto de objetos que
compartilham características e
comportamentos comuns.
Todo carro tem em comum:
Característica
Cor
Pneu
Direção
Comportamento
Dirigir
Frear
Abstração
• Abstração é uma das formas fundamentais
que nós lidamos com a complexidade.;
• Quando queremos diminuir a complexidade
de alguma coisa, ignoramos detalhes sobre as
partes para concentrar a atenção no nível
mais alto de um problema;
• Não se analisa o “todo”, em POO é importante
analisar as partes para entender o todo.
Abstração
• Foca a característica essencial de alguns
objetos relativo a perspectiva do visualizador
Encapsulamento
• Encapsulamento é o processo de esconder todos os detalhes
de um objeto que não contribuem para as suas características
essenciais;
• O encapsulamento é o modo de dar ao objeto seu
comportamento “caixa-preta”, que é o segredo da reutilização
e confiabilidade.
Se o estado de um
objeto foi modificado
sem uma chamada de
método desse objeto,
então o
encapsulamento foi
quebrado
Encapsulamento e Abstração
• São conceitos complementares
• Abstração foca sobre o comportamento
observável de um objeto, enquanto
encapsulamento se concentra na execução
que dá origem a esse comportamento
Modularidade
• Modularização é o processo de dividir um todo em partes
bem definidas, que podem ser construídas 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.
Herança
• A abstração ajuda a diminuir a complexidade.
• Encapsulamento ajuda a gerenciar essa complexidade,
ocultando a visão dentro de nossa abstrações.
• A modularidade também ajuda, dando-nos uma maneira
de agrupar logicamente abstrações relacionadas.
• Um conjunto de abstrações, muitas vezes forma uma
hierarquia, e identificando essas hierarquias no nosso
projeto, simplifica grandemente o nossa compreensão do
problema.
Herança
• Herança é o mecanismo para expressar a
similaridade entre Classes, simplificando a definição
de classes iguais que já foram definidas.
• O que um leão, um tigre, um gato, um lobo e um
dálmatas têm em comum?
• Como eles são relacionados?
Herança
Polimorfismo
• Polimorfimos
– Poli -> varias; Morfos -> formas;
• Significa que um objeto pode assumir
diferentes formas;
• O conceito de polimorfismo está associado a
Herança;
• É caracterizado como o fato de uma operação
poder ser implementada de diferentes
maneiras pelas classes na hierarquia.
Polimorfismo
Visibilidade
• Private
– O nível de acesso se restringe apenas a classe;
– Não é passado por herança;
• Public
– O nível de acesso é irrestrito;
– Por padrão, é a visibilidade definida para métodos e atributos em uma classe
• Protected
– É visível em toda a classe;
– É passado por herança (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 contém o modificador.
Classes
• Classe Lampada
– Atributos
• potencia, ligada
– métodos
• ligar, desligar,
estaLigada
Classes
Nome da classe
Atributos
métodos
Classes em C#
• Declaração de uma classe em C#
– A palavra-chave class é utilizada para definir uma
nova classe
– A classe Lâmpada, por exemplo, representa uma
entidade lâmpada
– Cada lâmpada armazena o seu estado (ligado ou
desligado) e realiza as operações ligar e desligar
Classes em C#
• Declaração 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 características e
comportamento
• Classe
– Descreve um tipo de objeto
– Define atributos e métodos
• Atributo
– Define características do objeto
• Método
– Operações que o objeto pode realizar
Exercício – implemente as classes
abaixo em C#
Exercícios
• Imagine uma lâmpada que possa ter três
estados: apagada, acesa e meia-luz. Usando a
classe Lampada, vista nas transparências,
escreva uma classe em C# para essa nova
lâmpada.
• Crie uma classe Livro que represente os dados
básicos de um livro.
• Escreva uma classe contenha a data do dia das
mães, ela deve conter dia, mês e ano.
Dúvidas

Mais conteúdo relacionado

Mais procurados

Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetossoncino
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – IIGabriel Faustino
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentElias Nogueira
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Daniel Brandão
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em JavaDenis L Presciliano
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
Poo encapsulamento
Poo encapsulamentoPoo encapsulamento
Poo encapsulamentoSedu
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetosNécio de Lima Veras
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERRangel Javier
 

Mais procurados (20)

Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Mapeamento objeto relacional
Mapeamento objeto relacionalMapeamento objeto relacional
Mapeamento objeto relacional
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
 
Poo
PooPoo
Poo
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Poo encapsulamento
Poo encapsulamentoPoo encapsulamento
Poo encapsulamento
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 

Destaque

POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...Marcello Thiry
 
Pesquisa Usuarios IFG (Instituto Federal de Educação, Ciência e Tecnolgia de ...
Pesquisa Usuarios IFG (Instituto Federal de Educação, Ciência e Tecnolgia de ...Pesquisa Usuarios IFG (Instituto Federal de Educação, Ciência e Tecnolgia de ...
Pesquisa Usuarios IFG (Instituto Federal de Educação, Ciência e Tecnolgia de ...Carla Ferreira
 
5 Ads
5 Ads5 Ads
5 Adslcbj
 
Processamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e AplicaçõesProcessamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e AplicaçõesAldisio Medeiros
 
3 C
3 C3 C
3 Clcbj
 
02 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.002 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.0César Augusto Pessôa
 
Introdução a Orientaçãoo a Objetos
Introdução a Orientaçãoo a ObjetosIntrodução a Orientaçãoo a Objetos
Introdução a Orientaçãoo a ObjetosFernando Machado
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Andre Nascimento
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net codersRenato Groff
 
02 - Introdução a Projetos parte 2 - v1.0
02 - Introdução a Projetos parte 2 - v1.002 - Introdução a Projetos parte 2 - v1.0
02 - Introdução a Projetos parte 2 - v1.0César Augusto Pessôa
 

Destaque (20)

Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...
POO - Unidade 1 (parte 1) - Princípios e conceitos da Orientação a Objetos (v...
 
Pesquisa Usuarios IFG (Instituto Federal de Educação, Ciência e Tecnolgia de ...
Pesquisa Usuarios IFG (Instituto Federal de Educação, Ciência e Tecnolgia de ...Pesquisa Usuarios IFG (Instituto Federal de Educação, Ciência e Tecnolgia de ...
Pesquisa Usuarios IFG (Instituto Federal de Educação, Ciência e Tecnolgia de ...
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 
Guerras cibernéticas
Guerras cibernéticasGuerras cibernéticas
Guerras cibernéticas
 
Aula poo x pe
Aula poo x peAula poo x pe
Aula poo x pe
 
3- POO
3- POO3- POO
3- POO
 
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de ClassesAnálise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
 
5 Ads
5 Ads5 Ads
5 Ads
 
Curso DNA Básico Thetahealing
Curso DNA Básico ThetahealingCurso DNA Básico Thetahealing
Curso DNA Básico Thetahealing
 
Processamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e AplicaçõesProcessamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e Aplicações
 
3 C
3 C3 C
3 C
 
Csharp.intro
Csharp.introCsharp.intro
Csharp.intro
 
02 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.002 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.0
 
Introdução a Orientaçãoo a Objetos
Introdução a Orientaçãoo a ObjetosIntrodução a Orientaçãoo a Objetos
Introdução a Orientaçãoo a Objetos
 
Como Implementar Um Menu Ribbon em C#
Como Implementar Um Menu Ribbon em C#Como Implementar Um Menu Ribbon em C#
Como Implementar Um Menu Ribbon em C#
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 
02 - Introdução a Projetos parte 2 - v1.0
02 - Introdução a Projetos parte 2 - v1.002 - Introdução a Projetos parte 2 - v1.0
02 - Introdução a Projetos parte 2 - v1.0
 

Semelhante a Aula 09 - introducao oo

Intro oca,ocp 6 & 7, oo basics
Intro   oca,ocp 6 & 7, oo basicsIntro   oca,ocp 6 & 7, oo basics
Intro oca,ocp 6 & 7, oo basicsJuarez Junior
 
3.1 orientação objetos
3.1  orientação objetos3.1  orientação objetos
3.1 orientação objetosFrank Coelho
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Professor Samuel Ribeiro
 
Aula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfAula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfssuser6e99cd
 
2.1 introdução a oo
2.1 introdução a oo2.1 introdução a oo
2.1 introdução a ooPAULO Moreira
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetosWesley R. Bezerra
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos finalemcp11
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetosdanielrpgj30
 
POO2 - Orientacao a Objetos (1).pdf
POO2 - Orientacao a Objetos (1).pdfPOO2 - Orientacao a Objetos (1).pdf
POO2 - Orientacao a Objetos (1).pdfJadna Almeida
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosRamon Mayor Martins
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfpedrina4
 
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16marcusNOGUEIRA
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoLuciano Almeida
 

Semelhante a Aula 09 - introducao oo (20)

Intro oca,ocp 6 & 7, oo basics
Intro   oca,ocp 6 & 7, oo basicsIntro   oca,ocp 6 & 7, oo basics
Intro oca,ocp 6 & 7, oo basics
 
3.1 orientação objetos
3.1  orientação objetos3.1  orientação objetos
3.1 orientação objetos
 
Java oo - aula 01
Java   oo - aula 01Java   oo - aula 01
Java oo - aula 01
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos
 
Aula01-IntroducaoOO.pptx
Aula01-IntroducaoOO.pptxAula01-IntroducaoOO.pptx
Aula01-IntroducaoOO.pptx
 
Aula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfAula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdf
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
2.1 introdução a oo
2.1 introdução a oo2.1 introdução a oo
2.1 introdução a oo
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetos
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos final
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
 
POO2 - Orientacao a Objetos (1).pdf
POO2 - Orientacao a Objetos (1).pdfPOO2 - Orientacao a Objetos (1).pdf
POO2 - Orientacao a Objetos (1).pdf
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
 
Aula 04.pdf
Aula 04.pdfAula 04.pdf
Aula 04.pdf
 
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A Objeto
 

Aula 09 - introducao oo

  • 1. Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013
  • 2. O que veremos hoje? • Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton Carlos
  • 3. Objetivos • Comparação Programação Estrutura e POO • Compreender os conceitos de Programação Orientada a Objetos (POO); • Entender as vantagens de se utilizar POO; • Entender os conceitos de POO aplicado a uma linguagem de programação (C# como exemplo); • Aprender a criar classes e utilizá-las em um contexto prático.
  • 4. Plano de Aula • Comparação Programação Estrutura e POO • Definição de Objetos – Conceito, propriedades • Definição de Classe • Elementos Principais de Programação Orientada a Objeto – Abstração, Encapsulamento, Modularidade, Herança, Polimorfismo • Visibilidade • Classe em C#
  • 6. Paradigma Estrutural x Orientação a Objeto • Consiste no mapeamento do problema no mundo real a ser resolvido num modelo computacional. • Programação Estrutura – Consiste na criação de um conjunto de procedimentos (algoritmos) para resolver o problema – Encontrar modos apropriados de armazenar os dados • Programação Orientada a Objetos – Consistem em identificar os objetos e as operações relevantes no mundo real – O mapeamento desses em representações abstratas no espaço de soluções
  • 7. Programação Orientada a Objetos • Paradigma de Programação – Dominante nos dias atuais • Substituiu as técnicas de programação procedimental (estruturada) • “Fornece um mapeamento direto entre o mundo real e as unidades de organização utilizadas no projeto” • Diversas unidades de software, chamadas de objetos, que interagem entre si • Separa claramente a noção de o que é feito de como é feito
  • 8. Programação Orientada a Objetos • Representação:
  • 9. Definição de Objetos • Um objeto é algo do mundo real : – Concreto ou Abstrato • As percepção dos seres humanos é dada através dos objetos • Um objeto é uma entidade que exibe algum comportamento bem definido.
  • 10. Objetos • Características – Dados representam características • São chamados atributos • São as variáveis do objeto • Comportamento – Operações definem comportamento • São os métodos de um objeto • São as funções que são executadas por um objeto
  • 11. Objetos - Propriedades • Estado – Representado pelos valores dos atributos de um objeto • Comportamento – Definido pelo conjunto de métodos do objeto – Estado representa o resultado cumulativo de seu comportamento • Identidade – Um objeto é único, mesmo que o seu estado seja idêntico ao de outro; – Seu valor de referência • Os valores dos DADOS são modificados a partir das OPERAÇÕES sobre estes dados
  • 12. Objetos - Propriedades • Estado • Comportamento • Identidade Acesa Apagada Acender Apagar
  • 13. Classes • São especificações para objetos; • Representam um conjunto de objetos que compartilham características e comportamentos comuns. Todo carro tem em comum: Característica Cor Pneu Direção Comportamento Dirigir Frear
  • 14. Abstração • Abstração é uma das formas fundamentais que nós lidamos com a complexidade.; • Quando queremos diminuir a complexidade de alguma coisa, ignoramos detalhes sobre as partes para concentrar a atenção no nível mais alto de um problema; • Não se analisa o “todo”, em POO é importante analisar as partes para entender o todo.
  • 15. Abstração • Foca a característica essencial de alguns objetos relativo a perspectiva do visualizador
  • 16. Encapsulamento • Encapsulamento é o processo de esconder todos os detalhes de um objeto que não contribuem para as suas características essenciais; • O encapsulamento é o modo de dar ao objeto seu comportamento “caixa-preta”, que é o segredo da reutilização e confiabilidade. Se o estado de um objeto foi modificado sem uma chamada de método desse objeto, então o encapsulamento foi quebrado
  • 17. Encapsulamento e Abstração • São conceitos complementares • Abstração foca sobre o comportamento observável de um objeto, enquanto encapsulamento se concentra na execução que dá origem a esse comportamento
  • 18. Modularidade • Modularização é o processo de dividir um todo em partes bem definidas, que podem ser construídas 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.
  • 19. Herança • A abstração ajuda a diminuir a complexidade. • Encapsulamento ajuda a gerenciar essa complexidade, ocultando a visão dentro de nossa abstrações. • A modularidade também ajuda, dando-nos uma maneira de agrupar logicamente abstrações relacionadas. • Um conjunto de abstrações, muitas vezes forma uma hierarquia, e identificando essas hierarquias no nosso projeto, simplifica grandemente o nossa compreensão do problema.
  • 20. Herança • Herança é o mecanismo para expressar a similaridade entre Classes, simplificando a definição de classes iguais que já foram definidas. • O que um leão, um tigre, um gato, um lobo e um dálmatas têm em comum? • Como eles são relacionados?
  • 22. Polimorfismo • Polimorfimos – Poli -> varias; Morfos -> formas; • Significa que um objeto pode assumir diferentes formas; • O conceito de polimorfismo está associado a Herança; • É caracterizado como o fato de uma operação poder ser implementada de diferentes maneiras pelas classes na hierarquia.
  • 24. Visibilidade • Private – O nível de acesso se restringe apenas a classe; – Não é passado por herança; • Public – O nível de acesso é irrestrito; – Por padrão, é a visibilidade definida para métodos e atributos em uma classe • Protected – É visível em toda a classe; – É passado por herança (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 contém o modificador.
  • 25. Classes • Classe Lampada – Atributos • potencia, ligada – métodos • ligar, desligar, estaLigada
  • 27. Classes em C# • Declaração de uma classe em C# – A palavra-chave class é utilizada para definir uma nova classe – A classe Lâmpada, por exemplo, representa uma entidade lâmpada – Cada lâmpada armazena o seu estado (ligado ou desligado) e realiza as operações ligar e desligar
  • 28. Classes em C# • Declaração 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;} }
  • 29. Resumo • Objeto – Qualquer entidade que possui características e comportamento • Classe – Descreve um tipo de objeto – Define atributos e métodos • Atributo – Define características do objeto • Método – Operações que o objeto pode realizar
  • 30. Exercício – implemente as classes abaixo em C#
  • 31. Exercícios • Imagine uma lâmpada que possa ter três estados: apagada, acesa e meia-luz. Usando a classe Lampada, vista nas transparências, escreva uma classe em C# para essa nova lâmpada. • Crie uma classe Livro que represente os dados básicos de um livro. • Escreva uma classe contenha a data do dia das mães, ela deve conter dia, mês e ano.