24
UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Embed Size (px)

Citation preview

Page 1: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS!

ClassesObjetosHerança

Polimorfismo

Page 2: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Histórico.

• Linguagens orientadas a objetos só foi possível devido a ao avanço na arquitetura dos computadores.

• Assim sofisticados ambientes de programação puderam ser criados.

Page 3: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Mas qual a vantagem???

• De uma forma geral o conceito da POO nos leva a simular o mundo real, então o seu entendimento pode nos ser mais intuitivo.

• A vantagem de uma linguagem orientada a objetos é diretamente ligada com o reaproveitamento de código.

Page 4: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Quais os conceitos ?

• Temos que entender o conceito de classe.

• O conceito de objetos.

• O conceito de herança.

• O conceito de Polimorfismo.

Page 5: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Definição de Objetos fundamentados em Classes.

Representa uma entidade.

FÍSICA carro, casa, bicicleta...

CONCEITO processo quimico, matricula...

SOFTWAREEstrutura de dados...

Page 6: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Como é construído um Objeto?

• Não há como construir um objeto, sem antes mostrar o que é uma classe.

• CLASSE.• Uma classe é um modelo.• Mostra como será um determinado objeto.• Uma classe só contém atributos e métodos.• Atributo é o que sabemos de uma classe, é o

estado que terá o objeto.• Métodos são os comportamentos que um

objeto, terá, será o que ele sabe fazer.

Page 7: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

O QUE OS OBJETOS FAZEM?

Se comunicam, por meio de mensagem.

Page 8: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Mas um objeto trás a idéia de Que?

• Como um objeto é baseado em um modelo, podemos apresentar a seguinte explicação.

• Pegaremos uma roda de um carrinho de bebê, é uma roda pequena de borracha maciça, com aro em plástico.

• Pegaremos agora uma roda de carriola, onde temos um pneu de borracha com câmara de ar, e aro em ferro orbital, ou raiada.

Page 9: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

E as rodas de um carro?

Page 10: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

AS RODAS DO CARRO.

• Opa!!! estão em ordem, e também são rodas.• Todas tem uma função em comum, e servem

para efetuar o deslocamento de alguma entidade de um lado a outro.

• Perceba que, cada roda tem o seu estado especifico, tais como tipo de material, tamanho, etc... porém todas tem o mesmo comportamento, sabem fazer a mesma coisa, que é RODAR.

Page 11: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

POR FALAR EM CARRO...

– Não estamos na matrix – Para quem assistiu, viu a parte, onde o oráculo diz ao Neo que “a colher não exite”.

– Mas podemos afirmar que :– O CARRO NÃO EXISTE.– Pois o mesmo é composto de varias partes, vários

objetos, e no final acabamos compondo o carro.

Page 12: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

JÁ SABEMOS O QUE É UM OBJETO, E AGORA?

• Para que serve um objeto?

• Bom um objeto serve para se comunicar uns, com os outros, com a finalidade de construir algo maior, ok.

• E no mundo real???

• Em um projeto de sistema real??

Page 13: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Está na hora de sabermos de Herança.

• Herança serve para efetuar a reutilização da estrutura.

• Vamos lá:

• Uma classe ANIMAL, com suas particularidades, ATRIBUTOS.

• Nome da classe Mãe: Animal.

• Atributos da classe: Tipo, peso, tamanho.

Page 14: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Sub-Classe CÃO da classe MÃE ANIMAL.

• A classe Filha,(CÃO) classe que herda as particularidades da classe mãe deve ser capaz de responder a seguinte questão para ser considerada filha.

• CÃO É – UM ANIMAL?

Cão sabemos que sim, é um animal.

Então existe, ligação de herança entre Animal e Cão.

Page 15: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Um exemplo de Herança.

public class Animal{private float peso;private String tipo;private float tamanho;

encapsulamento de Get/Set para os atributos.public void comer(){ System.out.println(“Este animal come.”);}public void dorme(){ System.out.println(“Este animal dorme.”);}

}

Page 16: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Classe Filha Cão.public class Cão extends Animal{

//*Essa classe tem todos os atributos e métodos da classe Animal, podemos mudar métodos da classe aqui

na classe filha com um conceito chamado de sobrecarga e sobrescrita. *//E ainda podemos escrever mais métodos.

public void morder(){ System.out.println(“O cão morde mesmo!”); }// sobreescrevendo

public String comer(String comendo){String come = comendo; System.out.println(“Este animal come CARNE!!!”+come);return (come);

}

}

Page 17: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

POLIMORFISMO.

• Seus operandos podem assumir mais de um tipo.

• Ou seja serve para promover a reutilização de código.

• Por exemplo para construirmos um código 100% reutilizável, podemos fazer uso classes Abstratas e Interfaces.

Page 18: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Vamos descrever Classe Abstrada.

• Uma classe abstrata, possui atributos, e métodos com nenhuma ou uma mínima implementação.

• Seus métodos terminam com ponto e vírgula, não possuindo chaves como em um método concreto.

Page 19: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Uma classe abstrata.

// A classe abstrata possúi métodos genéricos e quem for usar a classe terá que estender a classe, e implementar o método, como for necessário.

public abstract class Animal{public void comer(String c);

public void dorme(String d);

}

Page 20: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Estendendo a classe abstrata.• public Cao extends Animal{

public void comer(String c){

String comer = c;

system.out.println(“O cão come :”+comer);

}

public void dorme(String d){

String dorme = d;

system.out.println(“O cão dorme na:”+dorme);

}

// Podemos agora escrever um código próprio da classe Filha Cão

public void brincar(String brinc){

String brincar = brinc;

system.out.println(“O cão brinca de :”+ brincar);

}

}

Page 21: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Interface

• Implementação de um contrato.• Temos que implementar todos os, métodos nela contida.

Page 22: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Implementando uma Interface.

public interface Relogio {   

  public String getHoras();   

}   

-------------------------------------------------------

public interface Radio() {   

    public void liga();  

    public void desliga();   

    public void trocaEstacao(int frequencia);   

}

-------------------------------------------------------

  

Page 23: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Final Interface.

public class RadioRelogio implements Radio, Relogio {  

        // Inicializa objeto    

   }    

    public String getHoras() {   

        return horarioAtual;

      }   

public void liga() {  

         // Implementacao   

}

public void desliga() {  

          // Implementacao   

}

public void trocaEstacao(int frequencia) {   

         // Implementacao   

      }  

    }   

Page 24: UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS! Classes Objetos Herança Polimorfismo

Final.

• Com o uso de interface podemos reaproveitar códigos, de maneira bastante eficiente.

• DÚVIDAS???

• Autor: Moacir Mardegan• Criado em 24/05/2012