2. Ementa
• Introdução a Plataforma Java;
• Fundamentos da Linguagem;
• Variáveis, Operadores e Estruturas
Condicionais;
3. História do Java
The Green Team. Da esquerda para a direita,Al Frazier, Joe Palrang, Mike Sheridan, Ed Frank, Don Jackson, Faye
Baxter, Patrick Naughton, Chris Warth, James Gosling, Bob Weisblatt, David Lavallee e Jon Payne. Ausentes:
Cindy Long, Chuck Clanton, Sheueling Chang e Craig Forrest.
Fonte: https://duke.dev.java.net/green/GreenBBQ.jpg.
Leia mais em: A História da Tecnologia Java - Easy Java Magazine 1
http://www.devmedia.com.br/a-historia-da-tecnologia-java-easy-java-magazine-1/18446#ixzz3LbA3Ow00
Introdução a plataforma Java 3
4. Plataforma Java
• Linguagem de Programação;
• Ferramentas de desenvolvimento:
compiladores, depuradores entre outras;
• Bibliotecas para desenvolvimento de
aplicações desktop, web, mobile, cartões
inteligentes, entre outras;
• JVM (Maquina Virtual).
Introdução a plataforma Java 4
8. Mitos
• Java é lento ?
• Java é uma linguagem direcionada para Web ?
• Java é igual a JavaScript ?
• Diferentemente dos códigos em C/C++, Java
não tem memory leak ?
• Java é apenas interpretado ?
Introdução a plataforma Java 8
9. Instalação
Para o curso nós iremos utilizar :
– JDK (http://www.oracle.com/technetwork/java/javase/downloads);
– Eclipse (https://www.eclipse.org/downloads/);
– Oracle Express Edition (http://www.oracle.com/technetwork/database/database-
technologies/express-edition/downloads/);
Introdução a plataforma Java 9
10. Características Principais
• Diferencia caracteres maiúsculos de minúsculos;
• Blocos de código são colocados entre chaves {}
representando o begin e o end de outras linguagens;
• No fim de cada instrução é obrigatório o uso de ponto
e virgula “;”
• A classe criada deve ser salva em formato texto em um
arquivo com o mesmo nome da classe e extensão .java;
• Todo programa em Java é representado por uma ou
mais classes;
• Normalmente trabalha-se com uma classe por arquivo;
Fundamentos da Linguagem 10
11. Declaração de classes, variáveis,
atributos e métodos
• Devem começar com letras de A-Z, a-z, _ ou $;
• Os próximos caracteres podem ser qualquer
um dos acima relacionados e também
números;
Exemplos:
Cliente, PESSOA_FISICA, $MinhaVariavel,
contador, Classe1, _umaVariavel
Fundamentos da Linguagem 11
12. Declaração de classes
• A declaração de uma classe é feita utilizando a
palavra reservada class seguida do nome da
classe, por exemplo:
class OlaMundo{
//Variáveis / Atributos
//Métodos
}
Observação: Apesar da classe acima ser válida e ainda compilar perfeitamente, não será possível
executa-la devido a falta do método main que será explicado posteriormente !
Fundamentos da Linguagem 12
13. Método Main e o clássico
HelloWorld
public class OlaMundo{
public static void main(String[] args){
System.out.println(“Ola mundo”);
}
}
Dica: Tentar rodar o código acima por meio de linha de comando, dessa forma
entendendo o funcionamento dos comandos Javac e Java.
Fundamentos da Linguagem 13
15. Palavras Reservadas
abstract continue for new switch
assert*** default goto* package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum**** instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp** volatile
const* float native super while
Fundamentos da Linguagem 15
* not used
** added in 1.2
*** added in 1.4
**** added in 5.0
goto e const não são utilizadas na linguagem;
true e false são tecnicamente literais booleanos, assim como a palavra null.
16. Convenções de Código
Como sugestão para criação de código em Java
pode-se utilizar o documento criado pela Sun,
que visa melhorar a legibilidade e compreensão:
• http://www.oracle.com/technetwork/java/co
deconventions-150003.pdf
• Vale lembrar que a equipe de
desenvolvimento pode optar pelo uso de um
padrão próprio.
Fundamentos da Linguagem 16
17. Convenção de Código
Nome de Classe
Exemplo:
HelloWorld, MeuProgramaEmJava, BancoDeDados
Métodos, atributos e variáveis
Exemplo:
minhaFuncao, minhaVariavelInt
Constantes
Exemplo:
DATA_NASCIMENTO, TAMANHO_PADRAO
Identação
Tabulações devem ser abertas após a abertura da chave “{” e retroceder após
o fechamento da chave “}”.
Fundamentos da Linguagem 17
18. Comentários
Inline
//meu comentario
Multiline
/*
* Meu comentario
*/
JavaDoc
/**
* Com esse comentário podemos utilizar tags e anotações
* especiais que ajudarão a compor o html gerado.
*/
Fundamentos da Linguagem 18
20. Variáveis
Representam um espaço na memória para
armazenar valores que são utilizados pelos
programas de computador na resolução de
problemas.
Para cada área de memória (cada variável)
associamos um nome e o tipo a ser armazenado
naquela área.
Variáveis, Operadores e Estruturas
Condicionais
20
21. Tipos Primitivos
Sintaxe para declaração e inicialização de tipos primitivos:
<tipoVariavel> <nomeVariavel> = valor
Tipos primitivos podem ser:
• Numéricos;
• Caracteres;
• Booleanos (Verdadeiro ou falso)
Exemplos :
int tamanho = 500;
char sexo = ‘m’;
boolean isConnected = true;
long numeroGrande = 987654321;
Variáveis, Operadores e Estruturas
Condicionais
21
22. Números Inteiros
Os tipos primitivos para representação de
números inteiros oferecidos pela linguagem são:
O primeiro bit da esquerda é utilizado para o sinal + ou -, portanto não temos unsigned
como no C++.
Variáveis, Operadores e Estruturas
Condicionais
22
Tipo Valor mínimo Valor máximo Bytes
byte -128 127 1
short -32.768 32.767 2
int -2.147.483.648 2.147.483.647 4
long -922.337.203.685.475.808 922.337.203.685.475.807 8
23. Representações de Números Inteiros
Os literais números podem ser expressos nos sistemas: decimal, octal
ou hexadecimal
Todo número inteiro escrito em Java é tratado como int, desde que o
valor esteja na faixa de valores do int.
Para forçar um numero long utilizados a letra “L” ou “l” no final do
número: 10L;
Variáveis, Operadores e Estruturas
Condicionais
23
Valor Sistema
28 Decimal
034 Octal
0X1c Hexadecimal
24. Casting
Para forçar um byte ou short, devemos utilizar a
técnica de casting.
Exemplo:
byte b = (byte) 123;
byte b2 = (byte) 123568545;
short s = (short) 12565;
short s2 = (short) 1231321;
Variáveis, Operadores e Estruturas
Condicionais
24
Downcasting
25. Números de Ponto Flutuante
Existem dois tipos de variáveis para números com
ponto flutuante: float e double.
Todo número com ponto flutuante por padrão é double.
Pode-se também utilizar o caractere “d” ou “D” para indicar que um número é do
tipo double.
Para indicar que um número é do tipo float deve-se utilizar o caractere “F” ou “f”
no final do número.
Variáveis, Operadores e Estruturas
Condicionais
25
Tipo Valor Mínimo Valor Máximo Bytes
float 1.4𝑒−45 3.4𝑒−38 4
double 4.9𝑒−324
1.7𝑒−308 8
26. Exemplos
Segue alguns exemplos:
float f = 10F;
float f2 = 10.45454f;
double d = 12565484546d;
double d2 = 12565484546.0;
Variáveis, Operadores e Estruturas
Condicionais
27. Caracteres
Os caracteres são representados pelo tipo
primitivo char, e são utilizados para expressar
uma “tecla”.
O Java utiliza o padrão unicode:
http://pt.wikipedia.org/wiki/Unicode
http://www.unicode.org/
Variáveis, Operadores e Estruturas
Condicionais
27
28. Caracteres
Literais char são expressos incluindo o caractere desejado entre aspas
simples.
Exemplo :
char meuChar = ‘x’;
Outra maneira de expressar um literal de caractere é especificar o
código “Unicode” usando quatro dígitos em hexadecimal precedidos
por u, com a expressão entre aspas simples.
Exemplo:
char meuCharUnicode = ‘u4567’;
Variáveis, Operadores e Estruturas
Condicionais
28
29. Caracteres de escape
Java Suporta uma série de sequencias de escape usando a barra
invertida (), que é chamada de caractere de escape.
Exemplo:
n - Nova linha;
f - Nova página;
r - Para retorno;
’ - Para aspas simples;
t - Para tabulação
” - Para aspas duplas;
b - Para backspace;
- Para barra invertida;
Variáveis, Operadores e Estruturas
Condicionais
29
30. Booleanos
Variáveis de tipos booleanos podem representadas apenas por
dois valores: true ou false, elas ocupam apenas 1 bit.
Exemplo:
boolean ok = true;
Boolean acabou = false;
Observação: Não existe nenhum mapeamento entre true
e false e os números inteiros diferentemente da maioria
das linguagens.
Variáveis, Operadores e Estruturas
Condicionais
30
31. Tipos Reference
Armazenam o endereço da memoria estendida para
um determinado objeto.
A quantidade de memória estendida varia de
acordo com o objeto em questão.
Sintaxe :
<tipoVariavel> <nomeVariavel> = new
<tipoVariavel>();
Variáveis, Operadores e Estruturas
Condicionais
31
32. Características dos tipos reference
Variáveis do tipo reference podem conter os
seguintes valores:
• null
• Referencia para qualquer objeto cuja classe é
de um tipo compatível ao declarado.
• Referencia para um array;
Variáveis, Operadores e Estruturas
Condicionais
32
33. O valor null
É um literal, usado para dizer que a variável não
armazena nenhuma referencia.
Exemplos:
String s = new String();
String s2 = “Teste”;
Object meuObject = new Object();
Object o = null;
Variáveis, Operadores e Estruturas
Condicionais
33
34. Classe String
Geralmente, a classe String é uma das primeiras
a ser utilizada, pois representa um texto e sua
inicialização pode ser feita semelhantemente a
inicialização de varáveis de tipos primitivos.
Exemplo:
String str = "abc";
Variáveis, Operadores e Estruturas
Condicionais
34
35. Variáveis Locais
São declaradas dentro de métodos ou blocos de código. Esse
tipo de variável não possui um valor de inicialização padrão,
portanto, devemos fornecer um; caso contrário, receberemos
um erro de compilação.
class Principal{
public static void main(String[] args){
String nome = “good morning class”;
float f = 23.5f;
int i = 10;
}
}
Variáveis, Operadores e Estruturas
Condicionais
35
36. Escopo
O escopo define em que parte do programa a variável estará acessível.
Exemplo:
class Principal{
public static void main(String[] args){
{
int x = 50;
}
System.out.println(“Valor de x - ” + x );
}
}
O código acima não compila, pois a variável x esta definida em um escopo diferente do
código de impressão.
Variáveis, Operadores e Estruturas
Condicionais
36
37. Exercício
Crie uma classe chamada TesteVariaveis com o método main e
faça o seguinte:
- Declare e inicialize uma variável do tipo String para
armazenar o seu nome;
- Declare e inicialize uma variável int para armazenar a sua
idade;
- Declare e inicialize uma variável do tipo String para
armazenar o seu RG;
Imprima todos os valores de maneira a obter a seguinte saída:
Senhor(a) <seu nome>, de <sua idade> anos, portador(a) do
RG de número <rg>, do sexo <M/F>.
Obs: peça o professor para ensinar também a classe Scanner e o método printf.
Variáveis, Operadores e Estruturas
Condicionais
37
38. Operadores
Símbolos previamente definidos na linguagem de programação
para representar operações aritméticas, operações de conversão
de tipos, entre outras.
Operadores unários :
Variáveis, Operadores e Estruturas
Condicionais
38
Operador Símbolo
Negação !
Pré e pós-incremento ++
Pré e pós-decremento --
Sinal positivo +
Sinal negativo -
cast ()
39. Operação de negação
Utilizado para inverter o valor de uma expressão booleana. Então uma
expressão !false resulta em true, enquanto a expressão !true resulta
em false.
Exemplo:
class Principal{
public static void main(String[] args){
boolean conectado = true;
boolean naoconectado = !conectado;
System.out.println( “valor - ” + naoconectado );
}
}
Resultado : valor - false
Variáveis, Operadores e Estruturas
Condicionais
39
40. Operador de incremento e decremento
++, --
Estes operadores modificam o valor de uma expressão
adicionando ou subtraindo 1.
• Pós-fixado(após uso da variável)
Exemplo:
int x = 5;
System.out.println( “” + x++ );
• Prefixados(antes que a variável seja utilizada).
Int y = 3;
System.out.println( “” + --x );
Variáveis, Operadores e Estruturas
Condicionais
40
41. Operadores de representação de sinal
+ e -
Representam o positivo e o negativo respectivamente. O operador +
não tem outra função senão deixar explicito que um numero é
positivo.
Exemplo:
int x = -3;
int z = +3; // z = 3 seria exatamente igual.
Variáveis, Operadores e Estruturas
Condicionais
41
42. Operador de inversão
Conhecido como bitwise inversion operator( operador de
inversão de bits) converte todos os bits 1 em 0 e os bit 0
em 1.
Exemplo:
int resultado = ~7; // - 8
int resultado = ~-19; // 18
Dica: Uma formula simples de obter o mesmo resultado é somar um e
inverter o sinal.
Variáveis, Operadores e Estruturas
Condicionais
42
43. Operadores aritméticos
São aqueles que envolvem dois ou mais operandos e representam
operações matemáticas: adição, subtração, entre outras.
Adição e subtração: + e –
Exemplo: 4 + 4
Multiplicação e divisão: * e /
Exemplo: 4+4 ou 8/2
Observações:
• Java não permite sobrecarga de operadores;
• + se usado com String contatena;
• Ao somar ou subtrair dois inteiros tenha certeza que a variável que irá receber esses valores é de um tipo com
tamanho capaz de suportar, caso contrário o resultado não fará sentido.
Variáveis, Operadores e Estruturas
Condicionais
43
44. Resto de divisão
O símbolo % é utilizado para obter o resto de
uma divisão, normalmente utilizado em um
numero inteiro, porém, também pode ser
aplicado a dois números de ponto flutuante.
Exemplo:
int mod = 12%4;
Variáveis, Operadores e Estruturas
Condicionais
44
45. Operadores de deslocamento
No Java são três operadores de descolamento
de bits: >>, << e >>>.
>> - Provoca o deslocamento de bits para a
direita, mantendo o bit do sinal fixo.
<< - Provoca o deslocamento dos bits para a
esquerda.
>>> - provoca o deslocamento de bits para a
direita, deslocando também o bit do sinal.
Variáveis, Operadores e Estruturas
Condicionais
45
46. Operadores de comparação
Utilizados para comparar valores e retornam
true ou false.
Variáveis, Operadores e Estruturas
Condicionais
46
Símbolo Operador
< Menor que
> Maior que
<= Menor ou igual que
>= Maior ou igual que
== Igual
!= Diferente
47. InstanceOf
Verifica se um determinado objeto é uma instancia de uma classe.
Exemplo:
class Principal{
public static void main(String[] args){
String nome = “”;
if(nome instanceof String ){
System.out.println(“é String”);
}else{
System.out.println(“não é String”);
}
}
}
A variável da esquerda deve ser uma variável do tipo reference.
Variáveis, Operadores e Estruturas
Condicionais
47
48. Operadores Lógicos
&& (AND)
Se uma das condições for falsa, o resultado do AND será falso.
Então, se a primeira condição for falsa, o resultado é falso sem
que a avaliação da segunda operação seja realizada.
|| ( OR )
Se uma das condições for verdadeira, então o resultado do OR
será verdadeiro, portanto, se a primeira condição for
verdadeira, a segunda condição não será avaliada.
Variáveis, Operadores e Estruturas
Condicionais
48
49. Operadores bit a bit
(&, ^ e|)
Aplicáveis a tipos inteiros e booleanos. O resultado
de uma operação entre bits é calculado
comparando-se os operadores bit a bit.
Regras Básicas:
• 1 & 1 resulta em 1, qualquer outra combinação resulta em 0;
• 0 | 0 resulta em 0, qualquer outra combinação resulta em 1;
• 1 ^ 0 ou 0 ^1 resulta em 1, qualquer outra combinação resulta
em 0;
Variáveis, Operadores e Estruturas
Condicionais
49
50. Operadores de atribuição
Estes operadores atribuem novos valores a uma
variável ou expressão.
Variáveis, Operadores e Estruturas
Condicionais
50
Operador Descrição
= Atribuição Simples
+= Incrementa o valor da variável com o operando ou expressão
do lado direito, por exemplo x+=3 equivale a x = x +3.
-= Semelhante ao trecho acima, neste caso x-=3 equivale a x =
x-3
*= X*=3 equivale a x = x*3
/= x/=3 equivale a x = x/3
%= X%=3 equivale a x = x%3
51. Operador Ternário
Atribui novos valores a uma variável com base em um comando condicional.
Exemplo:
int a = 2;
int b = 3;
int c = 4;
a = b > c ? b: c;
A expressão do lado esquerdo da “?” é avaliada (no caso b>c)
• Se b é maior que c, então a = b;
• Se b é menor ou igual a c, então a = c;
Variáveis, Operadores e Estruturas
Condicionais
51
52. Exercício
• Utilizando apenas as técnicas de programação
aprendidas até o momento, escreve um
programa em Java que imprima o quadrado e
o cubo dos números de 0 a 10, conforme
imagem abaixo:
53. Controle de Fluxo
If, else
Sintaxe:
If( <expressão booleana OU valor booleano> ){
//instrução 1
//instrução 2
}else{
//instrução 3
}
Dica: O uso da chave fica opcional quando temos apenas
uma instrução a ser executada pelo comando condicional.
Variáveis, Operadores e Estruturas
Condicionais
53
54. Switch
Quando o if, else não for suficiente e for necessário uma maior quantidade de blocos
pode-se utilizar o comando switch.
Sintaxe:
switch( <variável> ){
case <valor> : //instruções
case <valor> : //instruções
case <valor> : //instruções
default: //instruções
}
A variável que estiver sendo avaliada no switch, deverá ser de um dos seguintes tipos:
char, byte, short, int, enum.
A clausula default não é obrigatória e será executada quando não for encontrado um
case especifico.
Variáveis, Operadores e Estruturas
Condicionais
54
55. break no Switch
Quando um case verdadeiro é encontrado, o programa segue executando as instruções do
switch, até que encontre a instrução break ou o término do bloco switch.
Exemplo:
class Tester{
public static void main(String[] args){
int x = 1;
switch( x){
case 1:
System.out.println(“passou 1”);
case 2:
System.out.println(“passou 2”);
case 3:
System.out.println(“passou 3”);
break;
}
}
}
Caso seja executado, este código retornará:
Passou 1
Passou 2
Passou 3
Variáveis, Operadores e Estruturas
Condicionais
55
56. while
Utilizado para determinar de forma lógica quantas vezes
desejamos executar um bloco de instruções.
Sintaxe:
while( <condição booleana> ){
//instruçãoA
}
Dica: O uso da chave fica opcional quando temos apenas
uma instrução a ser executada pelo comando condicional
Variáveis, Operadores e Estruturas
Condicionais
56
57. do while
Difere do while normal, pois o bloco de código escrito
para o laço é executado pelo menos uma vez, mesmo
que a condição do while seja falsa.
Sintaxe:
do{
//instruções
} while( <condição booleana> )
Dica: uso de chaves é opcional se tiver apenas uma
instrução.
Variáveis, Operadores e Estruturas
Condicionais
57
58. for
Neste laço uma determinada expressão será repetida
até que a condição do for não seja mais satisfeita.
Sintaxe:
for( [inicialização];[teste];[incremento] ){
//comandos
}
Dica: uso de chaves é opcional se tiver apenas uma
instrução.
Variáveis, Operadores e Estruturas
Condicionais
58
59. break
A instrução break em um comando de repetição for, while ou do
while, fará com que o laço seja “abortado”, isto é, fará com que o
código pule para a instrução seguinte ao fechamento da chave
do bloco.
class TesteBreak{
public static void main(String[] args){
for( int i = 0; i<100; i++ ){
if( i == 20 ){
break;
}
}
}
}
Variáveis, Operadores e Estruturas
Condicionais
59
60. continue
A instrução continue em um comando de repetição for, while ou
do while, fará com que o laço pule a iteração atual, isto é, fará
com que o código pule para a iteração seguinte.
class TesteBreak{
public static void main(String[] args){
for( int i = 0; i<100; i++ ){
if( i == 20 ){
continue;
}
}
}
}
Variáveis, Operadores e Estruturas
Condicionais
60
61. Exercício
Crie um programa em Java que
dada uma turma de 10 alunos,
receba as notas individuais de cada
aluno e calcule a média da classe.
Obs: peça ao professor que ensine o que significa uma repetição controlada por
contador.
Variáveis, Operadores e Estruturas
Condicionais
61
62. Exercício
Modifique o programa criado anteriormente
para que faça uso da classe Scanner e que ao
invés de limitar o usuário a apenas 10 notas,
exiba a mensagem:
“Insira uma nota para continuar ou -1 para
terminar o programa”.
Obs: Peça ao professor para explicar o que significa uma repetição controlada
por sentinela.
Variáveis, Operadores e Estruturas
Condicionais
62
64. Referencias
As referencias do curso são essas :
• http://docs.oracle.com/javase/6/docs/
• Livro: Java - Como Programar - 8ª Ed. 2010, HARVEY M. DEITEL & PAUL J.
DEITEL