Post on 16-Apr-2017
Herança
Uma subclasse pode herdar todos os componentes de uma classe pai;
Permite a criação de novas classes sem duplicação de código;
5
Pessoa
nome: String
escreverNome()
Juridica
cnpj: String
validarCNPJ(): Boolean
Fisica
cpf: String
validarCPF(): Boolean
Superclasse: Características comuns
Subclasses: Características específicas
Herança Em Java, podemos herdar atributos e métodos de
uma classe (criar uma extensão de classe) a partir da palavra reservada extends. Ex.:
6
public class Pessoa {
public String nome;
Pessoa() { nome = “Fulano”; }
public void escreverNome() { System.out.println(nome); }
}
public class Fisica extends Pessoa {
public String cpf;
public boolean validarCPF() { // Código para validação return true; }
}
Exercício
Crie as seguintes classes:
8
Funcionário
nome: Stringsalario: double
informarSalario()
Gerente
projeto: String
informarProjeto()
Programador
linguagem: String
informarLinguagem()
OBS: Todos os atributos sãopúblicos. Crie os métodosget e set necessários.
Exercício
Crie uma classe Java chamada Principal, que... Terá o método main implementado; Irá instanciar as classes Scanner (para receber as
entradas), Gerente e Programador; Receberá o nome e salário de cada um dos
funcionários; Receberá o nome do projeto do gerente e o nome da
linguagem utilizada pelo programador; Irá enviar os dados para cada objeto das classes
Gerente e Programador; Irá exibir todos os dados do gerente e do programador;
9
Encapsulamento
Mecanismo que provê proteção de acesso aos atributos e métodos de um objeto;
A depender de um projeto de uma classe, certos atributos e métodos devem ser tratados exclusivamente: Pela classe que os possui; Pela superclasse e subclasses em uma hierarquia; Por qualquer classe;
11
Encapsulamento
Para definir a visibilidade dos membros de um objeto, usamos as palavras reservadas public, private ou protected na assinatura de atributos e métodos; public – Podem ser acessados livremente; private – Podem ser acessados dentro da própria
classe em que foram declarados; protected – Podem ser acessados dentro da
própria classe em que foram declarados e a partir das classes descendentes;
12
Encapsulamento
Representação UML para as visibilidades de atributos e métodos em diagramas de classe:
(+) public; (-) private; (#) protected;
13
Polimorfismo
Permite que subclasses possuam métodos iguais (com a mesma assinatura) de uma superclasse, mas com comportamentos diferentes;
As implementações de tais métodos são redefinidas nas classes-filhas;
Classes-filha (subclasses) herdam implementações da classe-pai (superclasse) de acordo com uma hierarquia;
15
Polimorfismo
Ex.:
16
Figura
x: doubley: double
mostraArea()
Triangulo
mostraArea()
Quadrado
mostraArea()
Polimorfismo
Implemente as classes abaixo:
18
Conta
saldo: double
getSaldo(): doubledeposita(double)saca(double)
ContaCorrente
deposita(double)
ContaPoupanca
OBS: Todos os atributos sãoprivados. Crie os métodosget e set necessários.
OBS: O método deposita daSubclasse ContaCorrente Deverá descontar uma taxa de 10 centavos em cada depósito.
Exercício
Crie uma classe Java chamada Principal, que... Terá o método main implementado; Irá instanciar as classes Scanner (para receber as
entradas) e objetos da classe ContaCorrente e ContaPoupanca;
Receberá o saldo a ser depositado em cada conta; Irá enviar os dados para cada objeto da classe
Conta; Irá depositar R$ 50,00 na poupança e R$ 50,00 na
conta corrente; Irá exibir o saldo de cada conta; 19
Polimorfismo
Implemente as classes abaixo:
20
DisciplinacodigoAluno: intnota1: doublenota2: doublemedia(): double
Algoritmos
nota3: double
media(): double
Matematica
nota3: doublenota4: double
media(): double
OBS: Todos os atributos sãoprivados. Crie os métodosget e set necessários.
Exercício
Crie uma classe Java chamada Principal, que... Terá o método main implementado; Irá instanciar as classes Scanner (para receber as
entradas) e objetos da classe Algoritmos e Matematica;
Receberá o código do aluno e as notas para cada disciplina;
Irá enviar os dados para cada objeto da classe Disciplina;
Irá calcular e exibir a média do aluno para cada disciplina;
21
Explore o assunto!
• Referências
– CAELUM. Java e Orientação a Objetos. [Internet]. [citado em 2014 Feb 11]. Disponível em: https://www.caelum.com.br/apostila-java-orientacao-objetos/.
23