SlideShare una empresa de Scribd logo
1 de 17
Orientação a Objetos
        utilizando a linguagem Java

                                     AULA 2




Ministrado por Endel Guimarães Silva, Pedro Ferraz, Wagner Takeshi Obara e Yuri Pádua
Resumo da aula


 Os tópicos cobertos por essa aula são


   Por que orientação a objetos?
   Classes, objetos e diferenças entre eles
   Métodos e atributos de uma classe
   Pensando de forma Orientada a Objetos
   Construtores
   Instâncias de uma classe
Por que Orientação a objetos?

 Necessidade

 Com o aumento da complexidade dos softwares
 desenvolvidos, foi preciso pensar em alguma forma de
 facilitar o processo de desenvolvimento e manutenção, de
 forma que a leitura e escrita do código se desse de uma
 forma mais natural.

 Além disso, era necessário ampliar as capacidades de reúso
 de peças de software pois desenvolvimento de código do
 zero (build from scratch) é muito caro.
Por que Orientação a objetos?

 Vantagens

 Com isso o código ficou mais flexível quanto a mudanças: é
 mais fácil acrescentar e modificar funcionalidades e o
 impacto dessas mudanças é bastante reduzido.

 Desvantagens

 Além disso, era necessário ampliar as capacidades de reúso
 de peças de software pois desenvolvimento de código a
 partir do zero (build from scratch) é muito caro.
Classes e objetos

 Def: uma classe é um modelo abstrato e genérico para
 objetos que compartilham o mesmo comportamento (mesmo
 conjunto de características e executam as mesmas ações)

 Ex: um aluno que está na quarta série faz as mesmas
 matérias que qualquer outro aluno da quarta série.

 Ex2: todos os operários de um mesmo setor numa linha de
 produção de uma fábrica têm as mesmas competências e
 têm as mesmas funções.

 Pode-se dizer que eles estão na mesma classe.
Classes e objetos

 Def: Um objeto ou instância é um representante particular
 de uma classe

 Ex: Joãozinho é um aluno da quarta série. Joãozinho é um
 representante da classe dos alunos da quarta série.

 Ex2: Zé e Chico são funcionários do setor de embalagem em
 uma linha de produção. Ambos são representantes da classe
 dos funcionários desse setor.
Classes e objetos

 Simplificando as definições

 Uma classe é semelhante à planta de uma casa. Não
 podemos entrar em uma planta.

 Uma instância é equivalente à casa pronta: além de termos
 várias casas diferentes, ter a casa pronta é o único jeito de
 entrar nela, abrir suas janelas, pintar suas portas, etc.
Atributos e métodos de uma classe

 Def: atributos são características de um objeto e refletem
  seu estado em um dado momento

 Ex: Nome, cor dos olhos, cor do cabelo, altura, etc. são
  características de uma pessoa

 Ex2: Altura em metros, número de andares, número de
  salas, etc. são características de um prédio
Atributos e métodos de uma classe

 Def: métodos são ações que podem ser executadas por um
  objeto e definem como ocorrerá a troca de mensagens entre
  eles.

 Ex: andar, correr, falar, etc. são ações feitas por uma pessoa

 Ex2: acender as luzes, apagar as luzes, acionar sistema de
  incêndio, etc são ações que acontecem dentro de um prédio

 Com esse segundo exemplo, é possível ver que, não
  necessariamente um objeto precisa ser capaz de agir por
  si só. Métodos também regulam como o resto do mundo
  pode interagir com esse objeto.
Pensando de forma OO

 Como dito anteriormente, isso requer uma habilidade extra
 do programador em identificar semelhanças e
 generalizações das entidades de um programa.

 Isso requer, além de um alto grau de abstração, bom senso.
 Não fuja do escopo do problema!

 Às vezes, uma entidade pode ser irrelevante ao sistema e
 não precisa fazer parte do seu programa.

 Prática é fundamental!
Exercício - Metrô

 "Você foi contratado pela CPTM para desenvolver um sistema
  controlador para o metrô de São Paulo. O seu controlador deve
  fazer os trens andarem e pararem de acordo com as estações. Ao
  parar em alguma estação, a porta deve abrir durante um período de
  tempo (nesse exemplo, controlado pelo usuário) e fechar. Em
  seguida, os trens partem para a próxima estação e é reproduzida
  uma mensagem que diz o nome dessa estação, em cada vagão."

 Encontre as classes relevantes ao sistema, bem como seus
  atributos e métodos. Não precisa se prender aos dados
  fornecidos no enunciado.
