Baixe JAVA-LIVRO SOBRE PROGRAMAÇÃO EM JAVA e outras Manuais, Projetos, Pesquisas em PDF para Física, somente na Docsity!
Pacotes e^ Pacotes e
EncapsulamentoEncapsulamento
Java 2 Standard Edition Helder da Rochawww.argonavis.com.br
Assuntos abordados neste módulo
^ Este módulo explora pacotes em Java, iniciandopelos pacotes da própria API Java e terminando pormostrar como construir pacotes e guardá-los em umarquivo JAR ^ Assuntos^ ^ API do Java 2 - visão geral dos principais pacotes^ ^ Classes do java.lang: visão geral das principais classes^ ^ Métodos de java.lang.Object que devem serimplementados^ ^ Pacotes em Java: como criar e como usar^ ^ Arquivos JAR para bibliotecas e executáveis
java.lang
^ É importante conhecer bem as classes deste pacote ^ Interfaces^ ^ Cloneable^ ^ Runnable ^ Classes^ ^ Boolean, Number (e subclasses), Character, Void^ ^ Class^ ^ Math^ ^ Object^ ^ Process, Thread, System e Runtime^ ^ String e StringBuffer^ ^ Throwable e Exception (e subclasses)
java.lang.Object
^ Raiz da hierarquia de classes da API Java ^ Toda classe estende Object, direta ou indiretamente^ ^ Classes que não declaram estender ninguém, estendemObject diretamente
class Ponto {}^ é o mesmo que class Ponto extends Object {} Classes que declaram estender outra classe, herdam deObject pela outra classe cuja hierarquia começa em Object
^ Todos os métodos de Object estão automaticamentedisponíveis para qualquer objeto^ ^ Porém, as implementações são default, e geralmente inúteispara objetos específicos
Classe java.lang.Object e interface Cloneable^ ^ Principais métodos de Object (todos os objetos têm)^ ^ public boolean equals(Object obj)^ ^ public String toString()^ ^ public int hashCode()^ ^ protected Object clone()
throws CloneNotSupportedException
^ public void wait() throws InterruptedException ^ public void notify() Cloneable ^ Usada para permitir que um objeto seja clonado. Nãopossui declaração de métodos ^ Como fazer:^ class^ SuaClasse
implements
Cloneable
class^ SuaClasse
extends^
SupClasse
implements por ser protectedTEM que ser sobrepostopara que possa ser usadoem qualquer classe^ Cloneable
Como estender Object
^ Há vários métodos em Object que devem sersobrepostos pelas subclasses^ ^ A subclasse que você está estendendo talvez já tenhasobreposto esses métodos mas, alguns deles, talvezprecisem ser redefinidos para que sua classe possa serusada de forma correta ^ Métodos que devem ser sobrepostos^ ^ boolean
equals(Object
o) : Defina o critério de
igualdade para seu objeto int^ hashCode()
: Para que seu objeto possa ser localizado em Hashtables String^ toString()
: Sobreponha com informações específicas do seu objeto Object^ clone() : se você desejar permitir cópias do seu objeto
instanceof e exemplo com equals()
^ instanceof é um operador usado para comparar umareferência com uma classe^ ^ A expressão será true se a referência for do tipo de umaclasse ou subclasse testada e false, caso contrário ^ Exemplo: sobreposição de equals()^ class Point {private int x, y;public boolean equals(Object obj) {if (obj instanceof Point) {
Point ponto = (Point) obj;if (ponto.x == this.x && ponto.y == this.y) {return true;} } return false;} }
Como sobrepor toString()
^ toString() deve devolver um String que possarepresentar o objeto quando este for chamado emuma concatenação ou representado como texto^ ^ Decida o que o toString() deve retornar^ ^ Faça chamadas super.toString() se achar conveniente^ ^ Prefira retornar informações que possam identificar oobjeto (e não apenas a classe)^ ^ toString() é chamado automaticamente em concatençõesusando a referência do objeto
Como sobrepor hashCode()
^ hashCode() deve devolver um número inteiro querepresente o objeto^ ^ Use uma combinação de variáveis, uma chave primária ouos critérios usados no equals()^ ^ Número não precisa ser único para cada objeto mas doisobjetos iguais devem ter o mesmo número.^ ^ O método hashCode() é chamado automaticamentequando referências do objeto forem usadas em coleçõesdo tipo hash (Hashtable, HashMap)^ ^ equals() é usado como critério de desempate, portanto,se implementar hashCode(), implemente equals()também.
Como sobrepor clone()
^ clone() é chamado para fazer cópias de um objeto^ Circulo
c^ =^ new
Circulo(4,
5,^ 6);
Circulo copia^
=^ (Circulo)
c.clone();
^ Se o objeto apenas contiver tipos primitivos comoseus campos de dados, é preciso1. Declarar que a classe implementa Cloneable2. Sobrepor clone() da seguinte forma:^ public Object clone() {try {
return super.clone();} catch (CloneNotSupportedException e) {return null;} }
cast é necessárioporque^ clone() retorna Object é preciso sobrepor clone()^ porque eleé definido comoprotected
A classe java.lang.Math
^ A classe Math é uma classe final (não pode serestendida) com construtor private (não permite acriação de objetos) ^ Serve como repositório de funções e constantesmatemáticas ^ Para usar, chame a constante ou função precedidado nome da classe:^ double
distancia
=^ Math.sin(0.566); int^ sorte
=^ (int)
(Math.random()
*****^ 1000);
double^ area^ =^
**4 ***^ Math.PI
*****^ raio;
^ Consulte a documentação sobre a classe Math eexplore as funções disponíveis
Funções matemáticas
^ Algumas funções úteis de java.lang.Math (consulte adocumentação para mais detalhes)^ ^ double random()
: retorna número aleatório entre 0 e 1 ^ int floor(double valor)
: trunca o valor pelo decimal (despreza as casas decimais) int ceil(double valor)
: retorna o próximo valor inteiro (arredonda para cima) int round(double valor)
: arredonda valor
^ double pow(double valor, double valor)
: expoente
^ double sqrt(double valor)
: raiz quadrada
^ double sin(double valor)
,^ double cos(double valor)
double tan(double valor)
: calculam seno, cosseno e
tangente respectivamente Veja ainda:
exp() ,^ log()
,^ ln() ,^ E , PI , etc.
Classes empacotadoras
^ Criação e conversão^ Integer
n^ =^ new
Integer(15); Integer m^ =^ Integer.valueOf(15); int^ q = n.intValue(); ^ Para conversão de String em tipos primitivos^ int
i^ =^ Integer.parseInt("15");double^ i^ =
Double.parseDouble("15.9"); boolean b^ = (new^ Boolean("true")).booleanValue();
Number
Double Long^ Float Integer Void^ Byte^ Short
Character Boolean
Maiseficiente
Controle e acesso ao sistema
^ Classe System dá acesso a objetos do sistemaoperacional^ ^ System.out
- saída padrão (java.io.PrintStream) ^ System.err - saída padrão de erro (java.io.PrintStream) ^ System.in - entrada padrão (java.io.InputStream)
^ Runtime e Process permitem controlar processosexternos (processos do S.O.)^ ^ Runtime
r^ =^ System.getRuntime(); Process p^ = r.exec("c:\program~1\micros~1\msie.exe");
^ Thread e Runnable lidam com processos internos(processos da aplicação - threads)