Java Básico
Aula 01
Natanael Fonseca - Arquiteto de Software
Ementa
• Introdução a Plataforma Java;
• Fundamentos da Linguagem;
• Variáveis, Operadores e Estruturas
Condicionais;
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
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
Visão Geral
Introdução a plataforma Java 5
Subdivisões
• Java Micro Edition (JME)
• Java Standard Edition (JSE)
• Java Enterprise Edition (JEE)
Introdução a plataforma Java 6
Java Timeline
Introdução a plataforma Java 7
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
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
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
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
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
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
Fases de Execução
Fundamentos da Linguagem 14
Fase 1
Fase 3
Fase 2
Fase 4
Fase 5
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.
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
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
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
Utilitário JavaDoc
Executar o comando
java –d diretoriodestino codigo.java
Fundamentos da Linguagem 19
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
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
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
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
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
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
Exemplos
Segue alguns exemplos:
float f = 10F;
float f2 = 10.45454f;
double d = 12565484546d;
double d2 = 12565484546.0;
Variáveis, Operadores e Estruturas
Condicionais
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
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
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
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
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
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
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
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
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
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
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
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 ()
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
Fim da Primeira Aula
Obrigado.
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

Curso Java Básico - Aula 01

  • 1.
    Java Básico Aula 01 NatanaelFonseca - Arquiteto de Software
  • 2.
    Ementa • Introdução aPlataforma Java; • Fundamentos da Linguagem; • Variáveis, Operadores e Estruturas Condicionais;
  • 3.
    História do Java TheGreen 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 • Linguagemde 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
  • 5.
    Visão Geral Introdução aplataforma Java 5
  • 6.
    Subdivisões • Java MicroEdition (JME) • Java Standard Edition (JSE) • Java Enterprise Edition (JEE) Introdução a plataforma Java 6
  • 7.
  • 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 cursonó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 • Diferenciacaracteres 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 eo 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
  • 14.
    Fases de Execução Fundamentosda Linguagem 14 Fase 1 Fase 3 Fase 2 Fase 4 Fase 5
  • 15.
    Palavras Reservadas abstract continuefor 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 Comosugestã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 Nomede 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 /* * Meucomentario */ JavaDoc /** * Com esse comentário podemos utilizar tags e anotações * especiais que ajudarão a compor o html gerado. */ Fundamentos da Linguagem 18
  • 19.
    Utilitário JavaDoc Executar ocomando java –d diretoriodestino codigo.java Fundamentos da Linguagem 19
  • 20.
    Variáveis Representam um espaçona 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 paradeclaraçã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 tiposprimitivos 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úmerosInteiros 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 umbyte 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 PontoFlutuante 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: floatf = 10F; float f2 = 10.45454f; double d = 12565484546d; double d2 = 12565484546.0; Variáveis, Operadores e Estruturas Condicionais
  • 27.
    Caracteres Os caracteres sãorepresentados 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ãoexpressos 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 JavaSuporta 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 tiposbooleanos 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 oendereç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 tiposreference 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, aclasse 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 declaradasdentro 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 defineem 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 classechamada 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 definidosna 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 Utilizadopara 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 incrementoe 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çãode 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 Conhecidocomo 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 aquelesque 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 Osí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 NoJava 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 Utilizadospara 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 umdeterminado 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) Seuma 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 abit (&, ^ 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 Estesoperadores 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 novosvalores 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 apenasas 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 Quandoum 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 determinarde 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 dowhile 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 umadeterminada 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 breakem 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 continueem 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 programaem 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 programacriado 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
  • 63.
    Fim da PrimeiraAula Obrigado.
  • 64.
    Referencias As referencias docurso são essas : • http://docs.oracle.com/javase/6/docs/ • Livro: Java - Como Programar - 8ª Ed. 2010, HARVEY M. DEITEL & PAUL J. DEITEL