SlideShare uma empresa Scribd logo
1 de 28
PROGRAMAÇÃO
ORIENTADA A
OBJETOS
POO
Cleyton Ferrari
@cleytonferrari
Fone: 69 9975-0504
TISelvagem.com.br
cleytonferrari@hotmail.com
Link apresentação no YouTube:
http://youtu.be/dtNZi5EV2hs
Introdução a POO
Classe e Objeto
Método
Herança
Encapsulamento
Abstração
Polimorfismo
Interface
Coesão / Acoplamento
INTRODUÇÃO
Programação
Orientada a Objetos?
Programação
Orientada a Objetos?
É UM PARADIGMA
DE PROGRAMAÇÃO
Programação
Orientada a Objetos?
UM ESTILO
DE PROGRAMAÇÃO
Programação
Orientada a Objetos?
EXISTEM
OUTRAS
E muito mais... Orientada a Teste, Escalar, Restritiva, Genérica....
Lógico
Prolog – Popler - QLISP
Imperativo/Procedural
Pascal – Fortran - Basic
Funcional/Descritiva
ML – F# - Haskell
Programação
Orientada a Objetos?
• Mais fácil descrever o mundo
real através dos objetos
• O encapsulamento facilita a
manutenção do código
• Maior facilidade para
reutilização de código
• Complexidade no aprendizado
em comparação com a
programação estruturada
• Seus conceitos são de difícil
compreensão
Programação
Orientada a Objetos?
RESUMO
POO é um paradigma de programação que usa "objetos"
compostos por campos e métodos, justamente com suas
interações - para projetar programas de computadores.
http://en.wikipedia.org/wiki/Object-oriented_programming
POO é uma forma especial de programar, mais próximo de
como expressaríamos as coisas na vida real do que outros
tipos de programação.
http://www.criarweb.com/artigos/215.php
POO é organizar o mundo real como uma coleção de objetos
que incorporam estrutura de dados e um conjunto de
operações que manipulam estes dados e trocam mensagens
entre si. http://www.macoratti.net/oo_conc2.htm
CLASSE
Uma classe é uma estrutura que abstrai um conjunto de
objetos com características similares. É como um projeto, a
partir dela que criamos os objetos utilizados em nossos
programas.
http://en.wikipedia.org/wiki/Object-oriented_programming
Classe:
Atributos
Os Atributos em Programação Orientada a Objetos são os
elementos que definem a estrutura de uma classe, ou seja
suas características.
http://en.wikipedia.org/wiki/Object-oriented_programming
Classe:
Construtores
Um construtor é uma estrutura especial da classe, um
método, que tem como objetivo definir a configuração inicial
de uma classe. É utilizado quando existem atributos da classe
que são essenciais para o funcionamento do objeto, porém,
são atributos de instância, e, assim, variam de acordo com
cada objeto.
http://www.webartz.com.br/php/php-orientado-a-objetos-conceitos-construtores-e-
destrutores
Classe:
Destrutores
Semelhante aos construtores, o destrutor também é uma
estrutura, outro método, da classe, porém este é responsável
por limpar a memória ou atributos utilizados na execução da
classe.
http://www.webartz.com.br/php/php-orientado-a-objetos-conceitos-construtores-e-
destrutores
Classe:
Visibilidade
Quem tem acesso à classe tem acesso também a qualquer membro com
visibilidade public, é raro ter atributos públicos, mas é comum ter
métodos públicos.
http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm
+ Public
O membro private não é acessível fora da classe, a intenção é que apenas
quem escreve a classe possa usar esses membros.
http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm
- Private
O membro protected é acessível à classe e a suas subclasses, a intenção é
dar acesso aos programadores que estenderão sua classe.
http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm
# Protected
Classe:
Objeto
Objetos são instâncias de classes. É através deles que (praticamente) todo
o processamento ocorre em sistemas implementados com linguagens de
programação orientadas a objetos.
Programação orientada a objetos uma abordagem com Java.
No paradigma de orientação a objetos, tudo pode ser potencialmente
representado como um objeto. Sob o ponto de vista da programação
orientada a objetos, um objeto não é muito diferente de uma variável
normal.
Programação orientada a objetos uma abordagem com Java.
MÉTODO
Um método é uma subrotina que é executada por um objeto
ao receber uma mensagem. Os métodos determinam o
comportamento dos objetos de uma classe.
http://en.wikipedia.org/wiki/Object-oriented_programming
Método:
Assinatura
Cada método é especificado por uma assinatura, composta
por um identificador para o método (o nome do método), o
tipo para o valor de retorno e sua lista de argumentos, sendo
cada argumento identificado por seu tipo e nome.
Programação orientada a objetos uma abordagem com Java.
[modificador] tipo nome (argumentos)
{
corpo do método
}
Através do mecanismo de sobrecarga (overloading), dois
métodos de uma classe podem ter o mesmo nome, desde
que suas assinaturas de argumentos sejam diferentes.
Programação orientada a objetos uma abordagem com Java.
Método:
Sobrecarga
São métodos que tem o mesmo nome, mas com
argumentos diferentes.
http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html
Lista de Argumentos diferentes
Podem alterar o tipo de retorno
Podem alterar o modificador de acesso
Declarar exceções novas ou mais abrangentes
Características
Método:
Mensagens
Um programa orientado a objetos é composto por um
conjunto de objetos que interagem através de “trocas de
mensagens”. Na prática, essa troca de mensagem traduz-se
na aplicação de métodos a objetos.
Programação orientada a objetos uma abordagem com Java.
Método:
Estáticos
Usualmente, métodos definidos em uma classe são aplicados
a objetos daquela classe. Há no entanto situações nas quais
um método pode fazer uso dos recursos de uma classe para
realizar sua tarefa sem necessariamente estar associado a um
objeto individualmente.
Programação orientada a objetos uma abordagem com Java.
Para lidar com tais situações, define os métodos da classe,
cuja declaração deve conter o modificador static. Um método
estático pode ser aplicado à classe e não necessariamente a
um objeto.
Programação orientada a objetos uma abordagem com Java.
HERANÇA
Herança é um mecanismo que permite que características
comuns a diversas classes sejam fatoradas em uma classe
base, ou superclasse. A partir de uma classe base, outras
classes podem ser especificadas.
Programação orientada a objetos uma abordagem com Java.
Herança:
Sobreposição
A sobreposição refere-se à redefinição de métodos na hierarquia
da herança, de forma que estes métodos implementam
definições diferentes (mais especializadas) nos subtipos.
http://arquiteturaemobilidade.blogspot.com/2008/07/conceitos-da-orientao-objetos-
com-uml_08.html
ENCAPSULAMENTO
É o princípio pelo qual cada componente de um programa
deve agregar toda a informação relevante para sua
manipulação como uma unidade (uma cápsula). Aliado ao
conceito de ocultamento de informação.
Programação orientada a objetos uma abordagem com Java.
ABSTRAÇÃO
Abstração é o processo de extrair as características essenciais de um
objeto real. A abstração é necessária para se ter um modelo fiel da
realidade sobre a qual se possa operar.
http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos
O conjunto de características resultante da abstração forma um tipo de
dado abstrato com informações sobre seu estado e comportamento.
http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos
POLIMORFISMO
O polimorfismo permite que referências de tipos de classes
mais abstratas representem o comportamento das classes
concretas que referenciam. Assim, um mesmo método pode
apresentar várias formas, de acordo com o seu contexto.
http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos
INTERFACE
É um conjunto de métodos que um objeto deve suportar, mas
contendo apenas a especificação da funcionalidade que uma
classe deve conter, sem determinar como essa funcionalidade
deve ser implementadas.
Programação orientada a objetos uma abordagem com Java.
COESÃO / ACOPLAMENTO
Acoplamento é o grau que uma classe depende, interage com outra classe.
Coesão refere a finalidade que a classe foi criada.
http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html
Quanto menos uma classe depende da outra, menor o acoplamento, e maior a
especialização dela, isso significa alta coesão.
http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html
DEMO

