Java: Introdução à
Orientação a Objetos
Me. Arthur Emanuel de Oliveira Carosia
Introdução
Considere um programa para um banco.
◦Quais seriam os seus elementos relevantes para
o desenvolvimento?
Introdução
Considere um programa para um banco.
◦Quais seriam os seus elementos relevantes para
o desenvolvimento?
- Conta bancária;
- Clientes;
- Seguros,
- etc.
Considere um programa para um banco.
◦Quais seriam os seus elementos relevantes para
o desenvolvimento?
- Conta bancária;
- Clientes;
- Seguros,
- etc.
Introdução
O que toda conta possui e é relevante?
Introdução
O que toda conta possui e é relevante?
◦Número da conta;
◦Nome do dono da conta;
◦Saldo;
◦Limite.
Introdução
O que toda conta faz e é importante?
Introdução
O que toda conta faz e é importante?
◦Sacar;
◦Depositar;
◦Imprimir o nome do dono da conta;
◦Devolver o saldo atual;
◦Transferir uma quantidade para uma outra conta;
◦Devolver o tipo de conta.
Introdução
Introdução
Introdução
Definição
(Classe)
Introdução
Instância
(Objeto)
A palavra classe vem da taxonomia da
biologia.
Introdução
A palavra classe vem da taxonomia da
biologia.
◦Todos os seres vivos de uma mesma classe biológica
têm uma série de atributos e comportamentos em
comum.
Introdução
A palavra classe vem da taxonomia da
biologia.
◦Todos os seres vivos de uma mesma classe biológica
têm uma série de atributos e comportamentos em
comum.
◦No entanto, podem podem variar nos valores
desses atributos e como realizam
esses comportamentos
Introdução
Introdução
Classe Objeto (Instância)
Introdução
Receita de Bolo
Classe Objeto (Instância)
Introdução
Receita de Bolo Bolo de Chocolate
Classe Objeto (Instância)
Introdução
Receita de Bolo Bolo de Chocolate
Cachorro
Classe Objeto (Instância)
Introdução
Receita de Bolo Bolo de Chocolate
Cachorro Bidu
Classe Objeto (Instância)
Introdução
Receita de Bolo Bolo de Chocolate
Cachorro Bidu
Time de Futebol
Classe Objeto (Instância)
Introdução
Receita de Bolo Bolo de Chocolate
Cachorro Bidu
Time de Futebol Corinthians
Classe Objeto (Instância)
Criando a classe Conta com os atributos que
descrevem a classe.
Uma classe em Java
Uma classe em Java
Adicionando métodos, ou seja, os
comportamentos da classe
Utilizando a classe Conta
Criação do objeto
Acesso aos atributos da classe
mandar uma mensagem ao objeto: invocação de
método
Uma classe em Java
Uma classe em Java
Uma classe em Java
Criação do objeto
Uma classe em Java
Acesso aos atributos
da classe
Uma classe em Java
 invocação de método
 invocação de método
