Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel...

51
Alcione Benacchio Introdução a Linguagem Java

Transcript of Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel...

Page 1: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

Alcione Benacchio

Introdução a Linguagem Java

Page 2: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

Bibliografia

Java: Como Programar  Harvey M. Deitel - Paul J. Deitel

Java: O Guia Essencial Deivid Flanagan

Page 3: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

3

Tecnologia Java

A tecnologia Java foi lançada em 1995, e desde então tem crescido em popularidade e se tornado uma plataforma muito estável e madura.

Ela é composta por uma gama de produtos, baseados na abrangência da internet e na idéia de que um software deveria ser capaz de rodar em diferentes máquinas, sistemas e dispositivos.

Estes dispositivos podem ser computadores, servidores, notebooks, handhelds, PDAs(Palm), celulares, TVs, geladeiras, entre outros.

Os programas feitos em Java rodam em diferentes ambientes graças a um componente da plataforma chamado JVM (Java Virtual Machine) – que é um tipo de tradutor de código Java para instruções específicas de cada sistema e dispositivo.

Page 4: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

4

Tecnologia Java

A Tecnologia Java é basicamente dividida em: JSE – Java Standard Edition JEE – Java Enterprise Edition JME – Java Micro Edition

A tecnologia Java não é um produto, mas sim uma especificação definida pela Sun (www.java.sun.com).

Java é: uma completa plataforma de soluções para tecnologia um ambiente de desenvolvimento uma linguagem de programação

Page 5: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

5

JSE - Java Standard Edition

JSE permite o desenvolvimento de aplicações Java para desktop ou cliente/servidor.

É composta por: JRE: provê a API Java, a Java Virtual Machine e outros

componentes necessários para rodar aplicações escritas na Linguagem Java.

JDK: contém tudo o que há na JRE além de ferramentas como compiladores e debugadores necessários para desenvolver as aplicações.

A versão mais recente é a JSE 6.

Download: http://java.sun.com/javase/downloads/index.jsp,link JDK 6.

Page 6: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

6

JEE e JME

JEE: é o padrão para desenvolvimento de sistemas corporativos, voltada para aplicações multi-camadas, baseadas em componentes executados em servidores de aplicações. Contém bibliotecas para acesso a base de dados, RPC, CORBA, entre outras.

JME: é o padrão aplicado a dispositivos compactos, como celulares, PDAs, controles remotos, e uma gama de dispositivos. Permite o desenvolvimento de software embarcados, ou seja, aplicações que rodam em um dispositivo de propósito específico, desempenhando alguma tarefa que seja útil para o dispositivo.

Page 7: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

7

IDEs

IDEs para o desenvolvimento em Java: Eclipse 3.2.1

www.eclipse.org

NetBeans 5.5 http://www.netbeans.org/index.html

Page 8: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

8

Introdução à Linguagem Java

A linguagem Java foi designada para ser: Orientada a Objetos: permite a criação de classes,

herança e polimorfismo. A interação do sistema se dá pela interação dos objetos nele criados.

Distribuída: dá suporte a aplicações distribuídas (RMI, CORBA, URL)

Simples: não permite a manipulação direta da memória (ponteiros em C), possui o garbage collector para remover objetos não referenciados, possui o tipo básico boolean para manipular estados de verdade e falsidade.

Page 9: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

9

Introdução à Linguagem Java

A linguagem Java foi designada para ser: Multithread: permite a execução de diversas tarefas ao

mesmo tempo.

Segura: possui medidas de segurança para proteger o código de ataques (não usa ponteiros, não permite que applets tenham acesso ao computador dos clientes).

Independente de plataforma: Write Once, Run Everywhere

Page 10: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

10

Introdução à Linguagem Java

Dependência de Plataforma compilação de código na linguagem C, C++

Para rodar em diferentes plataformas, o código em C deve ser compilado em diferentes compiladores.

Código proprietário.

Page 11: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

11

Introdução à Linguagem Java Independência de Plataforma

JAVA: processos de compilação e interpretação

Pode-se escrever o código em uma plataforma e executá-lo em outra, com poucas ou nenhuma alteração a ser feita.