Mais conteúdo relacionado

Mais procurados

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
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDVinicius Buffolo
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
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
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
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 SistemasClayton de Almeida Souza
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01 Léo Dias
 
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
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeRegis Magalhães
 

Mais procurados (20)

PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introduçã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 Java
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBD
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
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
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Programação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a ObjetosProgramação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a Objetos
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
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
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Protocolo TCP/IP
Protocolo TCP/IPProtocolo TCP/IP
Protocolo TCP/IP
 
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
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 

Destaque

FTELab: a future classroom in higher education for redesigning teachers' init...
FTELab: a future classroom in higher education for redesigning teachers' init...FTELab: a future classroom in higher education for redesigning teachers' init...
FTELab: a future classroom in higher education for redesigning teachers' init...Neuza Pedro
 
Redesigning classrooms for the future
Redesigning classrooms for the futureRedesigning classrooms for the future
Redesigning classrooms for the futureNeuza Pedro
 
Future Teacher education Lab: espaço inovador para a formação de professores
Future Teacher education Lab: espaço inovador para a formação de professoresFuture Teacher education Lab: espaço inovador para a formação de professores
Future Teacher education Lab: espaço inovador para a formação de professoresNeuza Pedro
 
Design de Cenários de Aprendizagem - Formação de professores
Design de Cenários de Aprendizagem - Formação de professoresDesign de Cenários de Aprendizagem - Formação de professores
Design de Cenários de Aprendizagem - Formação de professoresNeuza Pedro
 
