SlideShare uma empresa Scribd logo
Programação orientada a objectos
Paulo Truta
Escola Secundária da Trofa | Linguagens de Programação | Mod10
26-01-09
Programação orientada a objectos
É a programação centrada na ideia em que o programa é composto por um
conjunto de entidades (objectos e eventos), capazes de se inter-
relacionarem .
Motor
Portas
Pneus
Carroçaria
Ligar
Acelerar
Travar
Carro
O que é um objecto?
Exemplo: Um Jaguar é um objecto. Tem como características a
cor, peso, quantidade de portas, modelo, ano, etc. Também
tem acções como travar, buzinar, acelerar, abrir os vidros,
mudar as mudanças, etc. Portanto programar Orientado a
Objectos é fazer essa abstracção do mundo real e transforma-
la em código.
Os 4 pilares da POO
A POO tem 4 pilares que a sustenta, que são:
• Abstracção;
• Encapsulamento;
• Herança;
• Polimorfismo;
Abstracção
• É a capacidade de pensar nos objectos da vida real e classificá-los. É o
processo pelo qual modelamos sistemas reais ou imaginários, extraindo
do seu contexto os seus principais elementos “Objectos”, e descrevemos
cada objecto, com suas principais “características” de dados e
funcionalidades.
• Um Ferrari por exemplo tem as mesmas características do objecto Jaguar
citado no exemplo anterior, e possui até mais, mas eles têm algo em
comum, ou seja, ambos são carros, logo pertencem à classe carro. A
Ferrari é um tipo de carro e o Jaguar também, mas cada um com as suas
características e acções particulares e comuns.
Encapsulamento
• Os objectos como dito atrás contém atributos e métodos. O
encapsulamento trata de dar alguma segurança a esses mesmos objectos:
Cliente : Cliente
-------
Propriedades privadas
- nome : string
- endereco : string
- telefone : int
- numBI: int
- numeroDoCliente : int
--------
Métodos Públicos
+ alterarNome(nome)
+ gerarNumeroCliente()
Para que o encapsulamento exista é preciso
definir os atributos privados e os métodos
públicos, assim está a garantir que os
valores atribuídos aos atributos serão
sempre respeitados pelas regras existentes.
Atributos
privados
Métodos
Públicos
Herança
• O que torna a orientação a objectos única é o conceito de herança que no
inglês significa inheritence.
Herança é um mecanismo que permite que
características comuns a diversas classes
com comportamentos comuns ou parecidos,
sejam abstraídas e centralizadas numa
classe base, ou superclasse. Tem uma
relação “É um”.
Um Jaguar “é um” carro. Logo ele foi herdado
da classe carro, pois contém as características
comuns dum carro.
Polimorfismo
• Analisando a palavra Polimorfismo, significa muitas formas. Ou seja, para
uma árvore de herança, temos muitas formas de objectos e métodos a
partir de uma superclasse e das suas subclasses.
Polimorfismo é o princípio pelo
qual se usam objectos
construídos a partir de uma
árvore de herança, através de
referências do tipo superclasse
da hierarquia. Existem três
formas de polimorfismo
(unidades do polimorfismo),
que iremos visualizar nos
próximos diapositivos.
Formas de polimorfismo:
1. Subclasses;
2. Overriding;
3. Overloading;
Overriding
• Esta unidade permite-nos escrever numa subclasse um ou
mais métodos presentes numa das superclasses podendo
alterar o comportamento da mesma.
Overloading
• O Polimorfismo ainda permite que numa mesma classe
tenhamos métodos com o mesmo nome, desde que o
número ou tipos de parâmetros passados sejam
diferentes.
carro : Carro
-Nome : String
- ano : int
- modelo : String
- arCondicionado : boolean
+ getNome() : String
+ getAno() : int
+ getModelo() : String
+ ligaDesligaArCondicionado() : boolean
jaguar : Carro
-Aquecedor : Boolean
- airbags : int
- tetodeabrir: boolean
- turbo : int
+ ligaDesligaAquecedor() : boolean
+ abreFechaTetodeabrir() : int
+ activarDesactivarTurbo() : int
+ activarDesactivarTurbo(int qtd): int
Classes
• Entendidos todos os conceitos atrás referidos é mais fácil entender o que
é uma classe. Como na vida real existem diversos objectos do mesmo tipo,
nos softwares acontece o mesmo.
Imagine o sistema de gestão de
veículos da PSP-BT. Quantos
objectos do tipo carro este sistema
deve manipular por dia?
É possível descrever um mesmo tipo de
objectos uma única vez e cada vez que um
novo objecto precise ser criado, é só utilizar a
mesma forma. Esta forma é chamada classe.
Numa padaria, quando escolhemos um bolo, deparamo-nos com muitos bolos
parecidos. Seria o padeiro capaz de produzir tantos bolos com a mesma forma usando
apenas as mãos? NÃO! Ele usou uma forma para fazer estes bolos, a forma foi o molde
que ele escolheu para seus bolos. Com os objectos não é diferente, as classes são os
moldes (modelos, formas, plantas) para criação dos objectos enquanto os programas
estão a ser executados.
Concluindo, uma classe é a descrição de um conjunto de objectos que possuem os
mesmos atributos, operação e semântica. Dizemos que um objecto é uma instância de
uma classe, quando ele é criado a partir dela, seguindo a sua especificação.
Abstracção e instância
• A abstracção denota a essência ideal de uma coisa; a instância denota
uma manifestação concreta.
• Pode também dizer-se que, na codificação existem apenas as classes, não
os objectos. Já em tempo de execução, o que existe são os objectos e não
as classes. Também dizemos que uma variável é de um determinado tipo
(inteiro, booleano, real, etc.) numa linguagem de programação, então
dizemos que um objecto é de uma determinada classe.
• Uma classe é a reunião de objectos idênticos por meio de atributos e
métodos.
• Existem muitas possibilidades de assuntos mais profundos, mas os pontos
principais do POO são os mencionados nesta apresentação.

