Pacotes, Classes B - PowerPoint PPT Presentation

About This Presentation
Title:

Pacotes, Classes B

Description:

Pacotes, Classes B sicas, Acessibilidade Carlos Bazilio Depto de Ci ncia e Tecnologia P lo Universit rio de Rio das Ostras Universidade Federal Fluminense – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 18
Provided by: www2IcUf7
Category:

less

Transcript and Presenter's Notes

Title: Pacotes, Classes B


1
Pacotes, Classes Básicas, Acessibilidade
  • Carlos Bazilio
  • Depto de Ciência e Tecnologia
  • Pólo Universitário de Rio das Ostras
  • Universidade Federal Fluminense

2
Organização das Classes
  • Como podemos organizar nossas classes e
    interfaces de forma mais lógica?
  • Por exemplo, como separar classes que acessam uma
    base de dados das classes que preparam uma
    interface com o usuário?
  • Em Java, fazemos isso com o uso de pacotes

3
Sintaxe de Pacotes
// Arquivo ClienteConta.java package
contas public class ClienteConta
// Arquivo ClienteCC.java package contas public
class ClienteCC extends ClienteConta
// Arquivo ClientePoupanca.java package
contas public class ClientePoupanca extends
ClienteConta
4
Pacotes
// Arquivo ClienteConta.java package
contas public class ClienteConta
  • Para a máquina virtual de Java, a classe
    ClienteConta passa a ser referenciada como
    contas.ClienteConta
  • Ou seja, o pacote funciona com um espaço de nomes
    (namespaces) para a identificação de uma classe

5
Pacotes
  • Num ambiente de aplicações integrado, de forma a
    facilitar a identificação de classes, os pacotes
    costumam ter lei de formação inversa das urls
  • ltcodigo-paisgt.ltcodigo-atividadegt.ltentidadegt.ltsetor
    gt...
  • Ex. br.com.sirius.gerspool
  • Pacotes também podem ser aninhados
  • Fisicamente (sistema de arquivos), pacotes são
    manipulados como diretórios

6
Acesso a outros Pacotes
  • Uma classe declarada num pacote pode acessar a
    classe de outro de 2 formas básicas
  • 1ª. Através do comando import

// Arquivo ClienteConta.java package
contabasica public class ClienteConta
// Arquivo ClienteCC.java package contas import
contabasica.ClienteConta public class ClienteCC
extends ClienteConta
7
Acesso a outros Pacotes
  • Uma classe declarada num pacote pode acessar a
    classe de outro de 2 formas básicas
  • 2ª. Colocando a referência completa à classe

// Arquivo ClienteConta.java package
contabasica public class ClienteConta
// Arquivo ClienteCC.java package contas public
class ClienteCC extends contabasica.ClienteCon
ta
8
Acesso a outros Pacotes
  • Um arquivo pode importar quantas classes forem
    necessárias
  • O 2 métodos de referência a pacotes externos
    podem ser combinados
  • Uma variante do import (import ltnome-pacotegt.)
    permite que todas as classes deste pacote sejam
    importadas
  • P. ex. import contabasica.

9
Acesso a outros Pacotes
  • Para o caso de classes homônimas, a distinção
    pode ser feita pelo uso do nome completo da
    classe
  • Por exemplo, os pacotes java.util e java.sql
    possuem uma classe chamada Date
  • Para diferenciarmos, basta colocarmos o nome
    completo da classe (prefixá-la com o nome do
    pacote)

10
Importação Estática
  • À partir da versão 5 (JDK 5.0 -
    http//en.wikipedia.org/wiki/Java_version_history)
    , o import foi aprimorado para permitir
    importação estática
  • Por exemplo, se precisamos construir uma equação
    matemática, como
  • Math.sqrt(Math.pow(x,2) Math.pow(y,2))
  • Podemos reescrevê-la da seguinte forma

import static java.lang.Math. ... sqrt(pow(x,
2) pow(y,2)) ...
11
Visibilidade de Acesso
  • Java possui 4 possíveis formas de definição de
    visibilidade de acesso a recursos (atributos e
    métodos)
  • public acesso permitido a método localizado em
    qualquer classe
  • protected acesso permitido a método localizado
    na classe onde o recurso ocorre, nas
    especializações e no mesmo pacote
  • private acesso permitido a método localizado
    apenas na classe onde o recurso ocorre
  • default (implícito) acesso permitido a método
    localizado no mesmo pacote do recurso

12
Visibilidade de Acesso
Access Levels
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
  • http//java.sun.com/docs/books/tutorial/java/javaO
    O/accesscontrol.html

13
Visibilidade de Acesso
  • A definição da visibilidade de acesso permite que
    encapsulemos a estrutura de nossas classes
  • Com isso, conseguimos garantir a manipulação
    correta de elementos chave da nossa aplicação

14
Visibilidade de Acesso
public class ClienteBanco private String nome
private int conta private float
saldo public void RealizaSaque (float s) if
(s lt this.saldo) this.saldo this.saldo
s
public class Principal public static void
main (String arg) ClienteBanco
cliente1 cliente1 new ClienteBanco (eu,
0001, 500) cliente1.saldo cliente1.saldo
100 cliente1.RealizaSaque(100)
15
Biblioteca de Java
  • A linguagem Java possui uma biblioteca extensa de
    classes organizadas em pacotes
  • java.lang contém classes da definição básica da
    linguagem (String, Math, System, ... -
    http//java.sun.com/javase/6/docs/api/java/lang/pa
    ckage-summary.html), portanto, não precisa ser
    importado
  • java.util contém classes úteis para construção
    de aplicações diversas (classes de coleções
    pilhas, filas, conjuntos, ... classes para
    manipulação de datas, horas, ...
    http//java.sun.com/javase/6/docs/api/java/util/pa
    ckage-summary.html)
  • java.io contém classes para manipulação de
    entrada e saída (http//java.sun.com/javase/6/docs
    /api/java/io/package-summary.html)

16
Biblioteca de Java
  • A linguagem Java possui uma biblioteca extensa de
    classes organizadas em pacotes
  • java.net implementação de aplicações de acesso à
    rede (http//java.sun.com/javase/6/docs/api/java/n
    et/package-summary.html)
  • java.sql classes para manipulação de bancos de
    dados
  • javax.sql extensão para manipulação de bancos no
    lado do servidor (http//java.sun.com/javase/6/doc
    s/technotes/guides/jdbc/index.html)
  • etc ... (http//java.sun.com/javase/6/docs/api/ind
    ex.html)

17
Exercício
  • Implementação do método extrato utilizando alguma
    coleção para armazenar as operações e data/hora
    para indicar o momento da operação
  • Dica classes disponíveis no pacote java.util
Write a Comment
User Comments (0)
About PowerShow.com