Elementos essenciais em Investigação em Educação
Elementos essenciais em Investigação em EducaçãoElementos essenciais em Investigação em Educação
Elementos essenciais em Investigação em EducaçãoNeuza Pedro
 
Sala de aula_futuro_workshop_12nov2016
Sala de aula_futuro_workshop_12nov2016Sala de aula_futuro_workshop_12nov2016
Sala de aula_futuro_workshop_12nov2016Neuza Pedro
 
Future Teacher education Lab: results after 2 years of use
Future Teacher education Lab: results after 2 years of useFuture Teacher education Lab: results after 2 years of use
Future Teacher education Lab: results after 2 years of useNeuza Pedro
 
Recursos tecnologicos na educacao moda_ou_necessidade
Recursos tecnologicos na educacao moda_ou_necessidadeRecursos tecnologicos na educacao moda_ou_necessidade
Recursos tecnologicos na educacao moda_ou_necessidadeNeuza Pedro
 
COIED2_Robots na aula de Matemática
COIED2_Robots na aula de MatemáticaCOIED2_Robots na aula de Matemática
COIED2_Robots na aula de MatemáticaCOIED
 
Future Classrooms: novos designs, ferramentas e pedagogias
Future Classrooms: novos designs, ferramentas e pedagogiasFuture Classrooms: novos designs, ferramentas e pedagogias
Future Classrooms: novos designs, ferramentas e pedagogiasNeuza Pedro
 
Tablets Quadros interactivos e salas de aula = inovação pedagogica?
Tablets Quadros interactivos e salas de aula = inovação pedagogica?Tablets Quadros interactivos e salas de aula = inovação pedagogica?
Tablets Quadros interactivos e salas de aula = inovação pedagogica?Neuza Pedro
 
Uso das TIC em projetos Comenius
Uso das TIC em projetos ComeniusUso das TIC em projetos Comenius
Uso das TIC em projetos ComeniusCidália Marques
 
Inovação pedagógica e tecnologias no Ensino Superior: um framework
Inovação pedagógica e tecnologias no Ensino Superior: um frameworkInovação pedagógica e tecnologias no Ensino Superior: um framework
Inovação pedagógica e tecnologias no Ensino Superior: um frameworkNeuza Pedro
 
E learning in higher education analyzing critical factors
E learning in higher education analyzing critical factorsE learning in higher education analyzing critical factors
E learning in higher education analyzing critical factorsNeuza Pedro
 
Aplicações móveis na Educação etwinning
Aplicações móveis na Educação etwinningAplicações móveis na Educação etwinning
Aplicações móveis na Educação etwinningMarco Neves
 
Novos espaços e novas metodologias, o fator crítico: a formação de professores
Novos espaços e novas metodologias, o fator crítico: a formação de professoresNovos espaços e novas metodologias, o fator crítico: a formação de professores
Novos espaços e novas metodologias, o fator crítico: a formação de professoresNeuza Pedro
 
Aprendizagens Essenciais TIC: transversalidade como solução e problema
Aprendizagens Essenciais TIC: transversalidade como solução e problemaAprendizagens Essenciais TIC: transversalidade como solução e problema
Aprendizagens Essenciais TIC: transversalidade como solução e problemaNeuza Pedro
 
COIED2_Teresa Martinho Marques
COIED2_Teresa Martinho MarquesCOIED2_Teresa Martinho Marques
COIED2_Teresa Martinho MarquesCOIED
 
Salas de aula do futuro: o conceito, o motivo e um exemplo
Salas de aula do futuro: o conceito, o motivo e um exemploSalas de aula do futuro: o conceito, o motivo e um exemplo
Salas de aula do futuro: o conceito, o motivo e um exemploNeuza Pedro
 

