JAVA - Apostila
532 pág.

JAVA - Apostila


DisciplinaProgramação Orientada A Objetos3.926 materiais57.478 seguidores
Pré-visualização28 páginas
/**
* Classe com atributos e operacoes matematicas
3 * @author Ricardo Terra
*/
5 public class Matematica {
/**
7 * Atributo PI com apenas 6 casas decimais
*/
9 public static final double PI = 3.141569; // Constante PI
11 /**
* Metodo que calcula a area de uma circunferencia
13 * @param raio Raio da circunferencia
* @return Area da Circunferencia
15 */
public static double areaCircunferencia( double raio ) {
17 /*
* A funcao pow da classe Math eleva a uma potencia,
19 * no caso ao quadrado
*/
21 return PI * Math.pow( raio, 2 );
}
23
}
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 82 / 527
Java \u2013 Introdução
Classe Matematica \u2013 JavaDoc gerado
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 83 / 527
Java \u2013 Introdução
Padrões BluePrints
Nomes de classes
CamelCase com primeira letra em caixa alta
Ex: Animal, AnimalSelvagem, GuardaChuva ...
Nome de identificadores, atributos ou métodos
CamelCase com primeira letra em caixa baixa
Ex: nome, nomeCompleto, comer(), comerMuito() ...
Nome de pacotes
Sempre em caixa baixa
Ex: com.terra.pojo, com.terra.dataaccessobject ...
Evitem caracteres especiais:
_, -, ç, ã, á, ê, é ...
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 84 / 527
Java
Tipos Básicos
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 85 / 527
Java \u2013 Tipos Básicos
Identificadores
Atribuição como em C
int valor;
double saldo = 324.20;
Declaração de uma variável pode ocorrer em qualquer
local, evidentemente, antes do uso
Diferentemente de C, Pascal, Object Pascal ...
Regras de identificador
Primeiro caracter deve ser letra, _ ou $
São case-sensitive
Logicamente, identificadores deve ser diferente das
palavras reservadas da linguagem
6= de for, while, int ...
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 86 / 527
Java \u2013 Tipos Básicos
Tipos Primitivos
boolean (1 bit)\u2192 true e false
char (16 bits sem sinal)\u2192 0 a 65535
byte (8 bits)\u2192 -128 a 127
short (16 bits)\u2192 -32768 a 32767
int (32 bits)\u2192 \u2212231 a 231 \u2212 1
long (64 bits)\u2192 \u2212263 a 263\u22121
float (32 bits)\u2192 \u22121.40239846e\u221246 a 3.40282347e38
double (64 bits)\u2192 \u22124.94065645841246544e\u2212324 a 1.7976931348623157e308
Qualquer outro tipo não citado acima são classes
Por exemplo, String, Date são classes
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 87 / 527
Java \u2013 Tipos Básicos
Exemplo \u2013 Observando Limites
public static void main( String[] args ) {
2 System.out.printf( "boolean: %b e %b\n", Boolean.TRUE, Boolean.FALSE );
4 System.out.printf( "char: %d e %d\n", (int)Character.MIN_VALUE,(int)Character.MAX_VALUE );
6 System.out.printf( "byte: %d e %d\n", Byte.MIN_VALUE, Byte.MAX_VALUE );
System.out.printf( "short: %d e %d\n", Short.MIN_VALUE, Short.MAX_VALUE );
8 System.out.printf( "int: %d e %d\n", Integer.MIN_VALUE, Integer.MAX_VALUE );
System.out.printf( "long: %d e %d\n", Long.MIN_VALUE, Long.MAX_VALUE );
10
System.out.printf( "float: %g e %g\n", Float.MIN_VALUE, Float.MAX_VALUE );
12 System.out.printf( "double: %g e %g\n", Double.MIN_VALUE, Double.MAX_VALUE );
}
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 88 / 527
Java \u2013 Tipos Básicos
Tipo char
Representa um caractere UNICODE
http://www.tamasoft.co.jp/en/general-info/unicode.html
Intervalo de 0 a 255 semelhante à tabela ASCII
Atribuição:
\u2018a\u2019, \u2018\u0040\u2019 ou número
Exemplo
1 public static void main( String[] args ) {
char ch = \u2019a\u2019;
3 System.out.println( ch ); /* a */
5 ch = \u2019\u0040\u2019;
System.out.println( ch ); /* @ */
7
ch = 98;
9 System.out.println( ch ); /* b */
}
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 89 / 527
Java \u2013 Tipos Básicos
Exemplo \u2013 Imprimindo Tabela Ascii
public static void main( String[] args ) {
2 for ( char ch = 0; ch < 255; ch++ ) {
System.out.printf( &quot;%d: %c\n&quot;, (int) ch, ch );
4 }
}
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 90 / 527
Java \u2013 Tipos Básicos
Tipos inteiros \u2013 byte, short, int e long
Por que não simplificar e utilizar somente long?
Modo octal e hexadecimal de atribuição:
Quando se insere 0 antes do número indica base octal
Ex: 011 equivale a 9
Quando se insere 0x antes do número indica base
hexadecimal
Ex: 0x18 equivale a 24
Atribuir valores fora do limite requer cast, contudo não ativa
exceção (nomenclatura de Java para erro)
Ex: byte b = (byte) 128 atribui -128 a b
Divisão por 0 ativa exceção (ArithmeticException)
Ex: int i = 2/0 ativa exceção em tempo de execução
(não em compilação)
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 91 / 527
Java \u2013 Tipos Básicos
Exemplo \u2013 Atribuição
1 public static void main( String[] args ) {
int i1 = 17;
3 int i2 = 021;
int i3 = 0x11;
5
System.out.printf( &quot;%d %d %d&quot;, i1, i2, i3 );
7 }
Pergunta-se
Qual a saída?
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 92 / 527
Java \u2013 Tipos Básicos
Tipos de Ponto Flutuante \u2013 float e double
float\u2192 precisão simples
Número deverá conter o pós-fixo f ou F
Ex: float f = 9.02f ou float f = 9.02F
double\u2192 precisão dupla
Atribuição normal: double d = 9.02
Se desejar, número pode conter o pós-fixo g ou G
Ex: double d = 9.02g ou double d = 9.02G
Pode-se utilizar notação exponecial
Ex: double d = 3.02e2 ou double d = 2.56E-3
Não gera exceção em caso de divisão por 0
1/0 gera \u221e
-1/0 gera \u2212\u221e
0/0 gera NaN
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 93 / 527
Java \u2013 Tipos Básicos
Exemplo \u2013 Atribuição
1 public static void main( String[] args ) {
float f = 3.01f;
3 double d1 = -3.01;
double d2 = 3.564e+2;
5
System.out.printf(&quot;%g %g %g\n&quot;, f, d1, d2);
7
double d3 = 1.0/0;
9 double d4 = 0.0/0;
System.out.printf(&quot;%g %g\n&quot;, d3, d4);
11 }
Pergunta-se
Qual a saída?
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 94 / 527
Java \u2013 Tipos Básicos
Conversão e Promoção
Promoção implícita (feita automaticamente)
Por exemplo, de int para float
Conversão explícita (feita via cast)
Por exemplo, de double para int
Quando se trabalha com operações com diversos tipos de
variáveis, o valor é promovido para a de maior
complexidade
Exceto, em operações entre variáveis inteiras inferiores ao
int em que todos os valores são promovidos para int
automaticamente
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 95 / 527
Java \u2013 Tipos Básicos
Exemplo
1 public static void main( String[] args ) {
byte b = (byte) 264; /* Conversao Forcada */
3 System.out.println( b );
5 short s = (short) 3.5; /* Conversao Forcada */
System.out.println( s );
7
int i = b + s; /* b e s se promovem para operar */
9 System.out.println( i );
11 float f = 3; /* Promocao Implicita */
System.out.println( f );
13
double d = 3 / 2; /* Promocao Implicita do Resultado */
15 System.out.println( d );
}
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 96 / 527
Java \u2013 Tipos Básicos
Constantes caractere de barra invertida
Para a maioria dos caracteres, as aspas simples funcionam
bem, porém para enter, tab, esc seria bem complicado
representá-los, uma vez que são teclas de ação. Por isto,
Java definiu as constantes especiais de barra invertida
Constantes especiais mais utilizadas
\n Nova Linha
\r Retorno de Carro (CR)
\t Tabulação horizontal
\\u2019 Aspas Simples
\&quot; Aspas Duplas
\\ Barra Invertida
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 97 / 527
Java
Operadores
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 98 / 527
Java \u2013 Operadores
Quatro classes de operadores:
Aritméticos
Relacionais
Lógicos
Bit a bit
Ricardo Terra (rterrabh@gmail.com) POO 11 de março de 2013 99 / 527
Java \u2013 Operadores
Tabela de Prioridades
Ricardo