Mais conteúdo relacionado

Mais procurados

Aula1-Conceitos de SGBD
Aula1-Conceitos de SGBDAula1-Conceitos de SGBD
Aula1-Conceitos de SGBD
Cris Fidelix
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
thomasdacosta
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de Sistemas
Gustavo Gonzalez
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
Ralph Rassweiler
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
Gabriel Faustino
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
Gleydson Sousa
 
Inteligência Artificial em Jogos
Inteligência Artificial em JogosInteligência Artificial em Jogos
Inteligência Artificial em Jogos
Mauricio Volkweis Astiazara
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
Rafael Kleestadt da Cruz
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
Rober Guerra
 
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
Rangel Javier
 
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
CursoSENAC
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
Christian Perone
 
Matéria de apoio (Base de dados)
Matéria de apoio  (Base de dados)Matéria de apoio  (Base de dados)
Matéria de apoio (Base de dados)
André Silva
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de Sistemas
Clayton de Almeida Souza
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Marcelo Silva
 
Revisão UML
Revisão UMLRevisão UML
Revisão UML
Suzana Viana Mota
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
Leinylson Fontinele
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulário
Centro Paula Souza
 
Funções e caracteristicas de um so
Funções e caracteristicas de um soFunções e caracteristicas de um so
Funções e caracteristicas de um so
MiriamMiguel
 
Banco de Dados
Banco de DadosBanco de Dados
Banco de Dados
Daniel Paz de Araújo
 

Mais procurados (20)

Aula1-Conceitos de SGBD
Aula1-Conceitos de SGBDAula1-Conceitos de SGBD
Aula1-Conceitos de SGBD
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de Sistemas
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Inteligência Artificial em Jogos
Inteligência Artificial em JogosInteligência Artificial em Jogos
Inteligência Artificial em Jogos
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
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
 
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
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Matéria de apoio (Base de dados)
Matéria de apoio  (Base de dados)Matéria de apoio  (Base de dados)
Matéria de apoio (Base de dados)
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de Sistemas
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
 