Page 12: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

12

Introdução à Linguagem Java

Independência de Plataforma: Com o compilador, primeiramente o programa é

convertido em bytecodes Java – um código independente de plataforma que é interpretado na plataforma Java. O interpretador lê e executa cada instrução em bytecode no computador.

O código é compilado uma única vez; a interpretação ocorre a cada execução da aplicação e é feita pela JVM.

Page 13: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

13

Plataforma Java

A plataforma é o ambiente de hardware e software em que um programa é executado. A maioria das plataformas pode ser descrita como a combinação do sistema operacional e da arquitetura de hardware.

A plataforma Java difere das demais por ser apenas uma plataforma de software que roda sobre qualquer plataforma de hardware.

Possui dois componentes: Java Virtual Machine (JVM): base da plataforma Java e portável para

várias plataformas de hardware. Parte de software que executa código, tarefa normalmente efetuada pela CPU.

Java Application Programming Interface (Java API): grande coleção de componentes de software prontos que provêm diversas capacidades, como ambiente gráfico e funcionalidades específicas. A API é agrupada em bibliotecas de classes a interfaces, sendo estas bibliotecas conhecidas como pacotes.

Page 14: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

14

JAVA API

http://java.sun.com/javase/6/docs/api/

A API é composta por diversas classes utilitárias Java, organizadas por pacotes.

Pacotes servem para agrupar classes com funcionalidades semelhantes.

pacotes ≈ diretórios classes ≈ arquivos

Na API são detalhadas todas as classes Java e há explicações sobre a funcionalidade das classes, a identificação de atributos e o detalhamento de métodos.

Tutorial: http://java.sun.com/docs/books/tutorial/getStarted/

Page 15: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

Codificação

Page 16: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

16

Detalhes iniciais

Java é uma linguagem fortemente tipada.

Não existem variáveis globais ou ponteiros.

Java é case-sensitive: variavel ≠ Variavel ≠ VARIAVEL

Boas práticas: tabular corretamente o código usar padrões de nomenclatura usar nomenclatura clara e inteligível comentar o código

Page 17: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

17

Detalhes iniciais Regras de nomenclatura:

não iniciar nomes com números ou caracteres especiais classes: inicial maiúscula

String, Vector, AcervoGeral, ControleContas

atributos, métodos e variáveis: tudo em minúsculas; se houver mais de uma palavra, primeira palavra toda em minúsculas, demais palavras com inicial maiúscula

nome, anoNascimento, getNome( ), setSalarioInicial( )

pacotes: tudo em minúsculas java.util, java.lang, javax.swing

constantes: tudo em maiúsculas PI, E

Normalmente não se usam os caracteres “_” e “-” no nome de classes, variáveis ou métodos.

Page 18: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

18

Detalhes iniciais

Blocos de código são delimitados por “{” e “}” e definem o escopo das variáveis.

O nome da classe deve ser idêntico ao nome do arquivo .java (considerando maiúsculas/minúsculas).

public class Livro { private String autor; private String titulo;

public Livro(String autor, setAutor(autor);setTitulo(titulo);

}}

public class Livro { private String autor; private String titulo;

public Livro(String autor, setAutor(autor);setTitulo(titulo);

}}

Arquivo: Livro.java

Page 19: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

19

Primeiro programa

public class PrimeiroPrograma{

public static void main(String[] args){

// amostragem na tela

System.out.println(“Primeiro programa”);

}

}

Este código deve ser escrito no arquivo PrimeiroPrograma.java. Ao ser compilado, irá gerar o arquivo de bytecodes

PrimeiroPrograma.class. O arquivo .class é interpretado pela JVM e gera a execução do

programa.

Na tela, deve aparecer a mensagem “Primeiro Programa”.

define o início da classe

1º método a ser executado(deve ser mantida esta linha sem alterações)

Page 20: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

20

Análise do Primeiro Programa

public class PrimeiroProgramapublic: modificador de acesso (acesso público)class: define o início da classePrimeiroPrograma: nome da classe

