Você está na página 1de 12

PROGRAMAÇÃO ORIENTADA A

OBJETOS

Prof: Pedro Felipe (pedro@cotemig.com.br)

Cotemig – 1º sem/2011
ORGANIZAÇÃO DO CÓDIGO JAVA
 Pacotes são como pastas, onde pode-se ter pacotes
ou arquivos fontes dentro deles. A API Java
possui diversos pacotes que utilizamos no dia-dia.

-> Navegando diretamente para a pasta de


arquivos fonte do projeto pode-se visualizar a
estrutura hierárquica de pastas, representadas
pelos pacotes.

 A função de um pacote é agrupar arquivos fontes


de funcionalidades comuns ou complementares.
ORGANIZAÇÃO DO CÓDIGO JAVA
 Em Java a utilização de pacotes é opcional, mas
seu uso é altamente recomendado.

 Quando um pacote é declarado em um arquivo


.java aquele arquivo sera transportado para a
pasta do pacote ao qual pertence. O nome de um
pacote é iniciado por letra minúscula e a cada “ . ”
é acessado um pacote / nível de diretório mais
interno.
DECLARAÇAO DE PACOTES

 Sintaxe geral para pacotes:


package <nome do pacote> [.nome do pacote]*;

 Obs.: A declaração package indica a qual pacote o


arquivo fonte pertence

 Só pode haver um pacote por arquivo fonte.


PACOTES DE SOFTWARE

SistemaFaculdade

domínio

interface

Faculdade

relatorios
DISTRIBUIÇÃO DO ARQUIVO DE CÓDIGO

 Sintaxe geral do arquivo de código:


 [<declaração do pacote>]
 [<declaração das classes externas que serão importadas>]
 <declaração da classe pública>

 Exemplo:
package faculdade.relatorios;
import java.io.*;
public class Faculdade {
(...)
}
IMPORT

 É utilizado para informar e localizar as classes de


quais pacotes deseja-se utilizar.

 Sintaxe geral do import:


import <nome do pacote> [.<nome do pacote>].<classe>;
import <nome do pacote> [.<nome do pacote>].*;

 Exemplo:
import faculdade.relatorios.*
import faculdade.relatorios.RelatorioFinanceiro;

 O import do Java é diferente do #include do C++!


ENCAPSULAMENTO

 Impões regras de acesso aos membros da classe:

A qualquer momento, após instanciar o objeto, o


código do cliente terá acesso a qualquer atributo
da classe.
Esse tipo de situação permite manipulação
indevida do objeto e pode gerar erro.

Isto não deveria ocorrer.


Exemplo: Observe que as informações
 data.dia=100; de data estão incorretas.
Como resolver esta
 data.mes = 25;
questão?
 data.ano = -12345;
ENCAPSULAMENTO

 Através do encapsulamento podemos modificar a classe MinhaData para que


seus atributos sejam acessados apenas através de métodos.

Trabalhando desta maneira é possível validar as


informações antes da atribuição o que irá garantir a correta
manipulação da classe.

O que irá ocorrer


se tentarmos
 Exemplo:
data.dia = 255?
 data.setMes(5)
 data.setDia(255);
ENCAPSULAMENTO
 Através de métodos get (getter) e set (setter),
podemos restringir o acesso direto a variáveis,
forçando assim a utilização de métodos para
atribuir valores as variáveis (setters) e de métodos
para retornar o valor de variáveis (getters).

 Através dos setters a atribuição de valores pode ser


feita de forma segura, por exemplo, bloqueando a
inserção de uma data inválida, ou de uma pessoa
com idade superior a 150 anos.
->Ex: public void setIdade(int idade){
if(idade<=150)
this.idade=idade;
}
ENCAPSULAMENTO

 Em um método setDia da classe MinhaData


podemos ter códigos para verificação se uma data
informada é válida. Para isso, no momento de
atribuir o dia teriamos que verificar quantos dias
um determinado mês pode ter, além de verificar
se o ano é bissexto.
DÚVIDAS??

Você também pode gostar