Revisão UML
Revisão UMLRevisão UML
Revisão UML
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulário
 
Funções e caracteristicas de um so
Funções e caracteristicas de um soFunções e caracteristicas de um so
Funções e caracteristicas de um so
 
Banco de Dados
Banco de DadosBanco de Dados
Banco de Dados
 

Destaque

Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
Regis Magalhães
 
Processadores intel 8008 e 8080
Processadores intel 8008 e 8080Processadores intel 8008 e 8080
Processadores intel 8008 e 8080
Elaine Cecília Gatto
 
POO Herança
POO HerançaPOO Herança
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de DesenvolvimentoPOO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
Ludimila Monjardim Casagrande
 
POO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosPOO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetos
Felipe J. R. Vieira
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
Moises Omena
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
Ludimila Monjardim Casagrande
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
Ludimila Monjardim Casagrande
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
Felipe J. R. Vieira
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
Felipe J. R. Vieira
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
adolfoacosta
 
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
 
Poo
PooPoo
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
Elaine Cecília Gatto
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
Álvaro Farias Pinheiro
 

Destaque (15)

Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Processadores intel 8008 e 8080
Processadores intel 8008 e 8080Processadores intel 8008 e 8080
Processadores intel 8008 e 8080
 
POO Herança
POO HerançaPOO Herança
POO Herança
 
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de DesenvolvimentoPOO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
 
POO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosPOO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetos
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la 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)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Poo
PooPoo
Poo
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 

Semelhante a Programação Orientada A Objectos (Poo)

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
pedrina4
 
aula 1.pptx
aula 1.pptxaula 1.pptx
aula 1.pptx
EduquesuaRedeSocial
 
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
odnanfer
 
1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf
JoberthSilva
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
Mahayana2706
 
2.1 introdução a oo
2.1 introdução a oo2.1 introdução a oo
2.1 introdução a oo
PAULO Moreira
 
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
emcp11
 
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
Wesley R. Bezerra
 
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
Ramon Mayor Martins
 
Java7
Java7Java7
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A Objeto
Luciano Almeida
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Wanderlei Silva do Carmo
 
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
danielrpgj30
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
Maurício Linhares
 
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
 
Linguagem de programação introdução v1
Linguagem de programação   introdução v1Linguagem de programação   introdução v1
Linguagem de programação introdução v1
Carlos Melo
 
Java aula 2
Java aula 2Java aula 2
Java aula 2
Endel Silva
 
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
Juarez Junior
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
Gardênia Santana
 
Orientacao a Objetos
Orientacao a ObjetosOrientacao a Objetos
Orientacao a Objetos
Robson Silva Espig
 

Semelhante a Programação Orientada A Objectos (Poo) (20)

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 1.pptx
aula 1.pptxaula 1.pptx
aula 1.pptx
 
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
 
1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
2.1 introdução a oo
2.1 introdução a oo2.1 introdução a oo
2.1 introdução a oo
 
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 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
 
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
 
Java7
Java7Java7
Java7
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A Objeto
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
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
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
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
 
Linguagem de programação introdução v1
Linguagem de programação   introdução v1Linguagem de programação   introdução v1
Linguagem de programação introdução v1
 
Java aula 2
Java aula 2Java aula 2
Java aula 2
 
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
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Orientacao a Objetos
Orientacao a ObjetosOrientacao a Objetos
Orientacao a Objetos
 

Último

Apostila GOOGLE MEU NEGÓCIO-Passo a passo detalhado para criar um novo perfil
Apostila GOOGLE MEU NEGÓCIO-Passo a passo detalhado para criar um novo perfilApostila GOOGLE MEU NEGÓCIO-Passo a passo detalhado para criar um novo perfil
Apostila GOOGLE MEU NEGÓCIO-Passo a passo detalhado para criar um novo perfil
Carlos Eduardo Coan Junior
 