Destaque (20)

FTELab: a future classroom in higher education for redesigning teachers' init...
FTELab: a future classroom in higher education for redesigning teachers' init...FTELab: a future classroom in higher education for redesigning teachers' init...
FTELab: a future classroom in higher education for redesigning teachers' init...
 
Redesigning classrooms for the future
Redesigning classrooms for the futureRedesigning classrooms for the future
Redesigning classrooms for the future
 
Future Teacher education Lab: espaço inovador para a formação de professores
Future Teacher education Lab: espaço inovador para a formação de professoresFuture Teacher education Lab: espaço inovador para a formação de professores
Future Teacher education Lab: espaço inovador para a formação de professores
 
Design de Cenários de Aprendizagem - Formação de professores
Design de Cenários de Aprendizagem - Formação de professoresDesign de Cenários de Aprendizagem - Formação de professores
Design de Cenários de Aprendizagem - Formação de professores
 
Elementos essenciais em Investigação em Educação
Elementos essenciais em Investigação em EducaçãoElementos essenciais em Investigação em Educação
Elementos essenciais em Investigação em Educação
 
Sala de aula_futuro_workshop_12nov2016
Sala de aula_futuro_workshop_12nov2016Sala de aula_futuro_workshop_12nov2016
Sala de aula_futuro_workshop_12nov2016
 
Future Teacher education Lab: results after 2 years of use
Future Teacher education Lab: results after 2 years of useFuture Teacher education Lab: results after 2 years of use
Future Teacher education Lab: results after 2 years of use
 
Recursos tecnologicos na educacao moda_ou_necessidade
Recursos tecnologicos na educacao moda_ou_necessidadeRecursos tecnologicos na educacao moda_ou_necessidade
Recursos tecnologicos na educacao moda_ou_necessidade
 
COIED2_Robots na aula de Matemática
COIED2_Robots na aula de MatemáticaCOIED2_Robots na aula de Matemática
COIED2_Robots na aula de Matemática
 
Future Classrooms: novos designs, ferramentas e pedagogias
Future Classrooms: novos designs, ferramentas e pedagogiasFuture Classrooms: novos designs, ferramentas e pedagogias
Future Classrooms: novos designs, ferramentas e pedagogias
 
Tablets Quadros interactivos e salas de aula = inovação pedagogica?
Tablets Quadros interactivos e salas de aula = inovação pedagogica?Tablets Quadros interactivos e salas de aula = inovação pedagogica?
Tablets Quadros interactivos e salas de aula = inovação pedagogica?
 
Uso das TIC em projetos Comenius
Uso das TIC em projetos ComeniusUso das TIC em projetos Comenius
Uso das TIC em projetos Comenius
 
Inovação pedagógica e tecnologias no Ensino Superior: um framework
Inovação pedagógica e tecnologias no Ensino Superior: um frameworkInovação pedagógica e tecnologias no Ensino Superior: um framework
Inovação pedagógica e tecnologias no Ensino Superior: um framework
 
E learning in higher education analyzing critical factors
E learning in higher education analyzing critical factorsE learning in higher education analyzing critical factors
E learning in higher education analyzing critical factors
 
Aplicações móveis na Educação etwinning
Aplicações móveis na Educação etwinningAplicações móveis na Educação etwinning
Aplicações móveis na Educação etwinning
 
FertiliTIC
FertiliTICFertiliTIC
FertiliTIC
 
Novos espaços e novas metodologias, o fator crítico: a formação de professores
Novos espaços e novas metodologias, o fator crítico: a formação de professoresNovos espaços e novas metodologias, o fator crítico: a formação de professores
Novos espaços e novas metodologias, o fator crítico: a formação de professores
 
Aprendizagens Essenciais TIC: transversalidade como solução e problema
Aprendizagens Essenciais TIC: transversalidade como solução e problemaAprendizagens Essenciais TIC: transversalidade como solução e problema
Aprendizagens Essenciais TIC: transversalidade como solução e problema
 
COIED2_Teresa Martinho Marques
COIED2_Teresa Martinho MarquesCOIED2_Teresa Martinho Marques
COIED2_Teresa Martinho Marques
 
Salas de aula do futuro: o conceito, o motivo e um exemplo
Salas de aula do futuro: o conceito, o motivo e um exemploSalas de aula do futuro: o conceito, o motivo e um exemplo
Salas de aula do futuro: o conceito, o motivo e um exemplo
 

