SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
Metodologia e Linguagem
de Programação
Prof. Daniel Brandão
 Orientação a Objetos:
 Paradigma que procura compor modelos de forma mais próxima às
interações existentes no mundo real, cujas primeiras propostas
datam da década de 60;
 A POO define que objetos se comunicam através da troca de
mensagens para promover a troca de serviços;
Revisão Java OO
Conceito de Objetos
 O que seria um objeto?
 Uma entidade capaz de reter um estado através de
propriedades(atributos) e que oferece uma série de operações
(comportamentos/métodos) para visualizar ou modificar seu estado.
Métodos seriam o mesmo que funções e procedimentos.
Princípios da Orientação à Objetos 3
Conceito de Objetos
 De maneira objetiva, um objeto deve possuir:
 Um estado (atributos)
 Um comportamento (métodos)
 Interface (assinaturas dos métodos)
 Uma identidade (Ljava.lang.String;@13aaa14a)
Princípios da Orientação à Objetos 4
 Analogia:
 Problema: Guiar um carro.
 Mas antes disso, o que precisa?
 Alguém tem que projetar...
 Desenhos de engenharia elaboram o projeto
Revisão Java OO
 Analogia:
 Problema: Guiar um carro.
 No Projeto temos:
 Pedais de acelerador, de freio...
 ‘Ocultam’ os complexos mecanismos que
realmente fazem o veículo funcionar;
Revisão Java OO
 Problema: Guiar um carro.
 Podemos guiar um carro que está ainda no projeto?
 Não... Infelizmente não podemos guiar os desenhos de
engenharia de um carro!
Revisão Java OO
 Problema: Guiar um carro.
 Antes de guiar, ele deve ser construído a partir dos
desenhos de engenharia que o descrevem:
Revisão Java OO
 Problema: Guiar um carro.
 Ok, o carro está pronto... Mas ele consegue acelerar
sozinho?
 Não... O motorista tem que pressionar o pedal do
acelerador!
Revisão Java OO
 Analogia:
 Para executar tarefa (rotinas) em um programa é
necessário um método;
 O método descreve os mecanismos que realmente
realizam suas tarefas;
 Ocultando de seu usuário as tarefas complexas que
este realiza...
 Assim como...
 Os pedais do nosso carro!
Revisão Java OO
 Em Java:
 Primeiro criamos uma unidade de programa chamada
classe para abrigar esses tais métodos;
 Você pode fornecer um ou mais métodos que são
projetados para realizar as tarefas da classe;
 Por Exemplo....
 Uma classe Conta pode abrigar os métodos
(tarefas) depositar, debitar, perguntar o saldo
atual...
Revisão Java OO
 Em Java:
 Assim como não podemos dirigir um projeto de um
carro, não podemos executar métodos de uma classe;
 Assim como alguém tem que construir esse carro a
partir do seu projeto, você deve construir um objeto
de uma classe antes de fazer um programa realizar as
tarefas que a classe descreve como fazer;
Revisão Java OO
 Analogia:
 Além das capacidades do carro, ele também possui
características...
 Cor, modelo, quantidade de portas...
 Essas capacidades também são descritas no projeto
de engenharia do carro...
 Cada carro mantém seus próprios atributos.
Revisão Java OO
 Em Java:
 Um objeto tem atributos que são portados consigo
quando este é utilizado em um programa;
 Por Exemplo:
 Uma classe conta possui:
 Número, Saldo, Tipo...
 Esses atributos são especificados pelas chamadas
variáveis de instância.
Revisão Java OO
Conceito de Objetos
 Um exemplo, um celular:
 Identificação
 Número: (83)9999-9999
 Outras propriedades
 Largura: 58,6 mm
 Altura: 115,2 mm
 Cor: Branco
 Comportamento
 Ligar
 Desligar
 Efetuar chamadas
Princípios da Orientação à Objetos
15
Fonte: http://store.apple.com/
Conceito de Objetos
 Porém um objeto sozinho não representa um sistema;
 Um sistema é representado por vários objetos distintos ativos, que
podem ser chamados de instância;
 E a comunicação entre esses objetos ocorre através de
mensagens, e o envio de cada mensagem significa executar um
método;
Princípios da Orientação à Objetos 16
Objeto Conta Bancária
Princípios da Orientação à Objetos 17
O estado atual
da conta
Comportamento:
operações que
uma conta pode
executar
creditar
debitar
número saldo
“123-x” 54,78
Estado do Objeto Conta
Princípios da Orientação à Objetos 18
creditar
debitar
número saldo
“123-x” 54,78
creditar
debitar
número saldo
“123-x” 74,78
creditar (20)
Comportamento mudou o estado do objeto conta bancária
Conceito de Classes
 Voltando para o exemplo do carro, existem vários carros