Uma classe em Java
Alterando o método saca para não deixar sacar
mais dinheiro do que a conta tem.
Uma classe em Java
Exemplos de invocação do método saca
Uma classe em Java
Utilizando mais de uma conta
Uma classe em Java
Representação de uma classe.
Objetos são conceitos que têm identidade,
estado e comportamento.
Pode-se pensar sobre o mundo real como
uma coleção de objetos relacionados.
Objetos
Um programa Orientado a Objetos possui:
◦objetos se comunicando através de troca de
mensagens
Objetos
Classes e Objetos
Cachorro01
-Totó
-3.5
-Branco
Latir()
Abanar()
Classes
◦Definição para objetos.
◦Uma classe define o que um objeto
◦Pode ter (atributos) e o que ele pode
fazer (métodos).
Atributos
◦Características de um objeto.
Métodos
◦Comportamento de um objeto.
Objetos
◦Uma instancia de uma classe.
Resumindo
Exercício
Escreva uma classe Circulo, que contenha:
• raio inteiro e centro em inteiros x e y.
• método que retorna a área
• método que retorna a circunferência
Use java.lang.Math.PI (Math.PI)
Quando declaramos uma variável para associar
a um objeto, ela armazena uma referência.
É por isso que precisamos usar new depois de
declarada a variável
Objetos e Referências
Caso 1
Objetos e Referências
Caso 2
Objetos e Referências
Implemente um método chamado copia que
copie todos os atributos de um objeto para
outro e que pertençam à mesma classe.
O objetivo deste método é que, ao final de sua
execução, ambos objetos possuam os mesmos
atributos.
Exercício
Também podem ser atribuídos valores default
no momento da criação da classe:
Atributos
Modele um funcionário. Ele deve ter o nome
do funcionário, o departamento onde trabalha,
seu salário (double), a data de entrada no
banco (String) e seu RG (String).
Crie um método recebeAumento que aumenta
o salario do funcionário de acordo com o
parâmetro passado como argumento. Crie
também um métodocalculaGanhoAnual, que
não recebe parâmetro algum, devolvendo o
valor do salário multiplicado por 12.
Transforme o modelo acima em uma classe
Exercício
Crie um método mostra(), que não recebe nem
devolve parâmetro algum e simplesmente
imprime todos os atributos do nosso
funcionário.
Construa dois funcionários com o new e
compare-os com o ==. E se eles tiverem os
mesmos atributos?
Crie duas referências para
o mesmo funcionário, compare-os com o ==.
Exercício
Classe: Pessoa
Atributos: nome, idade.
Método: void fazAniversario()
Crie uma pessoa, coloque seu nome e idade
iniciais, faça alguns aniversários (aumentando a
idade) e imprima seu nome e sua idade.
Exercício
Exercício
a) Um método que permita verificar se dois países são iguais. Dois países são iguais se
tiverem o mesmo nome e a mesma capital.
b) Um método que lista quais outros países fazem fronteira (note que um país não pode
fazer fronteira com ele mesmo);
c) Um método que receba um outro país como parâmetro e retorne uma lista de
vizinhos comuns aos dois países.
Classe: Porta
Atributos: aberta, cor, dimensaoX, dimensaoY,
dimensaoZ
Métodos:
◦void abre()
◦void fecha()
◦void pinta(String s)
◦boolean estaAberta()
Crie uma porta, abra e feche a mesma, pinte-a
de diversas cores, altere suas dimensões e use
o método estaAberta para verificar se ela está
aberta.
Exercício
Classe: Casa
Atributos: cor, porta1, porta2, porta3 Método:
◦void pinta(String s),
◦int quantasPortasEstaoAbertas()
Crie uma casa e pinte-a. Crie três portas e
coloque-as na casa; abra e feche as mesmas
como desejar. Utilize o
método quantasPortasEstaoAbertas para
imprimir o número de portas abertas.
Exercício
Desenvolva um jogo em que um robô deve
perseguir um gato. Ambos elementos
armazenam coordenadas (x,y). O gato possui
ainda seu nome e cor do pelo, enquanto que o
robô possui seu nome-código.
O gato somente anda em diagonal, sendo que
a cada passo define aleatoriamente seu rumo.
O robô sempre anda no sentido de diminuir a
sua distância em relação ao gato.
Este jogo acontece em um tabuleiro, que
consiste em uma matriz nxn e possui um gato
e um robô movimentando em sua parte
superior.
Exercício
Jsp, Servlets e J2EE. André Temple, Rodrigo Fernandes de
Mello, Danival Taffarel Calegari and Maurício Schiezaro.
Disponível em: www.inf.ufsc.br/~bosco/downloads/livro-jsp-
servlets-j2ee.pdf.
W3Schools. Disponível em: http://www.w3schools.com/.
Apostila de Java. Caelum. Disponível em:
http://www.caelum.com.br/apostila-java-orientacao-objetos/.
DEITEL, Paul J.; DEITEL, Harvey M. Java - como
programar. 8. ed. São Paulo: Pearson Prentice Hall, 2010.
Referências
Java
Me. Arthur Emanuel de Oliveira Carosia

