Escolar Documentos
Profissional Documentos
Cultura Documentos
Blocos de Código
Em Java, tal como em C/C++, duas ou mais linhas podem ser agrupadas
formando blocos de código. Isso é feito inserindo-se os comandos entre as chaves
{ e }. Depois que um bloco de código é criado, ele se torna uma unidade lógica
que pode ser usada como se fosse um comando único. Por exemplo, um bloco
pode ser o alvo dos comandos if e for de Java. Consideremos o seguinte comando
if:
I f (a<b)
{ // Começo do bloco.
a=b;
b=0;
} // Fim de bloco.
Valor de a: 0
Valor de b: 10
Valor de a: 1
Valor de b: 8
Valor de a: 2
Valor de b: 6
Valor de a: 3
Valor de b: 4
Valor de a: 4
Valor de a: 2
Neste exemplo, o alvo do loop for é um bloco de código e não apenas uma
só linha. Assim, cada vez que o loop for executado, os três comandos que ficam
dentro do bloco de código serão executados. Esse fato pode ser constatado na
saída gerada pelo programa.
Os programas fonte Java são formados por espaço em branco,
identificadores, comentários, literais, operadores, separadores e palavra-chave.
Os operadores serão descritos com detalhes mais adiante neste curso. Os outros
elementos são descritos a seguir.
Java é uma linguagem de forma livre. Isso significa que não é preciso
seguir regras especiais de indentação. Por exemplo, nada impede que um
programa seja escrito em uma única linha, ou de qualquer outra forma estranha
que o programador queira desde que haja pelo menos um caractere de espaço
entre cada dois elementos significativos que já não sejam delimitados por um
operador ou separador. Em Java, espaço em branco pode ser um espaço, um
caractere de tabulação ou uma quebra de linha.
Identificadores
TempMed
Count
Yl // Só não pode começar com um algarismo.
$tudoBem // Pode começar com $.
Isso-funciona // Pode usar o caractere de underscore.
Valores Literais
Separadores
Palavras-chave
Elas representam valores definidos por Java e não podem ser usadas como
nomes de variáveis, classes ou métodos.
Tipos Simples
Como acontece com todas as linguagens de programação modernas, Java
suporta diversos tipos de dados. Podemos usar esses tipos para declarar variáveis
e criar arrays.
Desde já, é importante ter em mente que Java é uma linguagem com
tipagem forte. Na verdade, parte da robustez e da segurança de Java é
conseqüência deste fato
Java define oito tipos simples (ou elementares) de dados. Eles podem ser
divididos em quatro grupos (conforme tabela da página seguinte):
Esses tipos podem ser usados no estado original, ou para construir arrays
ou criar novos tipos de classes. Assim, eles formam a base de todos os outros
tipos de dados que possam ser criados.
Tipos Inteiros
byte
short
int
long
Tipo Byte
O tipo byte representa o menor dos tipos inteiros de Java. Byte é um tipo
inteiro de 8 bits com sinal que tem faixa de valores entre – 128 a 127. As variáveis
desse tipo são especialmente úteis quando trabalhamos com um fluxo de dados
de uma rede ou de um arquivo. Byte também é prático para trabalhar com dados
binários brutos que podem não ser diretamente compatíveis com os outros tipos
embutidos de Java. As variáveis do tipo byte são declaradas usando-se a palavra
reservada byte. Por exemplo, a seguinte linha declara duas variáveis byte,
chamadas b1 e b2:
Tipo short
O tipo short é um inteiro de 16 bits com sinal. Sua faixa vai de -32.768 a
32.767. É o tipo menos usado em Java, por cusa de uma particularidade: é
definido como tendo o byte mais alto primeiro, o chamado formato big-endian.
Esse tipo aplica-se principalmente a computadores de 16 bits, que estão se
tornando cada vez mais raros. Eis alguns exemplos de declarações de variáveis
short:
short s1;
short shortVar;
Tipo int
Tipo long
O tipo long representa um tipo inteiro de 64 bits com sinal. Ele é útil nas
situações em que um tipo não é grande o suficiente para conter o valor desejado.
A faixa de valores de long é bastante grande. Isso o torna útil quando há
necessidade de lidar com grandes números inteiros.
1. import javax.swing.JOptionPane;
2. public class DistLuz
3. {
4. public static void main (String args [ ] )
5. {
6. int velocLuz=300000;
7. long dis=1000, segundos=0, distancia;
8. distancia=velocLuz*segundos;
9. JOptionPane.showMessageDialog(null,"Em"+ " " +dis);
10. JOptionPane.showMessageDialog(null," "+"dias a luz percorre" + " ");
11. JOptionPane.showMessageDialog(null, distancia + " " + " Km ");
12. } // Fim de main ( )
13. } // Fim da classe DistLuz.
É perceptível que esse valor não poderia ser contido em uma variável int.
Tipo Float
Por exemplo, float pode ser usado para representar reais e centavos. Eis
alguns exemplos de declarações de variáveis float:
Tipo double
É por isso que o tipo char de Java tem 16 bits. O alcance é de 0 a 65.536.
char não pode assumir valores negativos.
Como Java foi criado para permitir que sejam escritos applets para uso em
todo o mundo, faz sentido o uso de Unicode para representar os caracteres. É
claro que o Unicode é um tanto ineficiente para línguas em inglês, português,
espanhol e francês, cujos caracteres podem ser facilmente contidos em 8 bits.
Mas esse é um preço que pagamos para ter portabilidade global. Eis um programa
que demonstra o uso de variáveis char.
1. import javax.swing.JOptionPane;
2. public class TesteChar
3. {
4. public static void main(String[ ] args)
5. {
6. char charl, char2;
7. charl=77;
8. char2=71;
9. JOptionPane.showMessageDialog(null, "Minhas Iniciais:" );
10. JOptionPane.showMessageDialog(null, charl + " " + char2) ;
11. } // Fim de main ( )
12. } // Fim da classe TesteChar.
Minhas Iniciais: M G
Tipo Boolean
O tipo boolean de Java é usado para conter valores lógicos do tipo false/true
(falso/verdadeiro). Esse é o tipo retornado por todos os operadores relacionais,
como a < b. boolean é também o tipo exigido em todas as expressões
condicionais que governam comandos de controle, como if e for. Eis um programa
que demonstra o tipo boolean:
1. import javax.swing.JOptionPane;
2. public class TesteBoolean
3. {
4. public static void main ( String args [ ] )
5. {
6. boolean bool;
7. bool=false;
8. JOptionPane.showMessageDialog(null, "bool é " + " " + bool);
9. bool=true;
10. JOptionPane.showMessageDialog(null, "bool é " + " " + bool);
11. if (bool) // Um valor boolean controlando o comando if
12. JOptionPane.showMessageDialog(null, "Isso será exibido." );
13. bool=false;
14. if (bool)
15. JOptionPane.showMessageDialog(null, "Isso não será exibido" );
16. // O resultado de um operador
17. // relacional e um valor
18. // boolean
19. JOptionPane.showMessageDialog(null, " 4 > 3 e " + " " + ( 4 > 3 ) ) ;
20. } // Fim de main ( )
21. } // Fim da classe TesteBoolean.
bool é false
bool é true
Isso será exibido
4>3 é true
If (bool==true) // Desnecessário ! ! !
Porém nem todos os tipos são compatíveis, de modo que nem todas as
conversões são implicitamente permitidas. Por exemplo, não existe uma
conversão de doublé para byte.
Quando essas duas condições forem satisfeitas, ocorrerá uma conversão por
alargamento. Por exemplo, o tipo int sempre é grande o suficiente para conter
todos os valores do tipo byte, de modo que não há necessidade de uso de um
cast explícito.
Para criar uma conversão entre dois tipos incompatíveis, é preciso usar
cast. Um cast é simplesmente uma conversão explícita de tipo. Em nosso exemplo
anterior, de double para int, o cast teria a seguinte forma:
int doubleVar;
int intVar;
//...
intVar= ( int ) doubleVar;