1. Desenvolvimento de Software II
Java Banco de dados JODBC
Aula 4: Acessibilidade e Herança
Profa Ms.Larissa Pavarini da Luz
larissapavarinidaluz@yahoo.com.br
2. Acessibilidade
Acessibilidade ou Visibilidade ou
Encapsulamento, conhecidos como “data hiding”,
é um conceito bastante importante em orientação a
objetos.
São maneiras de restringir o acesso as declarações
de uma classe e a própria classe
Isto é feito através do uso das palavras
reservadas public, private e protected que são
qualificadores.
3. Acessibilidade
Por que restringir o acesso a certas partes de uma
classe?
Deve-se fornecer ao usuário, cliente de uma
classe, o necessário e somente o necessário para
que ele tire proveito da funcionalidade desta
classe.
Os detalhes devem ser omitidos, somente a lista
de operações a qual uma classe deve atender
fica visível.
4. Acessibilidade
O Java possui três especificadores de acesso
explícitos e um especificador implícito
(public, private e
protected)
(package).
5. Acessibilidade
Especificadores Nível Indica que o campo ou o método
public Público Pode ser usado livremente pelas instâncias da
classe
protected Protegido Só pode ser usado na implementação de
subclasses
package Pacote Só pode ser usado por instâncias dentro do
mesmo pacote
private privado Não pode ser usado fora da implementação da
própria classe
6. Acessibilidade
Com estes especificadores se definem campos e
métodos de uso livre (public) ou ocultos (private),
evitando seu uso.
Também permitem indicar quais elementos da
classe poderão ser empregados na construção de
novas subclasses (protected) através da herança.
A omissão de especificadores subentende o nível
pacote (package)
9. Exercício 01
A partir do exercício
Calculo_geometrico.java fazer as seguintes
mudanças:
Crie atributos do tipo private nas classes
Area_geom.java e Vol_geom.java e crie
métodos private que tratem desses atributos de
tal forma que quando retornar o resultado, seja
retornado pelo método public já criado.
10. Herança
Exemplos e exercícios dados até agora
é necessária a criação de duas ou mais classes distintas
mas com muitas características em comum.
Ao invés de criar estas classes e duplicar suas
variáveis e métodos:
pode-se usar um conceito de POO
Herança que permite que uma classe herde de outra algumas
variáveis e métodos reduzindo a necessidade de duplicação.
11. Herança
Sempre se pensa em objetos como especializações de
outros objetos:
Metal precioso Metal
Metais preciosos - metais Carro esportivo Carro
Carros esportivos - carros Livro de romance Livro
Livros de romance – livros
Conta
Subclasse, superclasse e diagrama Bancária
de hierarquia de classe
Conta
Poupança Aplicação
Corrente
12. Herança
Herança entre classes em Java é declarada
usando a palavra-chave extends.
Para que uma classe D herde as variáveis e
métodos da classe C, declara-se
class D extends C.
13. Herança
Só é permitida a herança de uma classe para outra (ou seja,
não existem mecanismos diretos para herança múltipla em
Java), mas é possível termos classes que herdam
indiretamente de outras através da herança em cascata: a
classe E pode herdar das classes C e D se a classe E herdar
da D e esta, por sua vez, herdar da classe C.
Herança de classes funciona em um sentido somente: A
classe Filho pode herdar da classe Pai e acrescentar
métodos e variáveis próprias, mas estas somente valerão
para a classe Filho - a classe Pai não sofrerá modificações
nem poderá usar o que foi declarado dentro da classe
Filho.
14. Herança e Subclasses
Relacionamento ‘é-um’ X Relacionamento ‘parte de’
Máquina Ponto
Pistão Círculo
Relacionamentos de subclasse são relacionamentos de classe
Relacionamentos de parte ou componentes são relacionamentos entre
objetos
15. Herança e Subclasses
Especialização e Generalização
NoConta 123456
Subclasse: uma classe que herda métodos Saldo 10000.00
e representação de uma classe existente Tempo 5.0
Superclasse: uma classe da qual uma
outra classe herda representação e NoConta 654321
Saldo 3300.77
métodos
Objeto
NoConta 162435
Saldo 23.99
Conta
Bancária
Conta Poupança Aplicação
Corrente
16. Herança e Subclasses
Aplicação – tempo (variável de instância adicional)
Subclasses podem adicionar novas variáveis de instância, mas não
podem remover
Subclasses podem sobrepor a herança de um método de uma
superclasse
Métodos de implementação idêntica nas subclasses podem ser
implementados uma única vez na superclasse
Mensagem enviadax Qual método é executado
umaContaAplicação consultarTempo método da classe
ContaAplicação
umaContaCorrente consultarSaldo método herdado da classe
ContaBancária
umaContaPoupança consultarTempo erro – nenhum método na
superclasse
umaContaPoupança imprimir método herdado da classe Objeto
17. Herança e Subclasses
Classe Objeto
OPERAÇÕES
Imprimir
Classe Conta Bancária
OPERAÇÕES
Depositar: quantidade
Retirar: quantidade
ConsultarSaldo
Classe Conta Corrente Classe Aplicações
OPERAÇÕES
OPERAÇÕES
Classe Poupança Depositar: quantidade
Retirar: quantidade
OPERAÇÕES
ConsultarTempo
Retirar: quantidade
18. Herança - protected
Protected – protegido
Só pode ser usado na implementação de
subclasses
Apenas utilizado com herança
Parecido com o private, porém a classe que
herdar a classe que possui métodos ou atributos
protegidos os herdará também.
22. Exercício 2
A partir da estrutura apresentada no
próximo slide, crie as respectivas classes
utilizando o conceito de herança
23. Exercício 2
Classe
Objeto_Veículo
Classe Veículo
OPERAÇÕES
Atributos e métodos
Classe Terrestre Classe Aquática
OPERAÇÕES OPERAÇÕES
Atributos e Classe Aéreo Atributos e métodos
métodos OPERAÇÕES
Atributos e métodos
24. Exercício 2
Veículo – possíveis atributos
Velocidade Máxima
Capacidade de carga
Quantidade de pessoas
Ano de fabricação
Cor
Combustível
Fabricante
25. Exercício 2
Veículo – possíveis métodos
Atribuir_Velocidade_Máxima(double valor)
Atribuir_Capacidade de carga
Atribuir_Quantidade de pessoas
Atribuir_Ano de fabricação
Atribuir_Cor
Atribuir_Combustível
Atribuir_Fabricante
26. Exercício 2
Veículo – possíveis métodos
Apresentar_Velocidade_Máxima(double valor)
Apresentar_Capacidade de carga
Apresentar_Quantidade de pessoas
Apresentar_Ano de fabricação
Apresentar_Cor
Apresentar_Combustível
Apresentar_Fabricante
27. Exercício 2
Terrestre – possíveis atributos
Número de eixos
Tração
Quantidade de portas
Tipo
Quilometragem (Km)
29. Exercício 2
Aéreo – possíveis atributos
Tipo de propulsão – hélice, turbina, gás (balão)
Boolean asas
Tamanho
Milhagem
Tipo de uso – particular, público, militar
Empuxo – potência de decolagem
Tipo de decolagem – vertical ou horizontal