de vários modelos. Um objeto Pajero é um instância da
classe Carro;
 Carros de modelos diferentes possuem características e
comportamentos diferentes;
 Logo, pode-se concluir que uma classe é uma espécie de
modelo (protótipo) que agrupa as características e os
comportamentos em comum aos objetos do mesmo tipo;
Princípios da Orientação à Objetos 19
Conceito de Classes
 É na classe que definimos as variáveis e os métodos que
serão utilizados e os objetos são criados (instanciados) a
partir das classes;
 Cada objeto possui seu espaço de memória individual,
assim como suas variáveis;
 Tais variáveis são denominadas de variáveis de instâncias
(atributos);
Princípios da Orientação à Objetos 20
Classe x Objeto
21
creditar
debitar
número saldo
“123-x” 54,78
creditar
debitar
número saldo
“123-x” 54,78
creditar
debitar
número saldo
“123-x” 54,78
Conta
Múltiplos objetos
criados a partir da
mesma classe
Benefícios da O.O.
 Acelerar o tempo de desenvolvimento;
 Reduzir o tempo de manutenção;
 Mais fácil de entender e adaptar;
 Código de melhor qualidade;
Princípios da Orientação à Objetos 22
Classe ≠ Objeto
Princípios da Orientação à Objetos 23
Lembrem-se!
Lâmpada
- EstadoDaLampada
+ acende()
+ apaga ()
+ mostrarEstado ()
Princípios da Orientação à Objetos 24
Atributo
Métodos
 Toda e qualquer classe criada
herda da classe “Object”, ou
seja, define e implementa um
objeto;
 Chamamos de Herança!
Revisão Java OO
E em java?
 Classe Lâmpada:
Princípios da Orientação à Objetos 31
Palavra reservada class seguida do nome
da classe
Parâmetro, conjunto de caracter
A declaração de método
possui respectivamente:
O modificador de acesso
•O tipo de retorno
•Nome do método
•Lista de parâmetros
para recebimento
(tipo, nome)
E em java?
 Instanciando Objetos
32
Para instanciar um objeto, é
necessário informar a Classe a
que este pertence, designar
um nome para ele, e utilizar a
palavra reservada new antes
da chamada do método
construtor –
responsável por iniciar os
parâmetros (características)
do novo objeto.
Para acessar, ou realizar
uma chamada, de um
método ou parâmetro é
utilizado o ponto (.)
seguido do nome do
método
 A classe é a entidade responsável por definir os
atributos (características) e os métodos (serviços) que
serão oferecidos.
Revisão Java OO
Nome da
Classe
Atributos
Métodos
Como executar aplicações
 Uma classe pode definir um método “main”;
 É o método responsável pela execução da
aplicação;
 Uma aplicação pode conter vários métodos
“main” (um em cada classe), mas apenas um
desses será definido como o método da
aplicação;
Assinatura de main
 Ponto de início de toda aplicação Java.
public static void main(String [ ] args){
}
Exemplo do HelloWorld
Como criar e acessar objetos?
 Para criar, use o operador new
 Para acessar atributos e métodos, utilize o “.”
(ponto)
 Exemplo
Exercício 1
 Crie um projeto no eclipse denominado
FabricaCelular
 Crie a classe Celular e defina os atributos e métodos
vistos no slide anterior.
Exercício 1
 No projeto FabricaCelular crie uma classe
chamada Programa.
 Nesta classe, crie um método main.
 Dentro do main, crie uma instância de sua
classe Celular
 Acesse e imprima seus atributos no console
Exercício 2
 Crie uma classe Conta
 atributos (numero e saldo);
 métodos (creditar, debitar, getSaldo, getNumero);
 Cria uma classe Programa para usar a Conta
 Envio da atividade para:
professordanielbrandao@gmail.com
Orientação à Objetos 40
Relacionamentos entre objetos
 A POO define que podemos montar objetos a partir
de objetos
 Essa união acontece de duas formas:
 Agregação
Relacionamento fraco
 Composição
Relacionamento forte
 Herança
Relacionamentos entre objetos
 Agregação e Composição são conhecidos como
