Aula 4 acessibilidade

Preview:

Citation preview

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

Recommended