SlideShare una empresa de Scribd logo
1 de 32
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 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.
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 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)
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.
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
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 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.
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
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
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
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
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.
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


                      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
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

Más contenido relacionado

Similar a Aula 4 acessibilidade

http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1Filipo Mór
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseRegis Magalhães
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16marcusNOGUEIRA
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
Script c
Script cScript c
Script cRaphael
 
Orientação a objetos com PHP
Orientação a objetos com PHPOrientação a objetos com PHP
Orientação a objetos com PHPLeonardo Soares
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e ComposiçãoDenis L Presciliano
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e ComposiçãoDenis L Presciliano
 
Classes objetos
Classes objetosClasses objetos
Classes objetosnikson123
 
Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1Elaine Cecília Gatto
 

Similar a Aula 4 acessibilidade (20)

Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
 
Java11
Java11Java11
Java11
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
 
3- POO
3- POO3- POO
3- POO
 
Poo
PooPoo
Poo
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Script c
Script cScript c
Script c
 
Orientação a objetos com PHP
Orientação a objetos com PHPOrientação a objetos com PHP
Orientação a objetos com PHP
 
POO Herança
POO HerançaPOO Herança
POO Herança
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e Composição
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e Composição
 
Classes objetos
Classes objetosClasses objetos
Classes objetos
 
Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1
 

Más de Danilo Alves

Aula 7 entrada e saída pelo teclado
Aula 7 entrada e saída pelo tecladoAula 7 entrada e saída pelo teclado
Aula 7 entrada e saída pelo tecladoDanilo Alves
 
Aula 6 conexão bd
Aula 6 conexão bdAula 6 conexão bd
Aula 6 conexão bdDanilo Alves
 
Aula 03 passagem de parâmetros
Aula 03   passagem de parâmetrosAula 03   passagem de parâmetros
Aula 03 passagem de parâmetrosDanilo Alves
 
Aula 02 implementação objeto
Aula 02   implementação objetoAula 02   implementação objeto
Aula 02 implementação objetoDanilo Alves
 
Aula 8 criação dos métodos
Aula 8 criação dos métodosAula 8 criação dos métodos
Aula 8 criação dos métodosDanilo Alves
 
Segurança da Informação
Segurança da InformaçãoSegurança da Informação
Segurança da InformaçãoDanilo Alves
 
Treinamentos em TI
Treinamentos em TITreinamentos em TI
Treinamentos em TIDanilo Alves
 

Más de Danilo Alves (9)

Aula 7 entrada e saída pelo teclado
Aula 7 entrada e saída pelo tecladoAula 7 entrada e saída pelo teclado
Aula 7 entrada e saída pelo teclado
 
Aula 6 conexão bd
Aula 6 conexão bdAula 6 conexão bd
Aula 6 conexão bd
 
Aula 5 pacote
Aula 5   pacoteAula 5   pacote
Aula 5 pacote
 
Aula 03 passagem de parâmetros
Aula 03   passagem de parâmetrosAula 03   passagem de parâmetros
Aula 03 passagem de parâmetros
 
Aula 02 implementação objeto
Aula 02   implementação objetoAula 02   implementação objeto
Aula 02 implementação objeto
 
Aula 8 criação dos métodos
Aula 8 criação dos métodosAula 8 criação dos métodos
Aula 8 criação dos métodos
 
Inner Join
Inner JoinInner Join
Inner Join
 
Segurança da Informação
Segurança da InformaçãoSegurança da Informação
Segurança da Informação
 
Treinamentos em TI
Treinamentos em TITreinamentos em TI
Treinamentos em TI
 

Aula 4 acessibilidade

  • 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)
  • 28. Exercício 2 Terrestre – possíveis métodos  Atribuir  Mostrar
  • 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
  • 30. Exercício 2 Aéreo – possíveis métodos  Atribuir  Mostrar
  • 31. 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
  • 32. Exercício 2 Aquático – possíveis métodos  Atribuir_  Mostrar