public static void main(String[] args)(este método é o ponto de partida do programa)public: modificador de acesso (acesso público)static: método pertence à classevoid: método não possui retornomain: nome do métodoString[] args: parâmetro de entrada do método, array de Strings

System.out.println(“Primeiro programa”);System.out.println: método de amostragem na tela“Primeiro programa”: mensagem a ser mostrada na tela

Page 21: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

21

Análise do Primeiro Programa

A classe que inicia a execução de um programa stand-alone deve possuir o método main.

Comentários:// comentário de uma linha

/* bloco de

comentários com

mais de uma linha */

/** bloco de

* comentários

* formato javadoc **/

Page 22: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

Fundamentos da Linguagem Java

Page 23: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

23

Criação de variáveis

Variáveis são utilizadas nas linguagens em geral para armazenar um determinado valor.

Toda variável deve ser declarada e inicializada. a declaração define o tipo da variável

<tipo da variável> <nome da variável>;

a inicialização define o seu valor inicial <nome da variável> = valor; <tipo da variável> <nome da variável> = valor;

Uma vez criada uma variável, de acordo com um tipo definido, este tipo não pode ser alterado.

Page 24: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

24

Tipos Básicos

Decimal

Inteiro

Caracter

Lógico

0.015 casas decimais64double

0.07 casas decimais32float

0263-1-26364long

0231-1-23132int

0215-1-21516byte

027-1-278short

x0216-1016char

xfalsetruefalse1/16boolean

Sem sinalDefaultMáximoMínimoTamanho (bits)

Tipo

Existem 8 tipos básicos (primitivos) em Java:

Page 25: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

25

Tipos Básicos

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

//declaração (i não possui valor)int i;

//inicialização e apresentação na tela i = 5;System.out.println(“Valor de i: ” + i);

//declaração e inicializaçãodouble d = 15.2;

// caracterchar c = 'a';c = '\t';c = '\u0043'; // valor Unicode para A

// lógicoboolean b = true;b = false;

// demais tipos básicosfloat f = 5.2f;byte bb = 127;short s = 1024;long l = 1234567890;int x,y,z;

}}

Valores expressos no código são chamados literais.

Literais inteiros (5) são do tipo int; literais com ponto flutuante (15.2) são do tipo double.

Base octal: acrescentar 0 na frente do literalint a = 0164 (11610)

Base hexadecimal: acrescentar 0x na frente do literalint a = 0x164 (35610)

Page 26: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

26

String

String não é um tipo básico, é uma classe do Java usada para representar textos (cadeias de caracteres).

A classe String possui métodos que permitem a manipulação da sua cadeia de caracteres.

public class TesteStrings {

public static void main(String[] args) {

// declaração (s vale null)

String s;

// inicialização

s = "Ana dos Santos";

// declaração e inicialização

String s2 = "Roberto Padilha";

System.out.println("Igual: " + s.equals(“Ana dos Santos”));System.out.println("Tamanho de s: " + s.length());

System.out.println("Caracter da posição 5 de s2: " + s.charAt(5));

}

}

Page 27: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

27

Operadores

+ += ++

- -= --

* *=

/ /=

% %= (resto da divisão)

> >=< <=!===

! (negação)

&& (e) || (ou)

& (e)

| (ou)

^ (xor)

~ (negação lógica)

Aritméticos Relacionais Lógicos Bit a bit

int a = 5;

boolean b = (a = = 10);

System.out.println(!b);

int c = 10 % 3;

System.out.println(c);

double d = 15.3;

d += 10;

System.out.println(d);

boolean e = (d > 10 && d <= 50)

System.out.println(e);

int i = 1;

int j = 2;

int k = ++j;

System.out.println("K: " + k);

System.out.println("J: " + j);

int l = i++;

System.out.println("L: " + l);

System.out.println("I: " + i);

k++;

Page 28: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

28

Conversões

As conversões podem ser implícitas: tipo menor para tipo maior explícitas: tipo maior para tipo menor. De ponto flutuante

para inteiro pode haver perda de informação.

8 16 32

64

byteshortchar

intfloat

longdouble

implícita

explícita

Page 29: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

29

Conversões Entre tipos básicos

