Top Banner
Introdução ao Java Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.
53

Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Feb 11, 2019

Download

Documents

trannga
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Introdução ao Java

Marco A L Barbosamalbarbo.pro.br

Departamento de InformáticaUniversidade Estadual de Maringá

cbaEste trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.

Page 2: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Conteúdo

Introdução

Olá mundo

Variáveis

Tipos de dados

Campos e métodos estáticos

Documentação

Operadores

Controle de fluxo

Referências

Page 3: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Introdução

3/53

Page 4: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Introdução

• Por enquanto vamos aprender parte da sintaxe e dos tipos dedados, sem se preocupar com os aspectos de programaçãoorientado a objetos

• Vamos usar algumas construções sem entender precisamentecomo funcionam, ao longo das aulas estas construções serãoesclarecidas

• Vamos usar comparações com a linguagem C para“aproveitar” o conhecimento de vocês

• Vamos começar com um editor de texto e compilação noterminal, depois usaremos um IDE

4/53

Page 5: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Olá mundo

5/53

Page 6: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Olá mundo

public class Ola {public static void main(String[] args) {

// - args é um arranjo indexado a partir de 0// que contém os argumentos passados na linha de comando// - args também tem um campo length com a quantidade// de elementos no arranjoif (args.length == 1) {

System.out.println("Olá " + args[0] + "!");} else if (args.length == 2) {

System.out.printf("Olá %s e %s!\n", args[0], args[1]);} else {

System.out.println("Olá mundo!");}

}}

6/53

Page 7: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Olá mundo

Para compilar um arquivo Java, invocamos o compilador javac epassamos como argumento o nome do arquivo. As dependências(no mesmo projeto) são compiladas automaticamente.

$ javac Ola.java

7/53

Page 8: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Olá mundo

Para executar um programa, invocamos a máquina virtual com ocomando java e passamos como argumento o nome da classe quecontém o método main. Os argumentos para o programa sãoespecificados após o nome da classe.

$ java OlaOlá mundo!$ java Ola JoãoOlá João!$ java Ola João MariaOlá João e Maria!$ java Ola João Maria PedroOlá mundo!

8/53

Page 9: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Arquivos e classes

• Por conversão, os nomes de classe são escritos em CamelCase,começando com maiúscula

• O código de cada classe pública deve ser escrito em umarquivo com o mesmo nome da classe e com extensão .java

• Um arquivo pode ter muitas declarações de classes, mas nomáximo uma classe pública

• O compilador gera um arquivo .class para cada classecompilada

9/53

Page 10: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Variáveis

10/53

Page 11: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Variáveis

• Nome do tipo seguido do nome da variável

long x = 20;boolean tag = true;

• Inferência de tipo (Java 10)

var x = 20; // tipo inferido intvar tag = false; // tipo inferido boolean

• Por convenção nomes de variáveis são escritos em camelCase,começando com minúscula

11/53

Page 12: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Tipos de dados

12/53

Page 13: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Inteiros primitivos

Tipo Bytes Min Max

byte 1 -128 127short 2 -32768 32767int 4 -2147483648 2147483647long 8 -9223372036854775808 9223372036854775807

13/53

Page 14: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Ponto flutuantes primitivos

Tipo Bytes Precisão

float 4 6 a 7 casas decimaisdouble 8 14 a 15 casas decimais

14/53

Page 15: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Outros tipos primitivos

• boolean

• Valores true ou false

• O tamanho dependente da máquina virtual

• char

• Um caractere Unicode de 16 bits: '\u0000' a '\uffff'

• Exemplo

char x = 'a';

15/53

Page 16: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

String

Strings não são tipos primitivos, mas são tratadas de formaespecial pelo compilador.

• Literais (são armazenados em um pool)

• Concatenação com o operador +

• Exemplos

String s = "uva";String x = "sudo de " + s;String y = x + " de " + 500 + " ml";asssert y == "suco de uva de 500 ml";

16/53

Page 17: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Literais numéricos

• Literais numéricos sem ponto são do tipo int a menos quealgum sufixo seja especificado

• l ou L → long

• f ou F → float

• d ou D → double

• Literais numéricos com ponto são do tipo double a menosque algum sufixo seja especificado

• f ou F → double

17/53

Page 18: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Literais numéricos

• _ pode aparecer entre os dígitos de qualquer literal numérico

• Literais em hexadecimal são prefixados com 0x

• Literais em binário são prefixados com 0b

18/53

Page 19: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Literais numéricos

Exemplos

System.out.println(23); // imprime 23System.out.println(23f); // imprime 23.0System.out.println(123_456.0); // imprime 123456.0System.out.println(0xabc); // imprime 2748System.out.println(0b1010); // imprime 10

