Download - Curso Java Básico - Aula 01
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
Subdivisões
• Java Micro Edition (JME)
• Java Standard Edition (JSE)
• Java Enterprise Edition (JEE)
Introdução a plataforma Java 6
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ássicoHelloWorld
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
Palavras Reservadas
abstract continue for new switchassert*** default goto* package synchronizedboolean do if private thisbreak double implements protected throwbyte else import public throwscase enum**** instanceof return transientcatch extends int short trychar final interface static voidclass finally long strictfp** volatileconst* 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/codeconventions-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 ClasseExemplo:
HelloWorld, MeuProgramaEmJava, BancoDeDados
Métodos, atributos e variáveisExemplo:
minhaFuncao, minhaVariavelInt
ConstantesExemplo:
DATA_NASCIMENTO, TAMANHO_PADRAO
IdentaçãoTabulaçõ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 paraarmazenar valores que são utilizados pelosprogramas de computador na resolução deproblemas.
Para cada área de memória (cada variável)associamos um nome e o tipo a ser armazenadonaquela á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 denúmeros inteiros oferecidos pela linguagem são:
O primeiro bit da esquerda é utilizado para o sinal + ou -, portanto não temos unsignedcomo 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 tipoprimitivo char, e são utilizados para expressaruma “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 aspassimples.
Exemplo :char meuChar = ‘x’;
Outra maneira de expressar um literal de caractere é especificar ocódigo “Unicode” usando quatro dígitos em hexadecimal precedidospor \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 barrainvertida (\), 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 pordois valores: true ou false, elas ocupam apenas 1 bit.
Exemplo:
boolean ok = true;Boolean acabou = false;
Observação: Não existe nenhum mapeamento entre truee false e os números inteiros diferentemente da maioriadas 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 suainicialização pode ser feita semelhantemente ainicializaçã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ícioCrie 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; // - 8int 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 representamoperaçõ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 deuma divisão, normalmente utilizado em umnumero inteiro, porém, também pode seraplicado 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 FluxoIf, 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çõescase <valor> : //instruçõesdefault: //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 SwitchQuando 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 2Passou 3
Variáveis, Operadores e Estruturas Condicionais
55
whileUtilizado 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 whileDifere 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
forNeste 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
breakA 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
continueA 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 quedada uma turma de 10 alunos,receba as notas individuais de cadaaluno e calcule a média da classe.
Obs: peça ao professor que ensine o que significa uma repetição controlada porcontador.
Variáveis, Operadores e Estruturas Condicionais
61
ExercícioModifique 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
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