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

Preview:

DESCRIPTION

Introdução aos conceitos básicos da Orientação a Objeto, usando Java como linguagem de programação.

Citation preview

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 programarpublic void programar() {

System.out.println(“debugar isso aqui..”)}

• Método caminharpublic 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 String nome = “Sorriso Colgate”Linha2 Double altura = 1.50;Linha3 Double peso = 50.00;Linha4 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 :Dpublic 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)

Recommended