7 - Gerenciamento e Economia de Sistemas de Operações Logísticas.pdf
7 - Gerenciamento e Economia de Sistemas de Operações Logísticas.pdf7 - Gerenciamento e Economia de Sistemas de Operações Logísticas.pdf
7 - Gerenciamento e Economia de Sistemas de Operações Logísticas.pdf
InsttLcioEvangelista
 
Veronica Daniel Dantas Opportunity Recebe 5 Premios Ademi.pdf
Veronica Daniel Dantas Opportunity Recebe 5 Premios Ademi.pdfVeronica Daniel Dantas Opportunity Recebe 5 Premios Ademi.pdf
Veronica Daniel Dantas Opportunity Recebe 5 Premios Ademi.pdf
Veronica Dantas
 
GUIA DE EMPRESA PEDAGOGICA PARA ALUNOS.pdf
GUIA DE EMPRESA PEDAGOGICA PARA ALUNOS.pdfGUIA DE EMPRESA PEDAGOGICA PARA ALUNOS.pdf
GUIA DE EMPRESA PEDAGOGICA PARA ALUNOS.pdf
AlfeuBuriti1
 
A ADEQUAÇÃO À LGPD DA UNIVERSIDADE UNIVAZADA: UM ESTUDO DE CASO FICTÍCIO DE U...
A ADEQUAÇÃO À LGPD DA UNIVERSIDADE UNIVAZADA: UM ESTUDO DE CASO FICTÍCIO DE U...A ADEQUAÇÃO À LGPD DA UNIVERSIDADE UNIVAZADA: UM ESTUDO DE CASO FICTÍCIO DE U...
A ADEQUAÇÃO À LGPD DA UNIVERSIDADE UNIVAZADA: UM ESTUDO DE CASO FICTÍCIO DE U...
Paulo Emerson Pereira
 
Estudo de caso apresenta ao Projeto Integrado Multidisciplinar - TCC
Estudo de caso apresenta ao Projeto Integrado Multidisciplinar - TCCEstudo de caso apresenta ao Projeto Integrado Multidisciplinar - TCC
Estudo de caso apresenta ao Projeto Integrado Multidisciplinar - TCC
Paulo Emerson Pereira
 
RESTAURANT MANORA HOTEL SINDBAD HAMMAMET
RESTAURANT MANORA HOTEL SINDBAD HAMMAMETRESTAURANT MANORA HOTEL SINDBAD HAMMAMET
RESTAURANT MANORA HOTEL SINDBAD HAMMAMET
rihabkorbi24
 
Revolução da inclusão financeira: Benefícios da criptomoeda
Revolução da inclusão financeira: Benefícios da criptomoedaRevolução da inclusão financeira: Benefícios da criptomoeda
Revolução da inclusão financeira: Benefícios da criptomoeda
Renan Batista Bitcoin
 

Último (8)

Apostila GOOGLE MEU NEGÓCIO-Passo a passo detalhado para criar um novo perfil
Apostila GOOGLE MEU NEGÓCIO-Passo a passo detalhado para criar um novo perfilApostila GOOGLE MEU NEGÓCIO-Passo a passo detalhado para criar um novo perfil
Apostila GOOGLE MEU NEGÓCIO-Passo a passo detalhado para criar um novo perfil
 
7 - Gerenciamento e Economia de Sistemas de Operações Logísticas.pdf
7 - Gerenciamento e Economia de Sistemas de Operações Logísticas.pdf7 - Gerenciamento e Economia de Sistemas de Operações Logísticas.pdf
7 - Gerenciamento e Economia de Sistemas de Operações Logísticas.pdf
 
Veronica Daniel Dantas Opportunity Recebe 5 Premios Ademi.pdf
Veronica Daniel Dantas Opportunity Recebe 5 Premios Ademi.pdfVeronica Daniel Dantas Opportunity Recebe 5 Premios Ademi.pdf
Veronica Daniel Dantas Opportunity Recebe 5 Premios Ademi.pdf
 
