Orientação à Objetos

Bruno Silva

Introdução em Java
Definição
•

•

Orientação a Objetos: abstração de conceitos
do mundo real.
Conceitos envolvidos:
–
–
–
–
–

Classe
Objeto
Atributo
Método
...
Classe
•

•
•

Define as características comuns de um
conjunto de objetos;
É uma generalização;
Uma receita de bolo :D
Receita de macacos
•

Classe Macaco (generalizando os macacos..)
–

Quais atributos definem um macaco qualquer?
•
•
•
•

–

Possui Nome
Possui uma altura
Possui um peso
...

O que um macaco pode fazer qualquer?
•
•
•
•
•

Anda
Respira
Come Banana
Programa(wtf?)
..
Atributos
•

Quais atributos deve ter a Classe Macaco?
Def.: Os atributos descrevem a Classe, modelando-a
•

Macacos..
–
–
–
–

Possuem Nome?
Possuem uma altura?
Possuem um peso?
…

Class Macaco {
String nome;
Double altura;
Double peso;
}
Métodos da classe
•

O que qualquer macaco pode fazer?
•
•
•
•
•

•

Andar
Respirar
Comer Banana
Programar(!?)
..

Métodos definem, então, as habilidades que
os objetos de uma classe terão.
Métodos da classe
•

Método subir arvore
public void subirArvore() {
System.out.println(“To vendo uma banana daqui!”)
}

•

Método programar
public void programar() {
System.out.println(“debugar isso aqui..”)
}

•

Método caminhar
public void caminhar () {
System.out.println(“é mais fácil pular entre árvores..”)
}
Classe Macaco (até agora)
public Class Macaco {
String nome;
Double altura;
Double peso;
public void subirArvore() {
System.out.println(“To vendo uma banana daqui!”)
}
public void programar() {
System.out.println(“debugar isso aqui..”)
}
public void caminhar() {
System.out.println(“é mais fácil pular entre árvores..”)
}
}
Crie uma classe para Leão...
Voltando...
• Tá faltando algo!
– Como criar e diferenciar os macaco?
Como criar Objetos
• Objetos são “materialização” da nossa “receita de
bolo”.
– Objetos são “feitos” a partir da Classe (receita).
– Essa materialização se dá através do método construtor.
Método construtor?! Wtf?
– Métodos construtores de uma classe deve:
• Possuir o mesmo nome da classe.
• Receber parâmetros, caso desejem preencher atributos.
• Não devem retornar nada, pois criam objetos :D

– Para classe Macaco teriamos:
public Macaco (String nomeMacaco, Double alturaMacaco, Double pesoMacaco) {
nome = nomeMacaco ;
altura = alturaMacaco;
peso = pesoMacaco;
}
Mas depois de construir? Oq eu faço?
• Variáveis
– Variáveis apontam para objetos.
– Variáveis só podem apontar para um de um tipo
específico de objeto (uma classe)
• Isso pq Java é fortemente tipado
Declarando variável
• Código:
Macaco macacoOrelhudo;
– Define uma varíavel que pode apontar para
objetos que tenham origem a classe Macaco.
– Variável possui como nome “macacoOrelhudo”
– Ainda não aponta para nenhum macaco, visto que
ele não foi criado.
Materializando um macaco..
• Dentro de um código que irá utilizar um macaco..
Linha1
Linha2
Linha3
Linha4

String nome = “Sorriso Colgate”
Double altura = 1.50;
Double peso = 50.00;
Macaco macacoSorridente = new Macaco(nome, altura, peso);

Na linha 4 do código, são passados os parâmetros para a materialização
(construção) de um objeto macaco, que será apontado pela variável
macacoSorridente. Assim, o objeto macaco criado será referenciado por esta
variável.
Tchaarammm!

macacoSorridente =

Temos uma referência para o macaco! o/
A partir de agora, posso mandar esse macaco andar, programar, comer banana...
Sem a variável, não seria possível ter controle do macaco.
Programa final (Macaco.java)
public Class Macaco {
String nome;
Double altura;
Double peso;
public Macaco (String nomeMacaco, Double alturaMacaco, Double pesoMacaco) {
nome = nomeMacaco ;
altura = alturaMacaco;
peso = pesoMacaco;
}
public void subirArvore() {
System.out.println(“To vendo uma banana daqui!”)
}
public void programar() {
System.out.println(“debugar isso aqui..”)
}
public void caminhar() {
System.out.println(“é mais fácil pular entre árvores..”)
}
//motor do código, utiliza um macaco :D
public static void main(String[] args) {
String nome = “Sorriso Colgate”
Double altura = 1.50;
Double peso = 50.00;
Macaco macacoSorridente = new Macaco(nome, altura, peso);
macacoSorridente.andar();
}
}
Fim
• Então até aqui já sabemos:
– Definir uma classe básica
– Referenciar objetos
• Próximas tarefas:
– Definir interação entre classes
– Tipos de atributos e visibilidade (public/private /protected)

