curso java básico - aula 01

64
Java Básico Aula 01 Natanael Fonseca - Arquiteto de Software

Upload: natanael-fonseca

Post on 19-Jul-2015

148 views

Category:

Technology


2 download

TRANSCRIPT

Java BásicoAula 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á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

Fases de Execução

Fundamentos da Linguagem 14

Fase 1

Fase 3

Fase 2

Fase 4

Fase 5

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

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