Java: Introdução à Orientação a Objetos

  • 1.
    Java: Introdução à Orientaçãoa Objetos Me. Arthur Emanuel de Oliveira Carosia
  • 2.
    Introdução Considere um programapara um banco. ◦Quais seriam os seus elementos relevantes para o desenvolvimento?
  • 3.
    Introdução Considere um programapara um banco. ◦Quais seriam os seus elementos relevantes para o desenvolvimento? - Conta bancária; - Clientes; - Seguros, - etc.
  • 4.
    Considere um programapara um banco. ◦Quais seriam os seus elementos relevantes para o desenvolvimento? - Conta bancária; - Clientes; - Seguros, - etc. Introdução
  • 5.
    O que todaconta possui e é relevante? Introdução
  • 6.
    O que todaconta possui e é relevante? ◦Número da conta; ◦Nome do dono da conta; ◦Saldo; ◦Limite. Introdução
  • 7.
    O que todaconta faz e é importante? Introdução
  • 8.
    O que todaconta faz e é importante? ◦Sacar; ◦Depositar; ◦Imprimir o nome do dono da conta; ◦Devolver o saldo atual; ◦Transferir uma quantidade para uma outra conta; ◦Devolver o tipo de conta. Introdução
  • 9.
  • 10.
  • 11.
  • 12.
    A palavra classevem da taxonomia da biologia. Introdução
  • 13.
    A palavra classevem da taxonomia da biologia. ◦Todos os seres vivos de uma mesma classe biológica têm uma série de atributos e comportamentos em comum. Introdução
  • 14.
    A palavra classevem da taxonomia da biologia. ◦Todos os seres vivos de uma mesma classe biológica têm uma série de atributos e comportamentos em comum. ◦No entanto, podem podem variar nos valores desses atributos e como realizam esses comportamentos Introdução
  • 15.
  • 16.
  • 17.
    Introdução Receita de BoloBolo de Chocolate Classe Objeto (Instância)
  • 18.
    Introdução Receita de BoloBolo de Chocolate Cachorro Classe Objeto (Instância)
  • 19.
    Introdução Receita de BoloBolo de Chocolate Cachorro Bidu Classe Objeto (Instância)
  • 20.
    Introdução Receita de BoloBolo de Chocolate Cachorro Bidu Time de Futebol Classe Objeto (Instância)
  • 21.
    Introdução Receita de BoloBolo de Chocolate Cachorro Bidu Time de Futebol Corinthians Classe Objeto (Instância)
  • 22.
    Criando a classeConta com os atributos que descrevem a classe. Uma classe em Java
  • 23.
    Uma classe emJava Adicionando métodos, ou seja, os comportamentos da classe
  • 24.
    Utilizando a classeConta Criação do objeto Acesso aos atributos da classe mandar uma mensagem ao objeto: invocação de método Uma classe em Java
  • 25.
  • 26.
    Uma classe emJava Criação do objeto
  • 27.
    Uma classe emJava Acesso aos atributos da classe
  • 28.
    Uma classe emJava  invocação de método  invocação de método
  • 29.
    Uma classe emJava Alterando o método saca para não deixar sacar mais dinheiro do que a conta tem.
  • 30.
    Uma classe emJava Exemplos de invocação do método saca
  • 31.
    Uma classe emJava Utilizando mais de uma conta
  • 32.
    Uma classe emJava Representação de uma classe.
  • 33.
    Objetos são conceitosque têm identidade, estado e comportamento. Pode-se pensar sobre o mundo real como uma coleção de objetos relacionados. Objetos
  • 34.
    Um programa Orientadoa Objetos possui: ◦objetos se comunicando através de troca de mensagens Objetos
  • 35.
  • 36.
    Cachorro01 -Totó -3.5 -Branco Latir() Abanar() Classes ◦Definição para objetos. ◦Umaclasse define o que um objeto ◦Pode ter (atributos) e o que ele pode fazer (métodos). Atributos ◦Características de um objeto. Métodos ◦Comportamento de um objeto. Objetos ◦Uma instancia de uma classe. Resumindo
  • 37.
    Exercício Escreva uma classeCirculo, que contenha: • raio inteiro e centro em inteiros x e y. • método que retorna a área • método que retorna a circunferência Use java.lang.Math.PI (Math.PI)
  • 38.
    Quando declaramos umavariável para associar a um objeto, ela armazena uma referência. É por isso que precisamos usar new depois de declarada a variável Objetos e Referências
  • 39.
    Caso 1 Objetos eReferências
  • 40.
    Caso 2 Objetos eReferências
  • 41.
    Implemente um métodochamado copia que copie todos os atributos de um objeto para outro e que pertençam à mesma classe. O objetivo deste método é que, ao final de sua execução, ambos objetos possuam os mesmos atributos. Exercício
  • 42.
    Também podem seratribuídos valores default no momento da criação da classe: Atributos
  • 43.
    Modele um funcionário.Ele deve ter o nome do funcionário, o departamento onde trabalha, seu salário (double), a data de entrada no banco (String) e seu RG (String). Crie um método recebeAumento que aumenta o salario do funcionário de acordo com o parâmetro passado como argumento. Crie também um métodocalculaGanhoAnual, que não recebe parâmetro algum, devolvendo o valor do salário multiplicado por 12. Transforme o modelo acima em uma classe Exercício
  • 44.
    Crie um métodomostra(), que não recebe nem devolve parâmetro algum e simplesmente imprime todos os atributos do nosso funcionário. Construa dois funcionários com o new e compare-os com o ==. E se eles tiverem os mesmos atributos? Crie duas referências para o mesmo funcionário, compare-os com o ==. Exercício
  • 45.
    Classe: Pessoa Atributos: nome,idade. Método: void fazAniversario() Crie uma pessoa, coloque seu nome e idade iniciais, faça alguns aniversários (aumentando a idade) e imprima seu nome e sua idade. Exercício
  • 46.
    Exercício a) Um métodoque permita verificar se dois países são iguais. Dois países são iguais se tiverem o mesmo nome e a mesma capital. b) Um método que lista quais outros países fazem fronteira (note que um país não pode fazer fronteira com ele mesmo); c) Um método que receba um outro país como parâmetro e retorne uma lista de vizinhos comuns aos dois países.
  • 47.
    Classe: Porta Atributos: aberta,cor, dimensaoX, dimensaoY, dimensaoZ Métodos: ◦void abre() ◦void fecha() ◦void pinta(String s) ◦boolean estaAberta() Crie uma porta, abra e feche a mesma, pinte-a de diversas cores, altere suas dimensões e use o método estaAberta para verificar se ela está aberta. Exercício
  • 48.
    Classe: Casa Atributos: cor,porta1, porta2, porta3 Método: ◦void pinta(String s), ◦int quantasPortasEstaoAbertas() Crie uma casa e pinte-a. Crie três portas e coloque-as na casa; abra e feche as mesmas como desejar. Utilize o método quantasPortasEstaoAbertas para imprimir o número de portas abertas. Exercício
  • 49.
    Desenvolva um jogoem que um robô deve perseguir um gato. Ambos elementos armazenam coordenadas (x,y). O gato possui ainda seu nome e cor do pelo, enquanto que o robô possui seu nome-código. O gato somente anda em diagonal, sendo que a cada passo define aleatoriamente seu rumo. O robô sempre anda no sentido de diminuir a sua distância em relação ao gato. Este jogo acontece em um tabuleiro, que consiste em uma matriz nxn e possui um gato e um robô movimentando em sua parte superior. Exercício
  • 50.
    Jsp, Servlets eJ2EE. André Temple, Rodrigo Fernandes de Mello, Danival Taffarel Calegari and Maurício Schiezaro. Disponível em: www.inf.ufsc.br/~bosco/downloads/livro-jsp- servlets-j2ee.pdf. W3Schools. Disponível em: http://www.w3schools.com/. Apostila de Java. Caelum. Disponível em: http://www.caelum.com.br/apostila-java-orientacao-objetos/. DEITEL, Paul J.; DEITEL, Harvey M. Java - como programar. 8. ed. São Paulo: Pearson Prentice Hall, 2010. Referências
  • 51.
    Java Me. Arthur Emanuelde Oliveira Carosia