Roteiro Aula 15/03

Propaganda
Identificadores, Palavras-chave, Tipos
Expressões e Controle de Fluxo
1) Palavras-chave da Linguagem Java
2) Identificadores Java
São utilizados para dar nomes a atributos (variáveis) e métodos. Os identificadores
devem iniciar com uma letra, podendo ser incluído um dos caracteres ( _ ) ou ( $ ),
seguidos de letras, dígitos ou ambos. Quaisquer diferenças nos caracteres, como
acentuação e maiúsculas e minúsculas em um identificador, tornam o identificador
único.
Importante: Palavras-chave não podem ser utilizadas como identificadores!
3) Tipos básicos do Java
Tipo
Natureza
Valores permitidos
boolean
char
String
byte
short
int
long
float
double
Lógico
Texto
Texto
Inteiro
Inteiro
Inteiro
Inteiro
Ponto Flutuante
Ponto Flutuante
false / true
1 caractere (‘x’)
cadeira de caracteres (“Olá”)
-27 até 27-1
-215 até 215-1
-231 até 231-1
-263 até 263-1
-
Tamanho
(bytes)
1
1
É um objeto
1
2
4
8
4
8
a) Valores literais inteiros são, por default, do tipo int. É possível transformar um
valor literal para long, neste caso ele deve ser seguido pela letra “L” ou “l”.
Exemplo:
2
(um valor literal int por default)
2L
(um valor literal long)
b) Também é possível representar valores literais na forma decimal, octal ou
hexadecimal.
Exemplo:
2
(valor decimal)
077
(o “zero” indica que o valor é octal)
0xBAAC
(o “0x” indica que o valor é hexadecimal)
c) Os valores literais de pontos flutuantes são, por default, do tipo double. É possível
transformar um valor literal ponto flutuante para float, neste caso ele deve ser
seguido pela letra “F” ou “f”.
Exemplo:
3.14
(valor ponto flutuante em double)
3.14F
(valor ponto flutuante em float)
3.14D
(valor ponto flutuante em double – Redundante!)
4) Declarações e Atribuições (alguns exemplos)
int x,y;
float a = 3.14F;
double b = 3.14;
boolean verdade = true;
char c;
String str;
String str1 = “Hello”;
c = ’A’;
str = ”Bye”;
x = 6;
y = 6000;
5) Convenções do Código Java
a) Classes: O nome da classe deve ter a inicial maiúscula e as demais minúsculas.
Quando você utiliza dois nomes, as iniciais devem ser maiúsculas.
class MeuPrimeiroPrograma
b) Interfaces: A mesma regra aplicada às classes
c) Métodos: Devem iniciar com letra minúsculas e as iniciais das próximas palavras
devem ser maiúsculas.
informeSalario()
d) Variáveis: Devem iniciar com letra minúsculas e as iniciais das próximas palavras
devem ser maiúsculas.
clienteCorrente
e) Constantes: Devem ser todas em maiúsculas, com as palavras separadas por
sublinhado.
IDADE_MAXIMA
f) Use identação!
g) Comente seu código!
6) Escopo de Variáveis
Quando abrimos um novo bloco com as chaves, as variáveis declaradas ali dentro só
valem até o fim daquele bloco.
Exemplo:
//aqui a variável i não existe
int i = 5;
// a partir daqui ela existe
while (condicao) {
// o i ainda vale aqui
int j = 7;
// o j passa a existir
}
// aqui o j não existe mais, mas o i continua a valer
Exemplos de situações não permitidas:
if (algumBooleano) {
int i = 5;
}
else {
int i = 10;
}
System.out.println(i); // erro!
for (int i = 0; i < 10; i++) {
System.out.println("olá!");
}
System.out.println(i); // erro!
7) Inicialização de variáveis
Nenhuma variável em um programa Java pode ser usada antes de ser inicializada.
Quando um objeto é criado, as variáveis são inicializadas automaticamente com os
seguintes valores:
byte
short
int
long
float
double
char
boolean
Referências a Objetos
0
0
0
0L
0.0F
0.0D
‘\u0000’
false
null
Todas as variáveis locais devem ser iniciadas manualmente!
Variáveis Locais: variáveis declaradas no escopo de métodos ou em estruturas de
controle.
8) Operadores
Multiplicativos
Aditivos
Relacionais
Igualdade
AND (E) lógico
*;/;%
+;< ; > ; <= ; >= ; instanceof
== ; !=
&&
OR (OU) lógico
Atribuição
Unários
||
= ; *= ; /= ; %= ; += ; -=
++ ; -- ; !
9) Concatenação de Strings
O operador + executa uma concatenação de objetos de Strings, gerando uma nova
String.
String tratamento = “Sra. ”;
String nomeCompleto = “Marta Rocha”;
String saudação = tratamento + nomeCompleto;
O resultado é:
Sra. Marta Rocha
10) Casting
Alguns valores são incompatíveis ao fazer uma atribuição direta. Enquanto um
número real costuma ser representado em uma variável do tipo double, tentar
atribuir ele a uma variável int não funcionará.
double d = 3.1415;
int i = d; // erro de compilação
O mesmo ocorre no seguinte trecho:
int i = 3.14;
O mais interessante, é que nem mesmo o seguinte código compila:
double d = 5; // ok, o double pode conter um número inteiro
int i = d; // erro de compilação
Apesar de 5 ser um bom valor para um int, o compilador não tem como saber que
valor estará dentro desse double no momento da execução. Esse valor pode ter sido
digitado pelo usuário, e ninguém vai garantir que essa conversão ocorra sem perda
de valores.
Já no caso a seguir é o contrário:
int i = 5;
double d2 = i;
O código acima compila sem problemas, já que um double pode guardar um número
com ou sem ponto flutuante. Todos os inteiros representados por uma variável do
tipo int podem ser guardados em uma variável double, então não existem problemas
no código acima.
Ás vezes, é preciso que um número quebrado seja arredondado e armazenado num
número inteiro. Para fazer isso sem que haja o erro de compilação, é preciso ordenar
que o número quebrado seja moldado (casted) como um número inteiro. Esse
processo recebe o nome de casting.
double d3 = 3.14;
int i = (int) d3;
O casting foi feito para moldar a variável d3 como um int. O valor dela agora é 3.
O mesmo ocorre entre valores int e long.
long x = 10000;
int i = x; // nao compila, pois pode estar perdendo informação
E, se quisermos realmente fazer isso, fazemos o casting:
long x = 10000;
int i = (int) x;
Outros casos de casting:
float x = 0.0;
O código acima não compila pois todos os literais com ponto flutuante são
considerados double pelo Java. E float não pode receber um double sem perda de
informação, para fazer isso funcionar podemos escrever o seguinte:
float x = 0.0f;
Outro caso, que é mais comum:
double d = 5;
float f = 3;
float x = (float) d + f;
É necessário fazer o casting neste caso porque o Java sempre considera o maior tipo
que apareceu durante as operações, no caso o double.
Importante: O único tipo primitivo que não pode ser atribuído a nenhum outro tipo é
o boolean.
Castings possíveis
Abaixo estão relacionados todos os casts possíveis na linguagem Java. A indicação
Impl. quer dizer que aquele cast é implícito e automático, ou seja, não é preciso
indicar o cast explicitamente.
Download