Semelhante a Programação orientada a objetos

Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Ryan Padilha
 
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 vbaWanderlei Silva do Carmo
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04Antonio Alves
 
Orientação a objetos php
Orientação a objetos   phpOrientação a objetos   php
Orientação a objetos phpsecomp2011
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – IIGabriel Faustino
 
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
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosGeorge Mendonça
 
Orientação a objetos com PHP
Orientação a objetos com PHPOrientação a objetos com PHP
Orientação a objetos com PHPLeonardo Soares
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1Filipo Mór
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Marcelo Zeferino
 
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
 
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
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Sérgio Souza Costa
 
Poo slides01
Poo slides01Poo slides01
Poo slides01jmtofoli
 

Semelhante a Programação orientada a objetos (20)

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
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
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 de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04
 
Java7
Java7Java7
Java7
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Orientação a objetos php
Orientação a objetos   phpOrientação a objetos   php
Orientação a objetos php
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 
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 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Orientação a objetos com PHP
Orientação a objetos com PHPOrientação a objetos com PHP
Orientação a objetos com PHP
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1
 
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
 
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
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++
 
Virada Tecnológica 2017
Virada Tecnológica 2017Virada Tecnológica 2017
Virada Tecnológica 2017
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 

Programação orientada a objetos

  • 1. PROGRAMAÇÃO ORIENTADA A OBJETOS POO Cleyton Ferrari @cleytonferrari Fone: 69 9975-0504 TISelvagem.com.br cleytonferrari@hotmail.com Link apresentação no YouTube: http://youtu.be/dtNZi5EV2hs
  • 2. Introdução a POO Classe e Objeto Método Herança Encapsulamento Abstração Polimorfismo Interface Coesão / Acoplamento
  • 5. Programação Orientada a Objetos? É UM PARADIGMA DE PROGRAMAÇÃO
  • 6. Programação Orientada a Objetos? UM ESTILO DE PROGRAMAÇÃO
  • 7. Programação Orientada a Objetos? EXISTEM OUTRAS E muito mais... Orientada a Teste, Escalar, Restritiva, Genérica.... Lógico Prolog – Popler - QLISP Imperativo/Procedural Pascal – Fortran - Basic Funcional/Descritiva ML – F# - Haskell
  • 8. Programação Orientada a Objetos? • Mais fácil descrever o mundo real através dos objetos • O encapsulamento facilita a manutenção do código • Maior facilidade para reutilização de código • Complexidade no aprendizado em comparação com a programação estruturada • Seus conceitos são de difícil compreensão
  • 9. Programação Orientada a Objetos? RESUMO POO é um paradigma de programação que usa "objetos" compostos por campos e métodos, justamente com suas interações - para projetar programas de computadores. http://en.wikipedia.org/wiki/Object-oriented_programming POO é uma forma especial de programar, mais próximo de como expressaríamos as coisas na vida real do que outros tipos de programação. http://www.criarweb.com/artigos/215.php POO é organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam estes dados e trocam mensagens entre si. http://www.macoratti.net/oo_conc2.htm
  • 10. CLASSE Uma classe é uma estrutura que abstrai um conjunto de objetos com características similares. É como um projeto, a partir dela que criamos os objetos utilizados em nossos programas. http://en.wikipedia.org/wiki/Object-oriented_programming
  • 11. Classe: Atributos Os Atributos em Programação Orientada a Objetos são os elementos que definem a estrutura de uma classe, ou seja suas características. http://en.wikipedia.org/wiki/Object-oriented_programming
  • 12. Classe: Construtores Um construtor é uma estrutura especial da classe, um método, que tem como objetivo definir a configuração inicial de uma classe. É utilizado quando existem atributos da classe que são essenciais para o funcionamento do objeto, porém, são atributos de instância, e, assim, variam de acordo com cada objeto. http://www.webartz.com.br/php/php-orientado-a-objetos-conceitos-construtores-e- destrutores
  • 13. Classe: Destrutores Semelhante aos construtores, o destrutor também é uma estrutura, outro método, da classe, porém este é responsável por limpar a memória ou atributos utilizados na execução da classe. http://www.webartz.com.br/php/php-orientado-a-objetos-conceitos-construtores-e- destrutores
  • 14. Classe: Visibilidade Quem tem acesso à classe tem acesso também a qualquer membro com visibilidade public, é raro ter atributos públicos, mas é comum ter métodos públicos. http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm + Public O membro private não é acessível fora da classe, a intenção é que apenas quem escreve a classe possa usar esses membros. http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm - Private O membro protected é acessível à classe e a suas subclasses, a intenção é dar acesso aos programadores que estenderão sua classe. http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm # Protected
  • 15. Classe: Objeto Objetos são instâncias de classes. É através deles que (praticamente) todo o processamento ocorre em sistemas implementados com linguagens de programação orientadas a objetos. Programação orientada a objetos uma abordagem com Java. No paradigma de orientação a objetos, tudo pode ser potencialmente representado como um objeto. Sob o ponto de vista da programação orientada a objetos, um objeto não é muito diferente de uma variável normal. Programação orientada a objetos uma abordagem com Java.
  • 16. MÉTODO Um método é uma subrotina que é executada por um objeto ao receber uma mensagem. Os métodos determinam o comportamento dos objetos de uma classe. http://en.wikipedia.org/wiki/Object-oriented_programming
  • 17. Método: Assinatura Cada método é especificado por uma assinatura, composta por um identificador para o método (o nome do método), o tipo para o valor de retorno e sua lista de argumentos, sendo cada argumento identificado por seu tipo e nome. Programação orientada a objetos uma abordagem com Java. [modificador] tipo nome (argumentos) { corpo do método } Através do mecanismo de sobrecarga (overloading), dois métodos de uma classe podem ter o mesmo nome, desde que suas assinaturas de argumentos sejam diferentes. Programação orientada a objetos uma abordagem com Java.
  • 18. Método: Sobrecarga São métodos que tem o mesmo nome, mas com argumentos diferentes. http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html Lista de Argumentos diferentes Podem alterar o tipo de retorno Podem alterar o modificador de acesso Declarar exceções novas ou mais abrangentes Características
  • 19. Método: Mensagens Um programa orientado a objetos é composto por um conjunto de objetos que interagem através de “trocas de mensagens”. Na prática, essa troca de mensagem traduz-se na aplicação de métodos a objetos. Programação orientada a objetos uma abordagem com Java.
  • 20. Método: Estáticos Usualmente, métodos definidos em uma classe são aplicados a objetos daquela classe. Há no entanto situações nas quais um método pode fazer uso dos recursos de uma classe para realizar sua tarefa sem necessariamente estar associado a um objeto individualmente. Programação orientada a objetos uma abordagem com Java. Para lidar com tais situações, define os métodos da classe, cuja declaração deve conter o modificador static. Um método estático pode ser aplicado à classe e não necessariamente a um objeto. Programação orientada a objetos uma abordagem com Java.
  • 21. HERANÇA Herança é um mecanismo que permite que características comuns a diversas classes sejam fatoradas em uma classe base, ou superclasse. A partir de uma classe base, outras classes podem ser especificadas. Programação orientada a objetos uma abordagem com Java.
  • 22. Herança: Sobreposição A sobreposição refere-se à redefinição de métodos na hierarquia da herança, de forma que estes métodos implementam definições diferentes (mais especializadas) nos subtipos. http://arquiteturaemobilidade.blogspot.com/2008/07/conceitos-da-orientao-objetos- com-uml_08.html
  • 23. ENCAPSULAMENTO É o princípio pelo qual cada componente de um programa deve agregar toda a informação relevante para sua manipulação como uma unidade (uma cápsula). Aliado ao conceito de ocultamento de informação. Programação orientada a objetos uma abordagem com Java.
  • 24. ABSTRAÇÃO Abstração é o processo de extrair as características essenciais de um objeto real. A abstração é necessária para se ter um modelo fiel da realidade sobre a qual se possa operar. http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos O conjunto de características resultante da abstração forma um tipo de dado abstrato com informações sobre seu estado e comportamento. http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos
  • 25. POLIMORFISMO O polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, um mesmo método pode apresentar várias formas, de acordo com o seu contexto. http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos
  • 26. INTERFACE É um conjunto de métodos que um objeto deve suportar, mas contendo apenas a especificação da funcionalidade que uma classe deve conter, sem determinar como essa funcionalidade deve ser implementadas. Programação orientada a objetos uma abordagem com Java.
  • 27. COESÃO / ACOPLAMENTO Acoplamento é o grau que uma classe depende, interage com outra classe. Coesão refere a finalidade que a classe foi criada. http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html Quanto menos uma classe depende da outra, menor o acoplamento, e maior a especialização dela, isso significa alta coesão. http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html
  • 28. DEMO