+ Programação Orientada a Objetos Pacotes e CLASSPATH: Definifdo e Usando Pacotes
+ Pacotes 2 Um pacote é uma coleção de classes e interfaces que provem proteção de acesso e gerenciamento de espaços de nomes. Um pacote forma e organiza grupos de classes e interfaces. Facilidade de determinar classes relacionadas Evita conflito de nomes Proteção de acesso
+ Pacotes 3 As classes ficam em pacotes o pacote faz parte do nome da classe java.util.scanner java.util.arraylist Alguns pacotes padrão do JAVA java.lang: classes fundamentais importado automaticamente java.util: classes utilitárias java.io: classes para entrada e saída java.net: classes para uso em rede (TCP/IP)... e muito mais!
+ Pacotes 4 Para usar uma classe que pertence a um outro pacote é necessario usar o nome completo: java.util.scanner sc = new java.util.scanner(system.in); ou importar a classe: import java.util.scanner;... Scanner sc = new Scanner(System.in); Classes do pacote java.lang são importadas por padrão: String, StringBuilder, Integer, Double, System, entre outras
+ Localização de classes 5 A JVM precisa saber onde encontrar uma determinada classe Classe está em um arquivo.class A máquina virtual não procura no sistema de arquivos inteiro Classes da API padrão estão em um lugar fixo e a JVM sabe onde encontrar (instalação da JVM) Precisamos informar onde estão nossas classes
+ CLASSPATH 6 A JVM procura no CLASSPATH set CLASSPATH=c:\classes (Windows) export CLASSPATH=/home/aluno/classes (Unix) Diretório classes deverá conter os arquivos com as classes (.class) pacotes são diretórios
+ Classes em pacotes 7 No arquivo que escrevemos o código fonte: É preciso informar em qual pacote a classe esta no início do arquivo que define a classe: package nomepacote; Exemplo: package br.cefetrn.tads.poo; Se não especificado classe pertence ao pacote default (padrão), que não tem nome Desaconselhável usar pacote padrão
+ Classes em pacotes 8 Considere a classe Racional pacote br.cefetrn.tads.poo; package br.ifrn.tads.poo; public class Racional{... } Ao ser compilada, o arquivo.class deverá ser colocado no diretório br/ifrn/tads/poo da raiz do CLASSPATH C:\classes\br\ifrn\tads\poo por exemplo
+ Compilação 9 Opção -d do compilador informa raiz do diretório onde a classe sera colocada javac -d c:\classes Racional.java Este comando compila o arquivo Racional.java e coloca o.class no diretório correspondente ao pacote a partir de c:\classes c:\classes\ifrn\tads\poo\racional.class Se o CLASSPATH estiver definido para c:\classes a JVM saberá onde encontrar a classe Racional
+ Para usar 10 import ifrn.tads.poo.racional; public class Main{... Racional r1 = new Racional();... } Importando Nome completo public class Main{... ifrn.tads.poo.racional r1; r1 = new ifrn.tads.poo.racional();... }
+ Exemplo 11 Crie a classe Racional colocando o nome do pacote define o CLASSPATH set CLASSPATH=%CLASSPATH%;c:\classes Compile colocando o.class no CLASSPATH javac -d c:\classes Racional.java Execute chamando o nome completo da classe java ifrn.tads.poo.racional Caso não tenha definido o CLASSPATH java -cp c:\classes cefetrn.tads.poo.racional
+Dúvidas 12
+ Exercícios 13 Escreva as seguintes classes: (veja próximos slides) Circulo ContaBancaria Data Coloque todas elas no pacote: cefetrn.poo.exercicios Compile informando onde deverão ser colocados os.class c:\classes ou /home/aluno/classes
+ Classe Data 14 Crie um construtor que receba 3 inteiros como parâmetros dia, mês e ano Implemente o método avancar Este método muda a data para o dia seguinte Implemente o tostring deve retornar uma String no formato dd/mm/aaaa
+ Classe Circulo 15 Implemente dois contrutores Um sem parâmetros, que crie um círculo com raio 1 Outro com o raio como parâmetro Implemente o tostring retorne uma String contendo: Circulo (raio) Raio é o raio do circulo Implemente os métodos diametro, circunferencia e area
+ Classe ContaBancaria 16 Implemente um construtor Recebe o número da conta e o nome do titular como parâmetros saldo é 0.0 Implemente o tostring da forma: numero saldo (titular) Exemplo: 21321 1231,00 (João José) Implemente os metodos: sacar, depositar, gettitular, getsaldo
+ Exercicios 17 Faça programas para testar as classes que você criou Escreva um programa que simule uma agência bancária Armazene as contas em um array e crie opções para: criar contas realizar saque realizar depósito ver dados de uma conta (pelo número) listar todas as contas