JAVA - Apostila
532 pág.

JAVA - Apostila


DisciplinaProgramação Orientada A Objetos3.913 materiais57.357 seguidores
Pré-visualização28 páginas
for ( Aluno a : alunos ) {
8 System.out.println( a );
}
10
in.close();
12 } catch (ClassNotFoundException e) {
System.out.println( "Classe nao existe. Causa: " + e.getMessage() );
14 } catch (FileNotFoundException e) {
System.out.println( "Arq. nao existe. Causa: " + e.getMessage() );
16 } catch (IOException e) {
System.out.println( "Erro de E/S. Causa: " + e.getMessage() );
18 }
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 415 / 527
Tópicos Relevantes \u2013 Streams
Lendo e escrevendo objetos \u2013 ObjectStream
1 Copiar um arquivo texto para um outro arquivo utilizando
FileReader e FileWriter
2 Copiar uma arquivo binário (imagem, por exemplo) para
um outro arquivo utilizando InputStream e OutputStream
3 Ler um arquivo texto utilizando LineNumberReader e depois
gravá-lo ao inverso utilizando PrintWriter
Por exemplo, arquivo origem está escrito \u201cABCDE\u201d, o de
destino estará escrito \u201cEDCBA\u201d
Dica: Utilize o método inverse de um objeto da classe
StringBuilder
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 416 / 527
7. Materiais Complementares \u2013 Conteúdo
1 Introdução 3
2 UML 22
3 Java 60
4 POO 183
5 Padrões de Projeto 356
6 Tópicos Relevantes 386
7 Materiais Complementares 417
Classes Wrapper 418
Classe Math 427
Classe String 440
Classe Date 459
Classe StringBuilder e StringBuffer 465
Classe StringTokenizer 474
Classe Iterator 478
Coleções 482
8 Extras 498Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 417 / 527
Materiais Complementares
Classes Wrapper
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 418 / 527
Materiais Complementares \u2013 Classes Wrapper
Para cada tipo primitivo de Java existe uma classe
correspondente que basicamente armazena o tipo
primitivo e provê diversas operações comuns, por exemplo:
converter um string para o tipo em questão
obter sua representação binária
Essa classe é denominada classe Wrapper
com esse recurso, um arranjo de objetos pode conter \u201ctipos
primitivos\u201d
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 419 / 527
Materiais Complementares \u2013 Classes Wrapper
Tipo Primitivo Classe Wrapper
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
Resumo:
Exatamente o nome do tipo primitivo iniciando com caixa
alta, exceto: Character e Integer
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 420 / 527
Materiais Complementares \u2013 Classes Wrapper
Convertendo um tipo primitivo para um objeto wrapper
Toda classe wrapper tem um construtor a partir de seu tipo
primitivo e de um string (exceto Character)
Exemplo:
Integer i = new Integer( 231 );
Integer i = new Integer( "231" );
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 421 / 527
Materiais Complementares \u2013 Classes Wrapper
Convertendo um string para um tipo primitivo
Uma outra utilidade de uma classe wrapper é a de
converter um string para um tipo primitivo correspondente
(exceto Character)
Exemplo:
int i = Integer.parseInt( "231" );
double d = Double.parseDouble( "231e-2" );
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 422 / 527
Materiais Complementares \u2013 Classes Wrapper
Autoboxing e unboxing
A partir do Java 5, a linguagem provê uma forma
automática de conversão de um tipo primitivo para o seu
objeto wrapper e vice-versa
Assim, essa tarefa é realizada de forma completamente
transparente, observe:
Integer i = 231;
int j = new Integer( 231 );
int h = i;
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 423 / 527
Materiais Complementares \u2013 Classes Wrapper \u2013 Character
Alguns métodos relevantes
public static boolean isDigit (char ch);
2 public static boolean isLetter (char ch);
public static boolean isLowerCase (char ch);
4 public static boolean isUpperCase (char ch);
public static char toLowerCase (char ch);
6 public static char toUpperCase (char ch);
Exemplo
char ch = \u2019a\u2019;
System.out.println( Character.isDigit( ch ) ); /* false */
System.out.println( Character.isLetter( ch ) ); /* true */
if ( Character.isLowerCase( ch ) ) { /* true */
ch = Character.toUpperCase( ch );
}
System.out.println( ch );
}
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 424 / 527
Materiais Complementares \u2013 Classes Wrapper \u2013 Integer
Alguns métodos relevantes
1 public static String toBinaryString(int i);
public static String toHexString(int i);
Exemplo
System.out.println( Integer.toBinaryString( i ) ); /* 11100111 */
System.out.println( Integer.toHexString( i ) ); /* e7 */
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 425 / 527
Materiais Complementares \u2013 Classes Wrapper \u2013 Double
Alguns métodos relevantes
public boolean isInfinite();
2 public static boolean isInfinite(double d);
4 public boolean isNaN();
public static boolean isNaN(double d);
Exemplo
double d = 2.0 / 0;
System.out.println( Double.isInfinite( d ) ); /* true */
d = 0.0 / 0;
System.out.println( Double.isNaN( d ) ); /* true */
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 426 / 527
Materiais Complementares
Classe Math
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 427 / 527
Materiais Complementares \u2013 Classe Math
Classe java.lang.Math
Existe uma classe na própria API Java que lida com
atribuições matemáticas
Essa classe chama-se Math e está no pacote java.lang
É importante mencionar que classes no pacote java.lang
não necessitam ser importadas
Math contém diversas operações e constantes largamente
utilizadas, como exponenciação, raiz quadrada, logaritmo,
seno, coseno, tangente etc
No próximo slide veremos a utilização de algumas delas
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 428 / 527
Materiais Complementares \u2013 Classe Math
Método sqrt
Retorna a raiz quadrada de um número, i.e.,
\u221a
n
Assinatura:
public static double sqrt (double n)
Exemplo
double raiz = Math.sqrt( a ); /* Suponha a = 4, logo... */
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 429 / 527
Materiais Complementares \u2013 Classe Math
Método pow
Retorna um número elevado a outro, i.e., ab
Assinatura:
public static double pow (double a, double b)
Exemplo
double exp = Math.pow( b, 2 ); /* Suponha b = 3, logo... */
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 430 / 527
Materiais Complementares \u2013 Classe Math
Constante PI
Além de operações, a classe Math possui uma série de
constantes, por exemplo, PI
Assinatura:
public static final double PI = 3.141596...
Exemplo
private static double area( double raio ) {
return Math.PI * Math.pow( raio, 2 );
}
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 431 / 527
Materiais Complementares \u2013 Classe Math
Método abs
Retorna o valor absoluto
Assinatura:
public static double abs (double a)
Exemplo
double absoluto = Math.abs( -4.6 );
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 432 / 527
Materiais Complementares \u2013 Classe Math
Método ceil
Retorna o valor \u201carredondado para cima\u201d
Assinatura:
public static double ceil (double a)
Exemplo
double acima = Math.ceil( 4.0001 );
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 433 / 527
Materiais Complementares \u2013 Classe Math
Método floor
Retorna o valor \u201carredondado para baixo\u201d
Assinatura:
public static double floor (double a)
Exemplo
double abaixo = Math.floor( 4.9999 );
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 434 / 527
Materiais Complementares \u2013 Classe Math
Método max
Retorna o maior valor entre dois números
Assinatura:
public static double max (double a, double b)
Exemplo
double maior = Math.max( a, b );
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 435