SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
Nécio de Lima Veras
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
Daniel Brandão
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
Igor Takenami
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
Elaine Cecília Gatto
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
Alberto Simões
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
Professor Samuel Ribeiro
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
Moises Omena
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
Jorge Ávila Miranda
 
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
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
Álvaro Farias Pinheiro
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
Leinylson Fontinele
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
Elaine Cecília Gatto
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
Fabrício Lopes Sanchez
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
Professor Samuel Ribeiro
 
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
Viní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, interfaces
Rafael Pinheiro
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
thomasdacosta
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
licardino
 
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 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
Leinylson Fontinele
 

Mais procurados (20)

Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
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
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
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
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
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 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
 

Destaque

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
Daniel Brandão
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
Daniel Brandão
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
Daniel 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 Sessoes
Daniel Brandão
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
Daniel Brandão
 
Fórmulas Condicionais em Excel
Fórmulas Condicionais em ExcelFórmulas Condicionais em Excel
Fórmulas Condicionais em Excel
Daniel 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 Querystring
Daniel Brandão
 
Aula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, InformaçãoAula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, Informação
Daniel 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 Sistemas
Daniel Brandão
 
Excel - Fórmulas Básicas
Excel -  Fórmulas BásicasExcel -  Fórmulas Básicas
Excel - Fórmulas Básicas
Daniel 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ção
Daniel 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 Arquivos
Daniel 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 SI
Daniel Brandão
 
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
 
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
Daniel 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 web
Daniel Brandão
 
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
 

Destaque (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
 
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 - 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
 
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
 

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

Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
Secretaria de Educação de Goiás
 
POO.pdf
POO.pdfPOO.pdf
POO.pdf
TekosTeko
 
aula 1.pptx
aula 1.pptxaula 1.pptx
aula 1.pptx
EduquesuaRedeSocial
 
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
Arthur Emanuel
 
Java7
Java7Java7
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
Juliano 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
 
Aula 01 introdução aoo
Aula 01   introdução aooAula 01   introdução aoo
Aula 01 introdução aoo
Maria Alice Jovinski
 
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
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
Breno Vitorino
 
1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf
JoberthSilva
 
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
 
Introdução a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetos
Cí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 objetos
Né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ícios
Arthur 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 Objetos
danielrpgj30
 
Introducao basica-linguagem-java
Introducao basica-linguagem-javaIntroducao basica-linguagem-java
Introducao basica-linguagem-java
Clayton de Almeida Souza
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
Pedro De Almeida
 
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
 

Semelhante a 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
 

Mais 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 Java
Daniel 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 Forms
Daniel 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-end
Daniel Brandão
 
Introdução à informática
Introdução à informáticaIntrodução à informática
Introdução à informática
Daniel Brandão
 
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
Daniel 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 Java
Daniel Brandão
 
Incluir para evoluir - Palestra
Incluir para evoluir - PalestraIncluir para evoluir - Palestra
Incluir para evoluir - Palestra
Daniel 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 Design
Daniel Brandão
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
Daniel Brandão
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - Relacional
Daniel Brandão
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
Daniel Brandão
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
Daniel 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 2010
Daniel Brandão
 

Mais de Daniel Brandão (13)

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
 
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
 
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