19/53

Page 20: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Conversões

• Conversões sem perda de magnitude podem feitas de formaimplícita

• byte para short, int, long, float e double

• short para int, long, float e double

• char para int, long, float e double

• int para long, float e double

• long para float e double

• float para double

• Conversões com perda devem ser feitas de forma explícita

20/53

Page 21: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Conversões

• Exemplos

int x = 120;long y = x;short z = (int) x;

21/53

Page 22: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Tipos primitivos vs tipos referência

• Os tipos que não são primitivos são chamados de tiposreferência

• int[], String, ArrayList, etc

• Variáveis locais e parâmetros de tipos primitivos são semprealocados na pilha

• As referências também são alocadas na pilha, mas os valoresreferenciados são sempre alocados no heap usado o operadornew

// a referência para o arranjo é armazenada na pilha, mas// os 10 valores (e mais outros dados) são armazenados no heapint[] x = new int[10];// os valores alocados com `new` são desalocados automaticamente// pelo coletor de lixo

22/53

Page 23: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Tipos primitivos vs referências

• Esta dicotomia entre tipos primitivos e tipos referênciaspermite mais eficiência em tempo de execução, mas torna alinguagem menos ortogonal

• Para amenizar esta dualidade, cada tipo primitivo tem umtipo referência correspondente

• Byte, Short, Integer, Long, Float, Double, Boolean,Character

• Isto permite que as variáveis do tipo primitivo sejamarmazenadas como variáveis do tipo referência

Integer x = new Integer(10);Object y = 20; // o compilador executa implicitamente

// new Integer(20)

23/53

Page 24: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Novos tipos

Novos tipos referência podem definidos com class e enum

• Uma classe é composta por dois tipos de membros

• Campos

• Métodos (funções)

• Por enquanto, vamos considerar as classes similares asestruturas em C

• Um enum é um tipo ordinal onde os valores possíveis do tiposão enumerados explicitamente

24/53

Page 25: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Novos tipos

class Ponto {int x;int y;

}

class Circulo {Ponto centro;int raio;Cor cor;

}

enum Cor {VERMELHO,VERDE,AZUL

} 25/53

Page 26: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Novos tipos

public class Exemplo {public static void main(String[] args) {

// - Todos os campos de uma classe são inicializados com// valores padrão// - Não é possivél alocar uma instância de uma classe na// pilha. O uso do new é um indicador que a alocação// ocorre no heapPonto p = new Ponto();// x e y são inicializados com 0p.x = 3;p.y = 4;Circulo c = new Circulo();// centro e cor são inicializado com null e raio com 0c.centro = p;c.raio = 10;c.cor = Cor.VERMELHO;

}} 26/53

Page 27: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Campos e métodos estáticos

27/53

Page 28: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Campos

• Os campos podem ser de instâncias ou de classe

• Cada instância da classe contém um valor para cada campo deinstância, portanto, para acessar um campo de instância énecessário uma instância

• Existe apenas um valor de cada campo estático. Os camposestáticos são similares as variáveis globais em C

• Por padrão, os campos são de instância, para declarar umcampo estático devemos utilizar o modificador static

28/53

Page 29: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Campos estáticos

class Pessoa {static long proximoId = 1;long id;String nome;

}

29/53

Page 30: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Campos estáticospublic class Exemplo {

public static void main(String[] args) {// OkSystem.out.println(Pessoa.proximoId); // imprimi 1

// Erro: cada instância de Pessoa tem um valor// para id, de qual instância é o id// que estamos tentando acessar?System.out.println(Pessoa.id);// mensagem: non-static variable id cannot be// referenced from a static context

Pessoa jose = new Pessoa();jose.nome = "José";jose.id = Pessoa.proximoId;Pessoa.proximoId += 1;

Pessoa pedro = new Pessoa();pedro.nome = "Pedro";pedro.id = Pessoa.proximoId;Pessoa.proximoId += 1;// pedro.proximoId += 1; // funciona, mas é confuso

// Ok: id da instância joseSystem.out.println(jose.id); // imprimi 1// Ok: id da instância pedroSystem.out.println(pedro.id); // imprimi 2

}}

30/53

Page 31: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Métodos

• As funções em Java são chamadas de métodos

• Todo método é definido dentro de uma classe

• Os métodos podem ser de instância ou de classe

• Os métodos de instância precisam de uma instância da classepara serem executados. Eles podem acessar e modificar oscampos da instância. Veremos mais adiante como elesfuncionam

• Os métodos de classe, também chamados de métodosestáticos, não precisam de uma instância da classe e portantosó podem acessar e modificar os campos estáticos da classe.Os métodos estáticos são invocados de maneira similares asfunções em C

