Você está na página 1de 19

Desenvolvimento para

Dispositivos Móveis
Aula 3 – Programação OO para Desenvolvimento Android
Programação Orientada a Objetos

O estado do objeto é armazenado nos atributos e o comportamento é


exposto através dos métodos

class Cachorro{
int tamanho;
string raca;

public void latir(){


}
}
Programação Orientada a Objetos

public class Principal{


public static void main(String args[]){
cachorro c1 = new Cachorro();
c1.raça = "Pitbull";
c1.tamanho = 3;
c1.latir();
}
}
Atividade – Conta Corrente

Criar uma classe Conta que irá ContaCorrente


manipular contas de um banco
int numero
float saldo
String nome
emitirSaldo()
sacar(float valor)
depositar(float valor)
Programação Orientada a Objetos

Conceitos Base

Classe, Objeto (estado e comportamento), Relacionamento,


Encapsulamento (public, private), Herança e Polimorfismo
Herança

Diferentes tipos de objetos têm, frequentemente, algo em comum. No


entanto, cada um também possui estado ou comportamento adicionais
que os tornam diferentes

A POO permite que classes herdem estado e comportamento comumente


usado de outras classes

Em Java, cada classe é permitido ter apenas uma superclasse direta, e


cada superclasse tem o potencial para um número ilimitado de subclasses
Herança

Mecanismo que permite que classes, chamadas de


subclasse, herdem (reutilizem) atributos e
métodos de outras classes, superclasses

As subclasses podem adicionar novos métodos


e/ou atributos

Facilita a reutilização de código


Ave é um tipo de Animal

Mamífero é um tipo de
Animal
Herança

A classe Funcionário apresenta 2 descendentes e um ancestral;


José é um objeto instanciado da classe Gerente;
A classe Técnico herda todos os atributos de Funcionário e Pessoa;
A classe Funcionário é subclasse de Pessoa e superclasse de Gerente e
Técnico;
O objeto Pedro poderia herdar os métodos de Pessoa, caso existissem;
Se for incluído um novo atributo na classe Pessoa todas as outras
descendentes passariam a ter esse atributo também.
Como Implementar?

Para criar uma subclasse, usamos a palavra reservada extends

Exemplo

class subClasse extends superClasse


{
...
}
Exemplo
Pessoa Física
String CPF
Cliente
String nome
String end
String tel
String ultimaCompra Pessoa Jurídica
emitirNotaFiscal() String CNPJ
String nomeFantasia
String razaoSocial
Classe Cliente Classe PessoaFisica

class Cliente { class PessoaFisica extends Cliente{


String nome; String cpf;
String end; }
public void emitirNotaFiscal(){
System.out.println("Nota Fiscal");
}
}
Classe PessoaJuridica Classe Principal

class PessoaJuridica extends Cliente{ class Main {


String cnpj; public static void main(String[] args) {
String nomeFantasia; Cliente f1 = new PessoaFisica();
} f1.nome = "Ana";
f1.end = "Rua A";
System.out.println(f1.nome);
f1.emitirNotaFiscal();
}
}
Polimorfismo

1. Formas de modificar totalmente o código de um método herdado de uma


superclasse

Ex.:

- Classe 1 possui 2 métodos: métodoA() e métodoB()

- Classe 2 herda a classe 1

- Classe 2 reescreve todo o métodoA() que pertence a classe 1


Polimorfismo

2. Está relacionado, também, à possibilidade de se usar o mesmo nome


para métodos diferentes e à capacidade que o programa tem em
discernir, dentre os métodos homônimos, aquele que deve ser executado
Exemplo

Superclasse: Carro
Método: aumentar()

Subclasses: Fusca, Ferrari, Gol


Exemplo

Todo ano, os carros tem um aumento: a Ferrari 5%, o Fusca 1% e o Gol 3%

Cada objeto terá que calcular seu aumento de forma diferente, pois
terão diferentes valores de aumento

Método aumentar() diferente em cada uma das subclasses existentes:

objetoFerrari.aumentar() objetoFusca.aumentar()
class Carro { public class TesteVeiculo {
void aumentar() { public static void main(String[] s) {
System.out.println (“Ver tabela”);
} Carro c1 = new Carro();
} c1.aumentar();
Carro f1 = new Fusca();
class Fusca extends Carro { f1.aumentar();
void aumentar() { Ferrari f2 = new Ferrari();
System.out.println (“3%”); f2.aumentar();
} }
} }

class Ferrari extends Carro {


void aumentar() {
System.out.println (“15%”);
}
}

Você também pode gostar