relacionamentos TEM UM
 Herança é um tipo de relacionamento É UM
Relacionamentos TEM UM
 Agregação
 Um objeto “ O1 ” é definido pela agregação de
alguns outros objetos;
 Se o objeto “O1” for destruído, os objetos nele
contidos ainda serão válidos;
 Ou seja, existe uma dependência “fraca” entre o
objeto “O1” e seus objetos contidos.
Relacionamento TEM UM
Exemplo de Agregação
Relacionamentos TEM UM
 Composição
 Um objeto “O1” é definido pela composição de
alguns outros objetos;
 Se o objeto “O1” for destruído, todos os objetos
nele contidos serão também destruídos;
 Ou seja, existe uma dependência “forte” entre o
objeto “O1” e seus objetos contidos.
Relacionamento TEM UM
Exemplo de composição
Lâmpada
- EstadoDaLampada
+ acende()
+ apaga ()
+ mostrarEstado ()
47
Atributo
Métodos
Orientação à Objetos
Seção Mundo Java
 Especializada em Java;
 Revista de maior circulação
nacional sobre o tema;
 Edição 135;
 Java 8;
 Primeiros passos...;
 http://www.devmedia.com.
br/revistas/
48
Bibliografia
 Caelum. Apostila do curso Java e Orientação a Objetos.
Disponível em: http://www.caelum.com.br/apostilas/
 Kathy Sierra e Bert Bates. Java Use a Cabeça. 2º Edição.
AltaBooks – Rio de Janeiro, 2007.
 Prof. Sérgio Soares. Orientação a Objetos e Java. Disponível
em:
<http://www.cin.ufpe.br/~if101/especializacao/Java2.html>
 Prof. Jacques Sauvé. Orientação a Objetos. Disponível em:
<http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/p2-
2.htm>
Princípios da Orientação à Objetos 51

Contenu connexe

Tendances

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
 
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
 
JAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTOJAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTOAndré Victor
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetossoncino
 
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 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoVinícius de Paula
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfacesRafael Pinheiro
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
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
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02thomasdacosta
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0César Augusto Pessôa
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01thomasdacosta
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo LógicoCentro Paula Souza
 

Tendances (20)

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
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
JAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTOJAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTO
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
POO - Aula 1
POO - Aula 1POO - Aula 1
POO - Aula 1
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
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)
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo Lógico
 

En vedette

Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisDaniel Brandão
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em JavaDaniel Brandão
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesDaniel Brandão
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorDaniel Brandão
 
Fórmulas Condicionais em Excel
Fórmulas Condicionais em ExcelFórmulas Condicionais em Excel
Fórmulas Condicionais em ExcelDaniel Brandão
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringDaniel Brandão
 
Aula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, InformaçãoAula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, InformaçãoDaniel Brandão
 
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 04 Sistema de Informação - Processo e Requisitos de SistemasAula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 04 Sistema de Informação - Processo e Requisitos de SistemasDaniel Brandão
 
Excel - Fórmulas Básicas
Excel -  Fórmulas BásicasExcel -  Fórmulas Básicas
Excel - Fórmulas BásicasDaniel Brandão
 
Aula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoAula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoDaniel Brandão
 
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosDaniel Brandão
 
Aula 3 Sistemas de Informação - Tipos de SI
Aula 3 Sistemas de Informação - Tipos de SIAula 3 Sistemas de Informação - Tipos de SI
Aula 3 Sistemas de Informação - Tipos de SIDaniel Brandão
 
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 ClasseFelipe J. R. Vieira
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosDaniel Brandão
 
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
 
Heurística, Principios e Usabilidade na web
Heurística, Principios e Usabilidade na webHeurística, Principios e Usabilidade na web
Heurística, Principios e Usabilidade na webDaniel Brandão
 
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 objetosFelipe J. R. Vieira
 

En vedette (20)

Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
Fórmulas Condicionais em Excel
Fórmulas Condicionais em ExcelFórmulas Condicionais em Excel
Fórmulas Condicionais em Excel
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
 
Aula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, InformaçãoAula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, Informação
 
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 04 Sistema de Informação - Processo e Requisitos de SistemasAula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
 
Excel - Fórmulas Básicas
Excel -  Fórmulas BásicasExcel -  Fórmulas Básicas
Excel - Fórmulas Básicas
 
Aula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoAula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de Informação
 
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
 