Instanciando uma Classe

 Até agora, você aprendeu a identificar classes, bem como
  seus atributos e métodos para um dado problema. E agora?

 Para fazer a casa sair do papel, utilizamos um método
  construtor

 Este método deve conter a inicialização dos atributos, para
  ‘construir’ o objeto

Sintaxe:
public <NomeDaClasse>([arg1,…,argn]){
  …
}
Instanciando uma Classe

 Quando precisamos criar uma instância dessa classe,
  escrevemos
<NomeDaClasse> meuObj = new <NomeDaClasse>([args…]);


Por ex:
// 10 poderia ser o numero de vagoes do metro
Metro m = new Metro(10);

// posso inicializar sem parametro nenhum
Casa c = new Casa();
Mais um pouco de sintaxe

 A estrutura de uma classe é normalmente assim:

package meuPacote;
public class MinhaClasse{

    // declaracao dos atributos
    protected String atributo1;
    protected int atributo2;
    …

    // construtor
    public MinhaClasse(){
        …
    }
    // outros metodos
    public int meuMetodo1(String arg1, int arg2…){
        …
    }
}
Exercício - Metrô

 "Você foi contratado pela CPTM para desenvolver um sistema
  controlador para o metrô de São Paulo. O seu controlador deve
  fazer os trens andarem e pararem de acordo com as estações. Ao
  parar em alguma estação, a porta deve abrir durante um período de
  tempo (nesse exemplo, controlado pelo usuário) e fechar. Em
  seguida, os trens partem para a próxima estação e é reproduzida
  uma mensagem que diz o nome dessa estação, em cada vagão."

 Com base nas classes que você encontrou anteriormente,
  crie a estrutura dessas classes em Java. Não precisa ter
  funcionalidade nenhuma, basta criar o esqueleto da classe.
 Depois, compare com a estrutura do programa fornecido em
  aula.
Exercício - Burger King

 "Você foi contratado pelo Burger King para desenvolver um sistema
  que gerencie os pedidos no balcão. O cliente escolhe um lanche,
  uma bebida e uma sobremesa. Ao final, o sistema calcula o valor do
  pedido, imprime o pedido na tela e emite uma senha numérica."

 O foco deste exercício é na implementação. Você receberá um
  programa parcialmente implementado e terá que desenvolver o
  restante das funcionalidades. Use os arquivos contidos em
  BurgerKing.zip para começar a desenvolver.
Exercício - Celular

 "Você deve fazer um programa que simule a interação entre
  celulares. Seu programa deve apenas fazer e encerrar uma
  chamada (troca de mensagens). Não é permitido que um celular
  faça ou receba mais de uma ligação ao mesmo tempo."

 O foco deste exercício é na implementação. Você receberá um
  programa parcialmente implementado e terá que desenvolver o
  restante das funcionalidades. Use os arquivos contidos em
  Celular.zip para começar a desenvolver.

Más contenido relacionado

La actualidad más candente

Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
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
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaCharles Jungbeck
 
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: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceArthur Emanuel
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosOrlando Junior
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)guest18b3c00
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosEvandro Agnes
 
Programação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoProgramação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoEvandro Júnior
 
Poo slides01
Poo slides01Poo slides01
Poo slides01jmtofoli
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoArthur Emanuel
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – IIGabriel Faustino
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaMoises Omena
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao SwingArthur Emanuel
 

La actualidad más candente (20)

Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
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
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
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: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, Interface
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Java - Boas práticas
Java - Boas práticasJava - Boas práticas
Java - Boas práticas
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
v
vv
v
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
 
Programação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoProgramação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e Implementação
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao Swing
 

Destacado

Destacado (19)

Deber de tecnologia
Deber de tecnologiaDeber de tecnologia
Deber de tecnologia
 
Devon rotarua
Devon rotaruaDevon rotarua
Devon rotarua
 
Uyiuri
UyiuriUyiuri
Uyiuri
 
Presentation1
Presentation1Presentation1
Presentation1
 
Prezentacja krótka
Prezentacja krótkaPrezentacja krótka
Prezentacja krótka
 
Testi
TestiTesti
Testi
 
XIX Symposium Internacional sobre Actualizaciones y Controversias en Psiquiatría
XIX Symposium Internacional sobre Actualizaciones y Controversias en PsiquiatríaXIX Symposium Internacional sobre Actualizaciones y Controversias en Psiquiatría
XIX Symposium Internacional sobre Actualizaciones y Controversias en Psiquiatría
 
like.htm
like.htmlike.htm
like.htm
 
20+ foods to cleanse your arteries
20+ foods to cleanse your arteries20+ foods to cleanse your arteries
20+ foods to cleanse your arteries
 