Se há tipos diferentes em uma expressão, é feita a conversão implícita para o maior tipo da expressão.

double a1 = 10 * 5.2 + 4 – 1.3f; a1 = 54.7

double a2 = 5 / 2; a2 = 2.0 double a3 = 5 / 2.0; a3 = 2.5

A conversão explícita é marcada no código (também chamada casting):

int a4 = (int) 10 * 5.2 + 4 – 1.3f; a4 = 54 int a5 = (int) 5 / 2.0; a5 = 2

Page 30: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

30

Conversões

Entre String e valor numérico: como String não é um tipo básico, é necessário utilizar

classes do Java que fazem a conversão de um texto em um número.

Classes Wrapper: classes que representam os tipos básicos: Character Byte, Short, Integer, Long Float, Double

String s = 10;

int a1 = Integer.parseInt(s); a1 = 10

float a2 = Float.parseFloat(s); a2 = 10.0f

double a3 = Double.parseDouble(s) a3 = 10.0

Page 31: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

31

Exemplo de Código

Elaborar uma classe que contenha métodos para: calcular a área de um retângulo calcular o perímetro de um retângulo.

Executar o código de modo que o área e o perímetro de um retângulo de base 7 e altura 5 sejam mostrados na tela.

base = 7

altura = 5

Área: base x altura

Perímetro: 2 x base + 2 x altura

Page 32: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

32

Exemplo de Código

public class TesteRetangulo {public static double calculaArea(double base, double altura){

double area = base * altura;return area;

}

public static double calculaPerimetro(double base, double altura){return 2 * base + 2 * altura;

}

public static void main(String[] args){int b = 7;int h = 5;double a = calculaArea(b,h)

System.out.println("Area: " + a);System.out.println("Perimetro: " + calculaPerimetro(b,h));

}}

Page 33: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

33

Análise do Código A classe TesteRetangulo é composta por 3 métodos:

calculaArea, calculaPerimetro, main

Assinatura de um método:<modificadorDeAcesso> <static> tipoDeRetorno nomeDoMetodo (<listaDeParâmetros>)

public static double calculaArea(double base, double altura)public static void main(String[] args)

modificadorDeAcesso: delimita visibilidade do método (opcional) static: não é necessário criar objeto para chamar o método, o método

pertence à classe (opcional) tipoDeRetorno: tipo básico, tipo abstrato (classe), ou void quando não há

retorno listaDeParâmetros: o que entra no método; cada parâmetro deve ter um tipo

associado (opcional)

Page 34: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

34

Análise do Código Primeiramente é executado o método main onde são criadas as

variáveis b e h, que recebem os valores 7 e 5 respectivamente.

Ao chamar o método calculaArea(b, h), há um desvio para o método calculaArea, onde os parâmetros de entrada base e altura recebem os valores de b e h, respectivamente.

Ao entrar no método calculaArea, é criada a variável area que assume o valor da expressão base x altura (35). O valor desta variável é retornado à variável a do método main.

A variável a é apresentada na tela.

Processo semelhante ocorre na chamada do método calculaPerimetro(b,h).

Page 35: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

35

Análise do Código Escopo:

as variáveis b, h e a são visíveis apenas no método main (variáveis locais do método main)

os parâmetros base e area e a variável area são visíveis somente no método calculaArea

os parâmetro base e area e a variável perímetro são visíveis somente no método calculaPerimetro.

ao término da execução de um métodos, seus parâmetros e variáveis locais são apagados da memória.

Por mais que haja dois métodos com parâmetros de nomes idênticos, os momentos de execução são diferentes. Por isso, não há confusão entre os parâmetros.

Page 36: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

36

Análise do Código

Este tipo de codificação não envolve o conceito de orientação a objetos propriamente dito, uma vez que não são criados objetos, todos os métodos são estáticos, não há herança e polimorfismo.

Entretanto, representa uma classe utilitária que possui métodos de significado semelhante que podem ser utilizados futuramente por outras classes.

Page 37: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

37

Exercício

Elaborar uma classe que possua as seguintes funcionalidades de uma calculadora:

somar dois números subtrair dois números multiplicar dois números dividir dois números