Aula 3 Sistemas de Informação - Tipos de SI
Aula 3 Sistemas de Informação - Tipos de SIAula 3 Sistemas de Informação - Tipos de SI
Aula 3 Sistemas de Informação - Tipos de SI
 
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
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
 
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
 
Heurística, Principios e Usabilidade na web
Heurística, Principios e Usabilidade na webHeurística, Principios e Usabilidade na web
Heurística, Principios e Usabilidade na web
 
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
 

Similaire à Aula 02 - Principios da Orientação a Objetos (POO)

Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosArthur Emanuel
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoLuciano Almeida
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasBreno Vitorino
 
1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdfJoberthSilva
 
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 a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetosCícero Quarto
 
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
 
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
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e ExercíciosArthur Emanuel
 
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
 
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
 

Similaire à Aula 02 - Principios da Orientação a Objetos (POO) (20)

Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
POO.pdf
POO.pdfPOO.pdf
POO.pdf
 
aula 1.pptx
aula 1.pptxaula 1.pptx
aula 1.pptx
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a Objetos
 
Java7
Java7Java7
Java7
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Aula 01 introdução aoo
Aula 01   introdução aooAula 01   introdução aoo
Aula 01 introdução aoo
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A Objeto
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf
 
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 a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetos
 
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
 
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
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 
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
 
Introducao basica-linguagem-java
Introducao basica-linguagem-javaIntroducao basica-linguagem-java
Introducao basica-linguagem-java
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
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
 

Plus de Daniel Brandão

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
 
Sapiens - Feedback de Prática Docente com Google Forms
Sapiens - Feedback de Prática Docente com Google FormsSapiens - Feedback de Prática Docente com Google Forms
Sapiens - Feedback de Prática Docente com Google FormsDaniel Brandão
 