Day 7 State House and Science Museum
Day 7   State House and Science MuseumDay 7   State House and Science Museum
Day 7 State House and Science Museum
 
Micaxisto
MicaxistoMicaxisto
Micaxisto
 
Ambiente e sociedade desenvolvimento sustentável filosofia 11º
Ambiente e sociedade desenvolvimento sustentável   filosofia 11ºAmbiente e sociedade desenvolvimento sustentável   filosofia 11º
Ambiente e sociedade desenvolvimento sustentável filosofia 11º
 
AINT - Trabalho
AINT - TrabalhoAINT - Trabalho
AINT - Trabalho
 
Day 11 Farewell Party
Day 11 Farewell PartyDay 11 Farewell Party
Day 11 Farewell Party
 
Estrutura interna
Estrutura internaEstrutura interna
Estrutura interna
 
valero energy Quarterly and Other SEC Reports 2008 2nd
valero energy  Quarterly and Other SEC Reports  2008 2ndvalero energy  Quarterly and Other SEC Reports  2008 2nd
valero energy Quarterly and Other SEC Reports 2008 2nd
 
Atividade sismica
Atividade sismicaAtividade sismica
Atividade sismica
 
CN: Ocorrência de falhas e dobras
CN: Ocorrência de falhas e dobrasCN: Ocorrência de falhas e dobras
CN: Ocorrência de falhas e dobras
 
Unternehmensnachfolge_2016_2017
Unternehmensnachfolge_2016_2017Unternehmensnachfolge_2016_2017
Unternehmensnachfolge_2016_2017
 

Similar a Java aula 2

Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfAndreCosta502039
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#biandamakengo08
 
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
 
Apresentação versão 1.5
Apresentação   versão 1.5Apresentação   versão 1.5
Apresentação versão 1.5oliveiraprog
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaFernando Camargo
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetosWesley R. Bezerra
 
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
 
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
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemassauloroos01
 
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
 

Similar a Java aula 2 (20)

Java7
Java7Java7
Java7
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdf
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Sld 4
Sld 4Sld 4
Sld 4
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#
 
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
 
Apresentação versão 1.5
Apresentação   versão 1.5Apresentação   versão 1.5
Apresentação versão 1.5
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em Java
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetos
 
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
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
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
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 
Java11
Java11Java11
Java11
 
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
 

