4. 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?)
..
5. 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;
}
6. 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.
7. 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..”)
}
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..”)
}
}
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 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
14. 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.
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 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.
17. 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();
}
}
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)