{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-endDaniel Brandão
 
Introdução à informática
Introdução à informáticaIntrodução à informática
Introdução à informáticaDaniel Brandão
 
Aula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaDaniel Brandão
 
Incluir para evoluir - Palestra
Incluir para evoluir - PalestraIncluir para evoluir - Palestra
Incluir para evoluir - PalestraDaniel Brandão
 
Criação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material DesignCriação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material DesignDaniel Brandão
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLDaniel Brandão
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalDaniel Brandão
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a InformáticaDaniel Brandão
 
Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Daniel Brandão
 

Plus de Daniel Brandão (12)

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
 
Sapiens - Feedback de Prática Docente com Google Forms
Sapiens - Feedback de Prática Docente com Google FormsSapiens - Feedback de Prática Docente com Google Forms
Sapiens - Feedback de Prática Docente com Google Forms
 
{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end
 
Introdução à informática
Introdução à informáticaIntrodução à informática
Introdução à informática
 
Aula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem Java
 
Incluir para evoluir - Palestra
Incluir para evoluir - PalestraIncluir para evoluir - Palestra
Incluir para evoluir - Palestra
 
Criação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material DesignCriação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material Design
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - Relacional
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
 
Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010
 

Aula 02 - Principios da Orientação a Objetos (POO)

  • 1. Metodologia e Linguagem de Programação Prof. Daniel Brandão
  • 2.  Orientação a Objetos:  Paradigma que procura compor modelos de forma mais próxima às interações existentes no mundo real, cujas primeiras propostas datam da década de 60;  A POO define que objetos se comunicam através da troca de mensagens para promover a troca de serviços; Revisão Java OO
  • 3. Conceito de Objetos  O que seria um objeto?  Uma entidade capaz de reter um estado através de propriedades(atributos) e que oferece uma série de operações (comportamentos/métodos) para visualizar ou modificar seu estado. Métodos seriam o mesmo que funções e procedimentos. Princípios da Orientação à Objetos 3
  • 4. Conceito de Objetos  De maneira objetiva, um objeto deve possuir:  Um estado (atributos)  Um comportamento (métodos)  Interface (assinaturas dos métodos)  Uma identidade (Ljava.lang.String;@13aaa14a) Princípios da Orientação à Objetos 4
  • 5.  Analogia:  Problema: Guiar um carro.  Mas antes disso, o que precisa?  Alguém tem que projetar...  Desenhos de engenharia elaboram o projeto Revisão Java OO
  • 6.  Analogia:  Problema: Guiar um carro.  No Projeto temos:  Pedais de acelerador, de freio...  ‘Ocultam’ os complexos mecanismos que realmente fazem o veículo funcionar; Revisão Java OO
  • 7.  Problema: Guiar um carro.  Podemos guiar um carro que está ainda no projeto?  Não... Infelizmente não podemos guiar os desenhos de engenharia de um carro! Revisão Java OO
  • 8.  Problema: Guiar um carro.  Antes de guiar, ele deve ser construído a partir dos desenhos de engenharia que o descrevem: Revisão Java OO
  • 9.  Problema: Guiar um carro.  Ok, o carro está pronto... Mas ele consegue acelerar sozinho?  Não... O motorista tem que pressionar o pedal do acelerador! Revisão Java OO
  • 10.  Analogia:  Para executar tarefa (rotinas) em um programa é necessário um método;  O método descreve os mecanismos que realmente realizam suas tarefas;  Ocultando de seu usuário as tarefas complexas que este realiza...  Assim como...  Os pedais do nosso carro! Revisão Java OO
  • 11.  Em Java:  Primeiro criamos uma unidade de programa chamada classe para abrigar esses tais métodos;  Você pode fornecer um ou mais métodos que são projetados para realizar as tarefas da classe;  Por Exemplo....  Uma classe Conta pode abrigar os métodos (tarefas) depositar, debitar, perguntar o saldo atual... Revisão Java OO
  • 12.  Em Java:  Assim como não podemos dirigir um projeto de um carro, não podemos executar métodos de uma classe;  Assim como alguém tem que construir esse carro a partir do seu projeto, você deve construir um objeto de uma classe antes de fazer um programa realizar as tarefas que a classe descreve como fazer; Revisão Java OO
  • 13.  Analogia:  Além das capacidades do carro, ele também possui características...  Cor, modelo, quantidade de portas...  Essas capacidades também são descritas no projeto de engenharia do carro...  Cada carro mantém seus próprios atributos. Revisão Java OO
  • 14.  Em Java:  Um objeto tem atributos que são portados consigo quando este é utilizado em um programa;  Por Exemplo:  Uma classe conta possui:  Número, Saldo, Tipo...  Esses atributos são especificados pelas chamadas variáveis de instância. Revisão Java OO
  • 15. Conceito de Objetos  Um exemplo, um celular:  Identificação  Número: (83)9999-9999  Outras propriedades  Largura: 58,6 mm  Altura: 115,2 mm  Cor: Branco  Comportamento  Ligar  Desligar  Efetuar chamadas Princípios da Orientação à Objetos 15 Fonte: http://store.apple.com/
  • 16. Conceito de Objetos  Porém um objeto sozinho não representa um sistema;  Um sistema é representado por vários objetos distintos ativos, que podem ser chamados de instância;  E a comunicação entre esses objetos ocorre através de mensagens, e o envio de cada mensagem significa executar um método; Princípios da Orientação à Objetos 16
  • 17. Objeto Conta Bancária Princípios da Orientação à Objetos 17 O estado atual da conta Comportamento: operações que uma conta pode executar creditar debitar número saldo “123-x” 54,78
  • 18. Estado do Objeto Conta Princípios da Orientação à Objetos 18 creditar debitar número saldo “123-x” 54,78 creditar debitar número saldo “123-x” 74,78 creditar (20) Comportamento mudou o estado do objeto conta bancária
  • 19. Conceito de Classes  Voltando para o exemplo do carro, existem vários carros de vários modelos. Um objeto Pajero é um instância da classe Carro;  Carros de modelos diferentes possuem características e comportamentos diferentes;  Logo, pode-se concluir que uma classe é uma espécie de modelo (protótipo) que agrupa as características e os comportamentos em comum aos objetos do mesmo tipo; Princípios da Orientação à Objetos 19
  • 20. Conceito de Classes  É na classe que definimos as variáveis e os métodos que serão utilizados e os objetos são criados (instanciados) a partir das classes;  Cada objeto possui seu espaço de memória individual, assim como suas variáveis;  Tais variáveis são denominadas de variáveis de instâncias (atributos); Princípios da Orientação à Objetos 20
  • 21. Classe x Objeto 21 creditar debitar número saldo “123-x” 54,78 creditar debitar número saldo “123-x” 54,78 creditar debitar número saldo “123-x” 54,78 Conta Múltiplos objetos criados a partir da mesma classe
  • 22. Benefícios da O.O.  Acelerar o tempo de desenvolvimento;  Reduzir o tempo de manutenção;  Mais fácil de entender e adaptar;  Código de melhor qualidade; Princípios da Orientação à Objetos 22
  • 23. Classe ≠ Objeto Princípios da Orientação à Objetos 23 Lembrem-se!
  • 24. Lâmpada - EstadoDaLampada + acende() + apaga () + mostrarEstado () Princípios da Orientação à Objetos 24 Atributo Métodos
  • 25.  Toda e qualquer classe criada herda da classe “Object”, ou seja, define e implementa um objeto;  Chamamos de Herança! Revisão Java OO
  • 26. E em java?  Classe Lâmpada: Princípios da Orientação à Objetos 31 Palavra reservada class seguida do nome da classe Parâmetro, conjunto de caracter A declaração de método possui respectivamente: O modificador de acesso •O tipo de retorno •Nome do método •Lista de parâmetros para recebimento (tipo, nome)
  • 27. E em java?  Instanciando Objetos 32 Para instanciar um objeto, é necessário informar a Classe a que este pertence, designar um nome para ele, e utilizar a palavra reservada new antes da chamada do método construtor – responsável por iniciar os parâmetros (características) do novo objeto. Para acessar, ou realizar uma chamada, de um método ou parâmetro é utilizado o ponto (.) seguido do nome do método
  • 28.  A classe é a entidade responsável por definir os atributos (características) e os métodos (serviços) que serão oferecidos. Revisão Java OO Nome da Classe Atributos Métodos
  • 29. Como executar aplicações  Uma classe pode definir um método “main”;  É o método responsável pela execução da aplicação;  Uma aplicação pode conter vários métodos “main” (um em cada classe), mas apenas um desses será definido como o método da aplicação;
  • 30. Assinatura de main  Ponto de início de toda aplicação Java. public static void main(String [ ] args){ }
  • 32. Como criar e acessar objetos?  Para criar, use o operador new  Para acessar atributos e métodos, utilize o “.” (ponto)  Exemplo
  • 33. Exercício 1  Crie um projeto no eclipse denominado FabricaCelular  Crie a classe Celular e defina os atributos e métodos vistos no slide anterior.
  • 34. Exercício 1  No projeto FabricaCelular crie uma classe chamada Programa.  Nesta classe, crie um método main.  Dentro do main, crie uma instância de sua classe Celular  Acesse e imprima seus atributos no console
  • 35. Exercício 2  Crie uma classe Conta  atributos (numero e saldo);  métodos (creditar, debitar, getSaldo, getNumero);  Cria uma classe Programa para usar a Conta  Envio da atividade para: professordanielbrandao@gmail.com Orientação à Objetos 40
  • 36. Relacionamentos entre objetos  A POO define que podemos montar objetos a partir de objetos  Essa união acontece de duas formas:  Agregação Relacionamento fraco  Composição Relacionamento forte  Herança
  • 37. Relacionamentos entre objetos  Agregação e Composição são conhecidos como relacionamentos TEM UM  Herança é um tipo de relacionamento É UM
  • 38. Relacionamentos TEM UM  Agregação  Um objeto “ O1 ” é definido pela agregação de alguns outros objetos;  Se o objeto “O1” for destruído, os objetos nele contidos ainda serão válidos;  Ou seja, existe uma dependência “fraca” entre o objeto “O1” e seus objetos contidos.
  • 40. Relacionamentos TEM UM  Composição  Um objeto “O1” é definido pela composição de alguns outros objetos;  Se o objeto “O1” for destruído, todos os objetos nele contidos serão também destruídos;  Ou seja, existe uma dependência “forte” entre o objeto “O1” e seus objetos contidos.
  • 41. Relacionamento TEM UM Exemplo de composição
  • 42. Lâmpada - EstadoDaLampada + acende() + apaga () + mostrarEstado () 47 Atributo Métodos Orientação à Objetos
  • 43. Seção Mundo Java  Especializada em Java;  Revista de maior circulação nacional sobre o tema;  Edição 135;  Java 8;  Primeiros passos...;  http://www.devmedia.com. br/revistas/ 48
  • 44. Bibliografia  Caelum. Apostila do curso Java e Orientação a Objetos. Disponível em: http://www.caelum.com.br/apostilas/  Kathy Sierra e Bert Bates. Java Use a Cabeça. 2º Edição. AltaBooks – Rio de Janeiro, 2007.  Prof. Sérgio Soares. Orientação a Objetos e Java. Disponível em: <http://www.cin.ufpe.br/~if101/especializacao/Java2.html>  Prof. Jacques Sauvé. Orientação a Objetos. Disponível em: <http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/p2- 2.htm> Princípios da Orientação à Objetos 51