GUIA DE EMPRESA PEDAGOGICA PARA ALUNOS.pdf
GUIA DE EMPRESA PEDAGOGICA PARA ALUNOS.pdfGUIA DE EMPRESA PEDAGOGICA PARA ALUNOS.pdf
GUIA DE EMPRESA PEDAGOGICA PARA ALUNOS.pdf
 
A ADEQUAÇÃO À LGPD DA UNIVERSIDADE UNIVAZADA: UM ESTUDO DE CASO FICTÍCIO DE U...
A ADEQUAÇÃO À LGPD DA UNIVERSIDADE UNIVAZADA: UM ESTUDO DE CASO FICTÍCIO DE U...A ADEQUAÇÃO À LGPD DA UNIVERSIDADE UNIVAZADA: UM ESTUDO DE CASO FICTÍCIO DE U...
A ADEQUAÇÃO À LGPD DA UNIVERSIDADE UNIVAZADA: UM ESTUDO DE CASO FICTÍCIO DE U...
 
Estudo de caso apresenta ao Projeto Integrado Multidisciplinar - TCC
Estudo de caso apresenta ao Projeto Integrado Multidisciplinar - TCCEstudo de caso apresenta ao Projeto Integrado Multidisciplinar - TCC
Estudo de caso apresenta ao Projeto Integrado Multidisciplinar - TCC
 
RESTAURANT MANORA HOTEL SINDBAD HAMMAMET
RESTAURANT MANORA HOTEL SINDBAD HAMMAMETRESTAURANT MANORA HOTEL SINDBAD HAMMAMET
RESTAURANT MANORA HOTEL SINDBAD HAMMAMET
 
Revolução da inclusão financeira: Benefícios da criptomoeda
Revolução da inclusão financeira: Benefícios da criptomoedaRevolução da inclusão financeira: Benefícios da criptomoeda
Revolução da inclusão financeira: Benefícios da criptomoeda
 

