Post on 13-Jul-2015
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
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.
Acessibilidade
Por que restringir o acesso a certas partes de umaclasse?
Deve-se fornecer ao usuário, cliente de umaclasse, o necessário e somente o necessário paraque ele tire proveito da funcionalidade destaclasse.
Os detalhes devem ser omitidos, somente a listade operações a qual uma classe deve atenderfica visível.
Acessibilidade
O Java possui três especificadores de acesso
explícitos e um especificador implícito
(public, private e
protected)
(package).
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
Acessibilidade
Com estes especificadores se definem campos emétodos de uso livre (public) ou ocultos (private),evitando seu uso.
Também permitem indicar quais elementos daclasse poderão ser empregados na construção denovas subclasses (protected) através da herança.
A omissão de especificadores subentende o nívelpacote (package)
Exemplo 01
Exemplo 01
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.
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.
Sempre se pensa em objetos como especializações de
outros objetos:
Metais preciosos - metais
Carros esportivos - carros
Livros de romance – livros
Subclasse, superclasse e diagrama
de hierarquia de classe
Metal precioso
Carro esportivo
Livro de romance
Metal
Carro
Livro
Conta Bancária
Conta Corrente
Poupança Aplicação
Herança
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.
Herança
Só é permitida a herança de uma classe para outra (ou seja,não existem mecanismos diretos para herança múltipla emJava), mas é possível termos classes que herdamindiretamente de outras através da herança em cascata: aclasse E pode herdar das classes C e D se a classe E herdarda D e esta, por sua vez, herdar da classe C.
Herança de classes funciona em um sentido somente: Aclasse Filho pode herdar da classe Pai e acrescentarmétodos e variáveis próprias, mas estas somente valerãopara a classe Filho - a classe Pai não sofrerá modificaçõesnem poderá usar o que foi declarado dentro da classeFilho.
Relacionamento ‘é-um’ X Relacionamento ‘parte de’
Relacionamentos de subclasse são relacionamentos de classe
Relacionamentos de parte ou componentes são relacionamentos entre objetos
Máquina
Pistão
Ponto
Círculo
Herança e Subclasses
Subclasse: uma classe que herda métodos
e representação de uma classe existente
Superclasse: uma classe da qual uma
outra classe herda representação e
métodos
NoConta 123456Saldo 10000.00Tempo 5.0
Objeto
Conta Bancária
Conta Corrente
AplicaçãoPoupança
NoConta 654321Saldo 3300.77
NoConta 162435Saldo 23.99
Herança e Subclasses
Especialização e Generalização
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
Herança e Subclasses
OPERAÇÕESImprimir
OPERAÇÕESDepositar: quantidadeRetirar: quantidadeConsultarSaldo
OPERAÇÕES
OPERAÇÕESRetirar: quantidade
OPERAÇÕESDepositar: quantidadeRetirar: quantidadeConsultarTempo
Classe Objeto
Classe Conta Bancária
Classe Conta Corrente
Classe Poupança
Classe Aplicações
Herança e Subclasses
Herança - protected
Protected – protegido
Só pode ser usado na implementação desubclasses
Apenas utilizado com herança
Parecido com o private, porém a classe queherdar a classe que possui métodos ou atributosprotegidos os herdará também.
Exemplo
Banco.java
Conta.java
Conta_Poupança.java
Exercício 2
A partir da estrutura apresentada no
próximo slide, crie as respectivas classes
utilizando o conceito de herança
Exercício 2
Classe
Objeto_Veículo
OPERAÇÕESAtributos e métodos
OPERAÇÕES
Atributos e
métodos OPERAÇÕESAtributos e métodos
OPERAÇÕES
Atributos e métodos
Classe Veículo
Classe Terrestre
Classe Aéreo
Classe Aquática
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
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
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
Exercício 2
Terrestre – possíveis atributos
Número de eixos
Tração
Quantidade de portas
Tipo
Quilometragem (Km)
Exercício 2
Terrestre – possíveis métodos
Atribuir
Mostrar
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
Exercício 2
Aéreo – possíveis métodos
Atribuir
Mostrar
Exercício 2
Aquático – possíveis atributos
Tipo de propulsão – hélice, remo,vela
Milhagem marítimas
Quantidade de coletes salva vidas
Tamanho – pés
Tipo – pesca, passeio
Exercício 2
Aquático – possíveis métodos
Atribuir_
Mostrar