No método main, executar os métodos com valores definidos e mostrar o resultado na tela no seguinte formato:

Soma de 5 e 7: 12Multiplicação de 3 e 6: 18

Page 38: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

38

Estruturas de Seleção

Uma estrutura de seleção permite a escolha de um grupo de ações (ou bloco de ações) a ser executado quando determinadas condições, representadas por expressões lógicas ou relacionais, são ou não satisfeitas.

As estruturas de seleção são: if/else (seleção simples) switch (seleção múltipla)

Page 39: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

39

Estruturas de Seleção – if/else

public static boolean maior(int a, int b){ if (a > b){

return true;} else {

return false;}

public static boolean maior(int a, int b){return a > b ? true : false;

}

public static String categoria(int idade){ if (idade <= 12){

return “Infantil”;} else if (idade <= 18){

return “Adolescente”);} else if (idade <= 60){

return “Adulto”;} else if (idade > 60)

return “Idoso”;}

Método que retorna verdadeiro caso o 1º parâmetro seja maior que o 2º

Utilização do operador ? : para o mesmo problema

Método que testa intervalos por meio de ifs aninhados.

Page 40: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

40

Estruturas de Seleção - switch

public static void mostraOpcao(int opcao){ switch (opcao){

case 1: System.out.println(“1: Incluir”);break;

case 2: System.out.println(“2: Alterar”);break;

case 3: System.out.println(“3: Excluir”);break;

case 4: System.out.println(“4: Imprimir”);break;

default:System.out.println(“Opcao invalida”);

}}

Método que mostra uma mensagem em função de um número.

A variável de teste (opcao) deve ser dos tipos char, byte, short ou int.

Neste método, a variável opcao pode assumir os valores 1, 2, 3 ou 4. Caso possua outro valor, a mensagem “Opção inválida” é apresentada na tela.

O comando break delimita o final de um case. Sempre deve ser utilizado em cases intermediários.

Page 41: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

41

Estruturas de Repetição

Estrutura de controle de fluxo e execução que permite repetir diversas vezes um mesmo trecho de código.

Repetem um bloco de código enquanto uma determinada condição for veradeira.

As estruturas de repetição são: while do/while for

Page 42: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

42

Estruturas de Repetição - while

Primeiro testa, depois executa.

Controle de parada associado a uma variável. Se a variável não for atualizada, gera-se um laço infinito.

public static void mostraPares(int valor){ int contador = 2;

while(contador <= valor){ System.out.println(contador); contador += 2;

}}

Método que mostra os número pares entre 2 e um valor passado como parâmetro.

A variável de controle é chamada contador.

A expressão contador += 2 é equivalente a contador = contador + 2

Para gerar um laço infinito, escreve-se while(true)

Page 43: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

43

Estruturas de Repetição - do/while

Primeiro executa, depois testa. Executa pelo menos 1 vez.

Controle de parada associado a uma variável. Se a variável não for atualizada, gera-se um laço infinito.

public static void mostraPares(int valor){ int contador = 2;do{ System.out.println(contador);

contador += 2;} while(contador <= valor)

}

Método que mostra os número pares entre 2 e um valor passado como parâmetro.

Estrutura de repetição menos utilizada.

Page 44: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

44

Estruturas de Repetição - for Primeiro testa, depois executa.

Normalmente utilizado em situações onde há contagem.

Variável de controle de parada associada à própria estrutura do for.

public static void mostraPares(int valor){ for(int i = 0; i <= valor; i+=2){ System.out.println(contador);}

}

Método que mostra os número pares entre 2 e um valor passado como parâmetro.

Comando composto por 3 partes separadas por “;” :

inicialização da variável de controle

condição de paradaatualização da variável de

controle

A variável de controle i pode ser declarada na linha do for. Neste caso, só é visível dentro do for (escopo da variável i).

Page 45: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

45

Estruturas de Desvio

Dentro de uma estrutura de repetição, pode-se: continue: efetuar desvios para o teste da condição break: causar um encerramento forçado durante as

repetições.

