2
Tipos Primitivos
Ostipos inteiros em Java são:
byte (8 bits) ; (antigo char do C e C++)
short (16 bits) ;
int (32 bits)
long (64 bits)
Não há nada em Java para especificar um
tipo inteiro sem sinal, como em C e C++.
O tipo de ponto flutuante em Java são:
float (32 bits)
double (64 bits).
O tipo char declarado em Java define um
caracter de 16 bits, seguindo o padrão
Unicode (ASCII – 7 bits)
3.
3
Tipos Primitivos
Ostipos booleanos em Java, diferentemente
dos similares em C, não podem ser
convertidos para nenhum tipo numérico.
Valores booleanos em Java assumem
apenas true ou false.
Todos os tipos primitivos têm valores default.
Todos os tipos numéricos são inicializados
para 0, o tipo caracter e inicializado para o
Unicode 0 e variáveis do tipo booleano são
inicializadas para false.
4.
4
Tipos Primitivos
byte Inteiro8-bit, complemento de 2,
faixa :-128 até 127
short Inteiro 16-bit, complemento de 2,
faixa.-32768 até 32767
int Inteiro 32-bit, complemento de 2,
faixa.-2147483648 até 2147483647
long Inteiro 64-bit, complemento de 2,
faixa.-9223372036854775808 até
9223372036854775807
5.
5
Tipos Compostos
Todosos tipos em Java que não são
primitivos são tipos de referência a objetos,
incluindo arrays.
Um array em Java, como qualquer outro
objeto deve ser alocado dinâmica e
explicitamente com o operador new.
O acesso aos elementos do array segue o
estilo de indexação de C. Porém, com
checagem do tamanho do array
6.
6
Tipos Compostos
AAPI fornece a classe Vector que possibilidade
a construção de vetores dinâmicos. Vale
lembrar que o acesso a essa classe Vector é
toda feita através de métodos e não de
operadores de arrays.
Strings em Java são objetos, e não "pseudo-
arrays" como em C. Existem duas classes na
API de Java que implementam arrays:
StringBuffer e String. A definição da linguagem
define a sobrecarga do operador de adição para
a utilização com a classe String, e de literais do
tipo String.
7.
7
Variáveis
Qualquer variávelque não seja de um tipo
primitivo é uma variável de referência a um
objeto. Daí, concluímos que somente as
variáveis de tipos primitivos são realmente
armazenáveis.
As variáveis de tipos compostos (não
primitivos) são referências, tem seus objetos
alocados explícita e dinamicamente através
do operador new, e não é permitido o uso de
variáveis não inicializadas.
8.
8
Variáveis
Vale lembrarque todos os problemas de
ponteiros foram eliminados, através da
utilização de referências (e consequentemente
sem aritmética de ponteiros) e com a
existência do garbage collector.
As variáveis de referência a objetos têm valor
default null, ou seja, não apontam para
nenhum objeto.
9.
9
Variáveis
Em Java,as variáveis locais são declaradas
e alocadas dentro de um bloco e são
descartadas na saída do bloco. Parâmetros
de métodos também são considerados
variáveis locais.
Lembre-se: Java faz diferenciação entre
maiúsculas e minúsculas
10.
10
Variáveis
Tipo de variávelValor inicial Tamanho
byte 0 8 bits
short 0 16 bits
int 0 32 bits
long 0l 64 bits
float 0.0f 32 bits
double 0.0d 64 bits
char ‘u0000’ (Null) 16 bits
boolean false 8 bits
11.
11
Declaração de Variáveis
int num1; //declaração de interiros
num1 = 10; // atribuição de valores
char letra; // declaração de caracteres
letra = ‘S';
double num2; // declaração de reais
num2 = 9.987;
String nome; // declaração de strings
Nome = “Maria da Silva";
Também podemos declarar variáveis do mesmo tipo em uma
mesma linha: double x, y, z;
12.
12
Comentários
Estes sãoos três tipos permitidos de
comentários nos programas feitos em Java:
// comentário de uma linha
/* comentário de uma ou mais linhas */
/** comentário de documentação */ (Arquivos de
documentação)
14
Operadores de atribuição
x = 5;
x += 5; // x = x + 5;
x -= 5; // x = x - 5;
x *= 5; // x = x * 5;
x /= 5; // x = x / 5;
x %=5; // x = x % 5;
18
Conversão de Tipos
Numéricos:
Se qualquer um dos operandos for do tipo
double, então o outro será convertido para
double;
De outro modo, se qualquer um dos operandos
for do tipo float, o outro será convertido para
float;
Caso contrário, se qualquer um dos operandos
for do tipo long, o outro será convertido para
long;
19.
19
Conversão de Tipos
Conversões Explícitas:
double x = 9.997;
int nx = (int)x; //truncado, usando type cast
double x = 9.997;
int nx = (int) Math.round(x) ; //arredondado
22
Manipulação de String
Substring
String Saudacao = "Boa Tarde";
String S Saudacao.substring(0,3) ;
//S=“Boa”
23.
23
Manipulação de Strings
Tamanho
String Saudacao = "Ola";
int n = Saudacao.length();
// O valor de n será 3.
24.
24
Manipulação de Strings
Igualdade
String s =“ola”;
“ola”.equals(s);
“Ola”.equalsIgnoreCase(s);
/*o operador == determina se duas strings
estão ou não armazenadas no mesmo local*/
25.
25
Manipulação de Strings
char charAt(int indice) - retorna o caractere da posição
especificada;
int compareTo(String outra) - retorna um valor negativo se
a string vier antes de outra na ordem alfanumérica, ou 0 se
as strings forem iguais;
boolean equals(outra) - retorna true se a string for igual a
outra;
boolean equalsIgnoreCase(String outra) - retorna true se
a string for igual a outra, não fazendo diferença entre
maiúsculas e minúsculas;
int indexOf(String str, int indiceInicio) - retorna o início da
primeira substring igual a str, começando no índice 0 ou
indiceInicio;
int length() - retorna o comprimento da string;
26.
26
Manipulação de Strings
String replace(char charAnt, char charNovo) -
retorna uma nova string que é obtida substituindo-se
todos os caracteres de charAnt na string charNovo;
String substring(int indiceInicio, int indiceFinal) -
retorna uma nova string com todos os caracteres a
partir de indiceInicio até indiceFinal;
String toLowerCase() - retorna uma nova string
contendo todos os caracteres da string original, com as
maiúsculas convertidas para minúsculas;
String toUpperCase() - retorna uma string contendo
todos os caracteres da string original, com as
minúsculas convertidas para maiúsculas;
String trim() - retorna uma nova string eliminando
todos os espaços iniciais e finais da string original;
27.
27
Entrada de Dados
Mais simples se forem utilizadas classes
gráficas
Exemplo de entrada de dados sem classe
gráfica – páginas 26 e 28
28.
28
Formatação da Saídade Dados
double x = 10000.0/3.0;
NumberFormat nf;
nf = NumberFormat.getNumberInstance ();
nf.setMaximumFractionDigits(4) ;
nf.setMinimumIntegerDigits(6) ;
String fx = nf.format(x);
// a string "003,333.3333"
30
Formatação da Saídade Dados
Como criar um formato particular
double x=10000.0/3.0;
DecimalFormat df ;
df = new DecimalFormat ("0.###");
System.out.println(df.format(x)) ;
31.
31
Controle de Fluxode Dados
Bloco
ou instrução composta é qualquer número de instruções
que são delimitadas por { ... }.
definem o escopo de visibilidade das variáveis e podem
ser aninhados, ou seja, um bloco dentro do outro.
public static void main (String[ ] args)
{
int n;
...
{ int k;
...
}
}
32.
32
Controle de Fluxode Dados
Comandos de seleção
if, sendo o if de caminho simples (com else)
switch de múltiplos caminhos:
if ( Expressão ) bloco_de_comandos
else bloco_de_comandos
switch (Expressão) {
case ExpressãoConstante : bloco_de_comandos
case ExpressãoConstante : bloco_de_comandos
default : bloco_de comandos}
Exemplo página 35 e exemplo EX03_case
33.
33
Controle de Fluxode Dados
As estruturas de iteração são while, do while e for:
while ( condição_booleana ) bloco_de_comandos
do bloco_de_comandos while (condição_booleana );
for ( expr_inicial; condição_booleana ; incremento );
Exemplos páginas 35,
Ex04_whileDo, Ex05_Dowhile, Ex06_For
34.
34
Controle de Fluxode Dados
Os comandos de escape englobam o return, o
continue, o break e o throw.
O return é utilizado para interromper a execução de um
método, especificando a expressão de retorno, ou não, se o
método não for void.
O break transfere o controle para o final da iteração no qual
está inserido, ou encerra a execução de um switch.
O continue transfere o controle para o ponto de continuação
do loop de um comando de iteração. Ambos break e continue
podem ser acompanhados de identificadores que especificam
a qual dos loops externos estamos nos referindo, já que existe
a possibilidade de amarrar labels a comandos de iteração.
O throw "dispara", "joga" uma exceção, desviando o fluxo para
o bloco de tratamento de exceções ou interrompendo o
programa.
35.
35
Controle de Fluxode Dados
Além destes comandos existem os
chamados guarding statements que
estabelecem condições para o tratamento de
exceções e multithreading. São eles o try, o
synchronized, o catch e o finally (serão
explicados posteriormente nas seções de
tratamento de exceções e concorrência).
36.
36
Arrays
Arrays sãoo primeiro exemplo de objetos
cuja criação deve ser feita de maneira
explícita pelo programador, através do
método new.
Uma vez definido o tamanho do array não é
possível redimensioná-lo.
Declaração de Arrays
char s[ ];
int p[ ];
41
Arrays Multidimensionais
public classtestes {
public static void main(String[ ] args) {
int duasdim [ ][ ]=new int[4][ ];
duasdim[0] = new int[5];
duasdim[1] = new int[5];
duasdim[0][0]= 1;duasdim[0][1]= 2;duasdim[0][2]= 3;
duasdim[1][0]= 5;duasdim[1][1]= 6;duasdim[1][2]= 7;
int conta, cont;
for ( conta=0;conta<2;conta++)
{
for (cont=0;cont<3;cont++)
System.out.println(" Índice= "+conta+cont+" valor=
"+duasdim[conta][cont]);
}}}
42.
42
Caixas de Diálogo
As caixas de diálogo são janelas que em
geral são utilizadas para exibir mensagens
importantes para o usuário de um aplicativo.
Java 2 já inclui a classe JOptionPane que
permite que você exiba facilmente uma caixa
de diálogo contendo informações.
Exemplo página 40,41,42
43.
43
Entrada e Saída
JOptionPane.showMessageDialog (null,"BEM
VINDOn À PROGRAMAÇÃO n JAVA" ) ;
JOptionPane.showMessageDialog (null,“A =“ + 10,
“alo”, JOptionPane.PLAIN_MESSAGE ) ;
int N1;
N1=Integer.parseInt(JOptionPane.showInputDialog
("ENTRE COM O PRIMEIRO NÚMERO:”));
44.
44
Entrada/Saída
Tipo de DiálogoDescrição
JOptionPane.ERROR_MESSAGE Exibe um diálogo que indica um erro para o
usuário do aplicativo.
JOptionPane.INFORMATION_MESSAGE Exibe um diálogo com uma mensagem
informacional para o usuário do
aplicativo - o usuário simplesmente
pode dispensar o diálogo.
JOptionPane.WARNING_MESSAGE Exibe um diálogo que adverte o usuário do
aplicativo de um problema potencial.
JOptionPane.QUESTION_MESSAGE Exibe um diálogo que impõe uma pergunta
para o usuário do aplicativo. Isso
normalmente requer uma resposta como
clicar em um botão Yes ou No.
JOptionPane.PLAIN_MESSAGE Exibe um diálogo que simplesmente
contém uma mensagem sem ícone.