Introdução à Orientação a Objeto em Java

  • 1.
    Orientação à Objetos BrunoSilva Introdução em Java
  • 2.
    Definição • • Orientação a Objetos:abstração de conceitos do mundo real. Conceitos envolvidos: – – – – – Classe Objeto Atributo Método ...
  • 3.
    Classe • • • Define as característicascomuns de um conjunto de objetos; É uma generalização; Uma receita de bolo :D
  • 4.
    Receita de macacos • ClasseMacaco (generalizando os macacos..) – Quais atributos definem um macaco qualquer? • • • • – Possui Nome Possui uma altura Possui um peso ... O que um macaco pode fazer qualquer? • • • • • Anda Respira Come Banana Programa(wtf?) ..
  • 5.
    Atributos • Quais atributos deveter a Classe Macaco? Def.: Os atributos descrevem a Classe, modelando-a • Macacos.. – – – – Possuem Nome? Possuem uma altura? Possuem um peso? … Class Macaco { String nome; Double altura; Double peso; }
  • 6.
    Métodos da classe • Oque qualquer macaco pode fazer? • • • • • • Andar Respirar Comer Banana Programar(!?) .. Métodos definem, então, as habilidades que os objetos de uma classe terão.
  • 7.
    Métodos da classe • Métodosubir arvore public void subirArvore() { System.out.println(“To vendo uma banana daqui!”) } • Método programar public void programar() { System.out.println(“debugar isso aqui..”) } • Método caminhar public void caminhar () { System.out.println(“é mais fácil pular entre árvores..”) }
  • 8.
    Classe Macaco (atéagora) public Class Macaco { String nome; Double altura; Double peso; public void subirArvore() { System.out.println(“To vendo uma banana daqui!”) } public void programar() { System.out.println(“debugar isso aqui..”) } public void caminhar() { System.out.println(“é mais fácil pular entre árvores..”) } }
  • 9.
    Crie uma classepara Leão...
  • 10.
    Voltando... • Tá faltandoalgo! – Como criar e diferenciar os macaco?
  • 11.
    Como criar Objetos •Objetos são “materialização” da nossa “receita de bolo”. – Objetos são “feitos” a partir da Classe (receita). – Essa materialização se dá através do método construtor.
  • 12.
    Método construtor?! Wtf? –Métodos construtores de uma classe deve: • Possuir o mesmo nome da classe. • Receber parâmetros, caso desejem preencher atributos. • Não devem retornar nada, pois criam objetos :D – Para classe Macaco teriamos: public Macaco (String nomeMacaco, Double alturaMacaco, Double pesoMacaco) { nome = nomeMacaco ; altura = alturaMacaco; peso = pesoMacaco; }
  • 13.
    Mas depois deconstruir? Oq eu faço? • Variáveis – Variáveis apontam para objetos. – Variáveis só podem apontar para um de um tipo específico de objeto (uma classe) • Isso pq Java é fortemente tipado
  • 14.
    Declarando variável • Código: MacacomacacoOrelhudo; – Define uma varíavel que pode apontar para objetos que tenham origem a classe Macaco. – Variável possui como nome “macacoOrelhudo” – Ainda não aponta para nenhum macaco, visto que ele não foi criado.
  • 15.
    Materializando um macaco.. •Dentro de um código que irá utilizar um macaco.. Linha1 Linha2 Linha3 Linha4 String nome = “Sorriso Colgate” Double altura = 1.50; Double peso = 50.00; Macaco macacoSorridente = new Macaco(nome, altura, peso); Na linha 4 do código, são passados os parâmetros para a materialização (construção) de um objeto macaco, que será apontado pela variável macacoSorridente. Assim, o objeto macaco criado será referenciado por esta variável.
  • 16.
    Tchaarammm! macacoSorridente = Temos umareferência para o macaco! o/ A partir de agora, posso mandar esse macaco andar, programar, comer banana... Sem a variável, não seria possível ter controle do macaco.
  • 17.
    Programa final (Macaco.java) publicClass Macaco { String nome; Double altura; Double peso; public Macaco (String nomeMacaco, Double alturaMacaco, Double pesoMacaco) { nome = nomeMacaco ; altura = alturaMacaco; peso = pesoMacaco; } public void subirArvore() { System.out.println(“To vendo uma banana daqui!”) } public void programar() { System.out.println(“debugar isso aqui..”) } public void caminhar() { System.out.println(“é mais fácil pular entre árvores..”) } //motor do código, utiliza um macaco :D public static void main(String[] args) { String nome = “Sorriso Colgate” Double altura = 1.50; Double peso = 50.00; Macaco macacoSorridente = new Macaco(nome, altura, peso); macacoSorridente.andar(); } }
  • 18.
    Fim • Então atéaqui já sabemos: – Definir uma classe básica – Referenciar objetos • Próximas tarefas: – Definir interação entre classes – Tipos de atributos e visibilidade (public/private /protected)