public static void testeDesvio(int valor){

for(int i = 0; i <= valor; i++){

if (i >= valor / 2)

break;

if (i % 2 != 0)

continue;

System.out.print(i);

}

}

Método que mostra os número pares entre 2 e a metade de um valor passado como parâmetro.

Se a variável i for maior ou igual à metade do valor passado, encerra o laço.

Se a variável i for não par, volta para o incremento do for (i++).

Page 46: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

46

Arrays

Um array é uma estrutura de dados composta por um número finito de componentes (ou elementos), todos eles do mesmo tipo, armazenado de forma contígua na memória, sendo que cada componente é identificado por um índice.

Seus elementos podem ser acessados diretamente sem a necessidade de acessar elementos anteriores ao desejado.

O tamanho de um array é correspondente à quantidade de componentes que possui.

Uma vez criado um array, pode-se alterar o seu conteúdo, mas não o seu tamanho. Ou seja, se for criado um array de 15 elementos, não há como aumentá-lo para 20 ou reduzi-lo para 10.

A primeira posição de um array é acessada pelo índice 0. Um array de 10 elementos terá índices variando entre 0 a 9.

Page 47: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

47

Arrays Unidimensionais

Declaração e inicialização de um array unidimensional (vetor): definir o tipo definir a variável/identificador definir o tamanho ou os elementos iniciais

Array declarado mas não inicializado (null)int[] array;

Array de 10 inteiros:int[] arrayInt = new int[10];

Array de 5 doubles (valores definidos na criação)double[] arrayDouble = {2.0, .75, 1.5, 4.2, 9.7};

Captura do tamanho do array unidimensionalint tam = arrayInt.length;

0 1 2 3 4 5 6 7 8 9

vetor

Page 48: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

48

Arrays Unidimensionais

Método que cria um vetor de qualquer tamanho, inicializa-o, apresenta-o na tela e o retorna ao final.

Enhanced for: melhoria do método for

(JAVA 5) sintaxe mais simplificada

para percorrer um array não se tem acesso direto

ao índice do elemento manipulado

public static int[] testeVetor(int tamanho){

int[] vetor = new int[tamanho];

for(int i = 0; i < vetor.length; i++){

if (i % 2 = = 0)

vetor[i] = 0;

else

vetor[i] = 1;

}

// amostragem na tela com o enhanced for

for(int elemento : vetor){

System.out.println(elemento);

}

return vetor;

}

Page 49: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

49

Arrays Bidimensionais Declaração e inicialização de um array bidimensional (matriz):

definir o tipo definir a variável/identificador definir o tamanho (linhas e colunas) ou os elementos iniciais

Array declarado mas não inicializado (null)int[][] array;

Array de 10x2 inteiros:int[][] arrayInt = new int[10][2];

Array de 2x3 inteiros (valores definidos na criação)int[][] arrayInt = {{1, 2, 3}, {4, 5, 6}};int[][] arrayInt = {{1, 2, 3}, {4, 5, 6}};

Captura do tamanho do array bidimensionalint linhas = arrayInt.length;int colunas = arrayInt[0].length;

0 1 2 3

01

0 1 2 30 1 2 3

0 1

matriz

matriz

Page 50: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

50

Arrays Bidimensionais Método que cria uma

matriz de qualquer tamanho, inicializa-a, apresenta-a na tela e a retorna ao final.

Enhanced for: como uma matriz é

um vetor dentro de vetores, o primeiro for captura um vetor e o segundo for captura os elementos deste vetor.

public static int[][] testeMatriz(int l, int c){

int[][] matriz = new int[l][c];

for(int i = 0; i < matriz.length; i++){

for(int j = 0; j < matriz[0].length; j++){

if (i % 2 = = 0)

matriz[i][j] = 0;

else

matriz[i][j] = 1;

}

// amostragem na tela com o enhanced for

for(int[] linha : matriz){

for(int elemento : linha){

System.out.println(elemento);

}

return matriz;

}

Page 51: Alcione Benacchio Introdução a Linguagem Java. Bibliografia Java: Como Programar Harvey M. Deitel - Paul J. Deitel Java: O Guia Essencial Deivid Flanagan.

Exercícios