Programação Orientada A Objectos (Poo)

  • 1. Programação orientada a objectos Paulo Truta Escola Secundária da Trofa | Linguagens de Programação | Mod10 26-01-09
  • 2. Programação orientada a objectos É a programação centrada na ideia em que o programa é composto por um conjunto de entidades (objectos e eventos), capazes de se inter- relacionarem . Motor Portas Pneus Carroçaria Ligar Acelerar Travar Carro
  • 3. O que é um objecto? Exemplo: Um Jaguar é um objecto. Tem como características a cor, peso, quantidade de portas, modelo, ano, etc. Também tem acções como travar, buzinar, acelerar, abrir os vidros, mudar as mudanças, etc. Portanto programar Orientado a Objectos é fazer essa abstracção do mundo real e transforma- la em código.
  • 4. Os 4 pilares da POO A POO tem 4 pilares que a sustenta, que são: • Abstracção; • Encapsulamento; • Herança; • Polimorfismo;
  • 5. Abstracção • É a capacidade de pensar nos objectos da vida real e classificá-los. É o processo pelo qual modelamos sistemas reais ou imaginários, extraindo do seu contexto os seus principais elementos “Objectos”, e descrevemos cada objecto, com suas principais “características” de dados e funcionalidades. • Um Ferrari por exemplo tem as mesmas características do objecto Jaguar citado no exemplo anterior, e possui até mais, mas eles têm algo em comum, ou seja, ambos são carros, logo pertencem à classe carro. A Ferrari é um tipo de carro e o Jaguar também, mas cada um com as suas características e acções particulares e comuns.
  • 6. Encapsulamento • Os objectos como dito atrás contém atributos e métodos. O encapsulamento trata de dar alguma segurança a esses mesmos objectos: Cliente : Cliente ------- Propriedades privadas - nome : string - endereco : string - telefone : int - numBI: int - numeroDoCliente : int -------- Métodos Públicos + alterarNome(nome) + gerarNumeroCliente() Para que o encapsulamento exista é preciso definir os atributos privados e os métodos públicos, assim está a garantir que os valores atribuídos aos atributos serão sempre respeitados pelas regras existentes. Atributos privados Métodos Públicos
  • 7. Herança • O que torna a orientação a objectos única é o conceito de herança que no inglês significa inheritence. Herança é um mecanismo que permite que características comuns a diversas classes com comportamentos comuns ou parecidos, sejam abstraídas e centralizadas numa classe base, ou superclasse. Tem uma relação “É um”. Um Jaguar “é um” carro. Logo ele foi herdado da classe carro, pois contém as características comuns dum carro.
  • 8. Polimorfismo • Analisando a palavra Polimorfismo, significa muitas formas. Ou seja, para uma árvore de herança, temos muitas formas de objectos e métodos a partir de uma superclasse e das suas subclasses. Polimorfismo é o princípio pelo qual se usam objectos construídos a partir de uma árvore de herança, através de referências do tipo superclasse da hierarquia. Existem três formas de polimorfismo (unidades do polimorfismo), que iremos visualizar nos próximos diapositivos. Formas de polimorfismo: 1. Subclasses; 2. Overriding; 3. Overloading;
  • 9. Overriding • Esta unidade permite-nos escrever numa subclasse um ou mais métodos presentes numa das superclasses podendo alterar o comportamento da mesma.
  • 10. Overloading • O Polimorfismo ainda permite que numa mesma classe tenhamos métodos com o mesmo nome, desde que o número ou tipos de parâmetros passados sejam diferentes. carro : Carro -Nome : String - ano : int - modelo : String - arCondicionado : boolean + getNome() : String + getAno() : int + getModelo() : String + ligaDesligaArCondicionado() : boolean jaguar : Carro -Aquecedor : Boolean - airbags : int - tetodeabrir: boolean - turbo : int + ligaDesligaAquecedor() : boolean + abreFechaTetodeabrir() : int + activarDesactivarTurbo() : int + activarDesactivarTurbo(int qtd): int
  • 11. Classes • Entendidos todos os conceitos atrás referidos é mais fácil entender o que é uma classe. Como na vida real existem diversos objectos do mesmo tipo, nos softwares acontece o mesmo. Imagine o sistema de gestão de veículos da PSP-BT. Quantos objectos do tipo carro este sistema deve manipular por dia? É possível descrever um mesmo tipo de objectos uma única vez e cada vez que um novo objecto precise ser criado, é só utilizar a mesma forma. Esta forma é chamada classe. Numa padaria, quando escolhemos um bolo, deparamo-nos com muitos bolos parecidos. Seria o padeiro capaz de produzir tantos bolos com a mesma forma usando apenas as mãos? NÃO! Ele usou uma forma para fazer estes bolos, a forma foi o molde que ele escolheu para seus bolos. Com os objectos não é diferente, as classes são os moldes (modelos, formas, plantas) para criação dos objectos enquanto os programas estão a ser executados. Concluindo, uma classe é a descrição de um conjunto de objectos que possuem os mesmos atributos, operação e semântica. Dizemos que um objecto é uma instância de uma classe, quando ele é criado a partir dela, seguindo a sua especificação.
  • 12. Abstracção e instância • A abstracção denota a essência ideal de uma coisa; a instância denota uma manifestação concreta. • Pode também dizer-se que, na codificação existem apenas as classes, não os objectos. Já em tempo de execução, o que existe são os objectos e não as classes. Também dizemos que uma variável é de um determinado tipo (inteiro, booleano, real, etc.) numa linguagem de programação, então dizemos que um objecto é de uma determinada classe. • Uma classe é a reunião de objectos idênticos por meio de atributos e métodos. • Existem muitas possibilidades de assuntos mais profundos, mas os pontos principais do POO são os mencionados nesta apresentação.