Java aula 2

  • 1. Orientação a Objetos utilizando a linguagem Java AULA 2 Ministrado por Endel Guimarães Silva, Pedro Ferraz, Wagner Takeshi Obara e Yuri Pádua
  • 2. Resumo da aula  Os tópicos cobertos por essa aula são  Por que orientação a objetos?  Classes, objetos e diferenças entre eles  Métodos e atributos de uma classe  Pensando de forma Orientada a Objetos  Construtores  Instâncias de uma classe
  • 3. Por que Orientação a objetos?  Necessidade  Com o aumento da complexidade dos softwares desenvolvidos, foi preciso pensar em alguma forma de facilitar o processo de desenvolvimento e manutenção, de forma que a leitura e escrita do código se desse de uma forma mais natural.  Além disso, era necessário ampliar as capacidades de reúso de peças de software pois desenvolvimento de código do zero (build from scratch) é muito caro.
  • 4. Por que Orientação a objetos?  Vantagens  Com isso o código ficou mais flexível quanto a mudanças: é mais fácil acrescentar e modificar funcionalidades e o impacto dessas mudanças é bastante reduzido.  Desvantagens  Além disso, era necessário ampliar as capacidades de reúso de peças de software pois desenvolvimento de código a partir do zero (build from scratch) é muito caro.
  • 5. Classes e objetos  Def: uma classe é um modelo abstrato e genérico para objetos que compartilham o mesmo comportamento (mesmo conjunto de características e executam as mesmas ações)  Ex: um aluno que está na quarta série faz as mesmas matérias que qualquer outro aluno da quarta série.  Ex2: todos os operários de um mesmo setor numa linha de produção de uma fábrica têm as mesmas competências e têm as mesmas funções.  Pode-se dizer que eles estão na mesma classe.
  • 6. Classes e objetos  Def: Um objeto ou instância é um representante particular de uma classe  Ex: Joãozinho é um aluno da quarta série. Joãozinho é um representante da classe dos alunos da quarta série.  Ex2: Zé e Chico são funcionários do setor de embalagem em uma linha de produção. Ambos são representantes da classe dos funcionários desse setor.
  • 7. Classes e objetos  Simplificando as definições  Uma classe é semelhante à planta de uma casa. Não podemos entrar em uma planta.  Uma instância é equivalente à casa pronta: além de termos várias casas diferentes, ter a casa pronta é o único jeito de entrar nela, abrir suas janelas, pintar suas portas, etc.
  • 8. Atributos e métodos de uma classe  Def: atributos são características de um objeto e refletem seu estado em um dado momento  Ex: Nome, cor dos olhos, cor do cabelo, altura, etc. são características de uma pessoa  Ex2: Altura em metros, número de andares, número de salas, etc. são características de um prédio
  • 9. Atributos e métodos de uma classe  Def: métodos são ações que podem ser executadas por um objeto e definem como ocorrerá a troca de mensagens entre eles.  Ex: andar, correr, falar, etc. são ações feitas por uma pessoa  Ex2: acender as luzes, apagar as luzes, acionar sistema de incêndio, etc são ações que acontecem dentro de um prédio  Com esse segundo exemplo, é possível ver que, não necessariamente um objeto precisa ser capaz de agir por si só. Métodos também regulam como o resto do mundo pode interagir com esse objeto.
  • 10. Pensando de forma OO  Como dito anteriormente, isso requer uma habilidade extra do programador em identificar semelhanças e generalizações das entidades de um programa.  Isso requer, além de um alto grau de abstração, bom senso. Não fuja do escopo do problema!  Às vezes, uma entidade pode ser irrelevante ao sistema e não precisa fazer parte do seu programa.  Prática é fundamental!
  • 11. Exercício - Metrô  "Você foi contratado pela CPTM para desenvolver um sistema controlador para o metrô de São Paulo. O seu controlador deve fazer os trens andarem e pararem de acordo com as estações. Ao parar em alguma estação, a porta deve abrir durante um período de tempo (nesse exemplo, controlado pelo usuário) e fechar. Em seguida, os trens partem para a próxima estação e é reproduzida uma mensagem que diz o nome dessa estação, em cada vagão."  Encontre as classes relevantes ao sistema, bem como seus atributos e métodos. Não precisa se prender aos dados fornecidos no enunciado.
  • 12. Instanciando uma Classe  Até agora, você aprendeu a identificar classes, bem como seus atributos e métodos para um dado problema. E agora?  Para fazer a casa sair do papel, utilizamos um método construtor  Este método deve conter a inicialização dos atributos, para ‘construir’ o objeto Sintaxe: public <NomeDaClasse>([arg1,…,argn]){ … }
  • 13. Instanciando uma Classe  Quando precisamos criar uma instância dessa classe, escrevemos <NomeDaClasse> meuObj = new <NomeDaClasse>([args…]); Por ex: // 10 poderia ser o numero de vagoes do metro Metro m = new Metro(10); // posso inicializar sem parametro nenhum Casa c = new Casa();
  • 14. Mais um pouco de sintaxe  A estrutura de uma classe é normalmente assim: package meuPacote; public class MinhaClasse{ // declaracao dos atributos protected String atributo1; protected int atributo2; … // construtor public MinhaClasse(){ … } // outros metodos public int meuMetodo1(String arg1, int arg2…){ … } }
  • 15. Exercício - Metrô  "Você foi contratado pela CPTM para desenvolver um sistema controlador para o metrô de São Paulo. O seu controlador deve fazer os trens andarem e pararem de acordo com as estações. Ao parar em alguma estação, a porta deve abrir durante um período de tempo (nesse exemplo, controlado pelo usuário) e fechar. Em seguida, os trens partem para a próxima estação e é reproduzida uma mensagem que diz o nome dessa estação, em cada vagão."  Com base nas classes que você encontrou anteriormente, crie a estrutura dessas classes em Java. Não precisa ter funcionalidade nenhuma, basta criar o esqueleto da classe.  Depois, compare com a estrutura do programa fornecido em aula.
  • 16. Exercício - Burger King  "Você foi contratado pelo Burger King para desenvolver um sistema que gerencie os pedidos no balcão. O cliente escolhe um lanche, uma bebida e uma sobremesa. Ao final, o sistema calcula o valor do pedido, imprime o pedido na tela e emite uma senha numérica."  O foco deste exercício é na implementação. Você receberá um programa parcialmente implementado e terá que desenvolver o restante das funcionalidades. Use os arquivos contidos em BurgerKing.zip para começar a desenvolver.
  • 17. Exercício - Celular  "Você deve fazer um programa que simule a interação entre celulares. Seu programa deve apenas fazer e encerrar uma chamada (troca de mensagens). Não é permitido que um celular faça ou receba mais de uma ligação ao mesmo tempo."  O foco deste exercício é na implementação. Você receberá um programa parcialmente implementado e terá que desenvolver o restante das funcionalidades. Use os arquivos contidos em Celular.zip para começar a desenvolver.