31/53

Page 32: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Métodos estáticos

• Quando um método é definido, por padrão ele é de instância,para definir um método estático adicionamos o modificadorstatic

32/53

Page 33: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Métodos estáticos

class Ponto {int x;int y;

static double distanciaOrigem(Ponto p) {return Math.hypot(p.x, p.y);

}}

public class MetodoEstatico {public static void main(String[] args) {

Ponto p = new Ponto();p.x = 3;p.y = 4;double d = Ponto.distanciaOrigem(p);// p.distancia_origem(p); funciona, mas é confusoSystem.out.println(d); // imprimi 5.0

}}

33/53

Page 34: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Passagem de parâmetros

• Todos os parâmetros em Java são passados por valor

• Mas, uma cópia de uma referência é similar a uma cópia deponteiro, o que implica que a semântica da passagem deparâmetro de tipos referência é como a de passagem porreferência!

34/53

Page 35: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Passagem de parâmetrosimport java.util.Arrays;

public class Parametros {public static void main(String[] args) {

int a = 1;int[] b = {1, 2, 3};

Parametros.mudaPrimitivo(a);System.out.println(a); // imprimi 1

Parametros.mudaArray1(b);System.out.println(Arrays.toString(b)); // imprimi [10, 2, 3]

Parametros.mudaArray2(b);System.out.println(Arrays.toString(b)); // imprimi [10, 2, 3]

}

static void mudaPrimitivo(int x) {x = 10;

}

static void mudaArray1(int[] x) {x[0] = 10;

}

static void mudaArray2(int[] x) {x = new int[3];

}}

35/53

Page 36: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Documentação

36/53

Page 37: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Documentação

• Um dos fatores que contribuíram para a popularidade do Javafoi a extensa biblioteca padrão e sua documentação

• Embora os IDES possam mostram a documentação dos itensdurante a escrita do código, o uso de um navegador paraexploração das APIs é em geral mais apropriado

• A documentação para o Java 10 está disponível emhttps://docs.oracle.com/javase/10

37/53

Page 38: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Documentação

38/53

Page 39: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Documentação

39/53

Page 40: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Documentação

40/53

Page 41: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Documentação

41/53

Page 42: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Documentação

42/53

Page 43: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Operadores

43/53

Page 44: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Operadores

• Os operadores em Java são praticamente os mesmos do C

• Atenção especial aos operadores == e !=

• Para os valores de tipos primitivos testa se os operados sãoiguais ou diferentes

• Para os valores de tipos referência testa se os operados sãoiguais ou diferentes, ou seja testa se as referências são iguaisou diferentes, não compara os valores referenciados! Use ométodo equals para comparar os valores referenciados

Integer x = new Integer(10);Integer y = new Integer(10);System.out.println(x == y); // imprime falseSystem.out.println(x != y); // imprime trueSystem.out.println(x.equals(y)); // imprime true

44/53

Page 45: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Precedência dos operadores

Operador Precedência

postfix expr++ expr--unary ++expr --expr +expr -expr ~ !multiplicative * / %additive + -shift << >> >>>relational < > <= >= instanceofequality == !=bitwise AND &bitwise exclusive OR ˆbitwise inclusive OR |logical AND &&logical OR ||ternary ? :assignment = += -= *= /= %= &= ˆ= |= <<= >>= >>>=

45/53

Page 46: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Controle de fluxo

46/53

Page 47: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

if

if (condição) {sentenças

}

if (condição) {sentenças

} else {sentenças

}

condição é uma expressão booleana

47/53

Page 48: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

switch

switch (expressão) {case exp1: sentenças [break;]case exp2: sentenças [break;]...default: senteças [break;]

}

Funcionamento semelhante ao da linguagem C

expressão pode ser um tipo inteiro, enumerado ou String

48/53

Page 49: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

while

while (condição) {sentenças

}

do {sentenças

} while (condição);

condição é uma expressão booleana

49/53

Page 50: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

for

for (inicialização; condição; incremento) {sentenças

}

Equivalente a:

inicialização;while (condição) {

sentenças;incremento;

}

Funcionamento semelhante ao da linguagem C50/53

Page 51: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

for

for (tipo nome : exp) {sentenças

}

int[] valores = {5, 2, 7, 10};for (int x : valores) {

...}

51/53

Page 52: Introdução ao Javamalbarbo.pro.br/arquivos/2018/5185/01-java-introducao.pdf · 2018-09-20 · • Um caractere Unicode de 16 bits: '\u0000'a '\uffff ... estáticos são similares

Referências

52/53