• Nenhum resultado encontrado

Apostila Java interessante00

N/A
N/A
Protected

Academic year: 2021

Share "Apostila Java interessante00"

Copied!
189
0
0

Texto

(1)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Rildo F Santos [email protected] @rildosan skype: rildo.f.santos http://rildosan.blogspot.com/ (11) 9123-5358 (11) 9962-4260 www.etcnologia.com.br

(2)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Estrutura do Curso

Introdução

Programação

Orientada

a Objetos

Características

Avançadas

Introdução

a UML

Utilitários

Apresenta arquitetura da linguagem Java

Apresenta comandos e funcionalidades

básicas

Fundamentos

da linguagem

Principais aspectos da programação

orientada a objetos

Apresentar características avançada da

Linguagem (Threads, networking e etc)

Apresentar uma visa geral da UML e seus

os principais componentes

Demonstrar os principais utilitários da

linguagem Java (Jar, JadaDoc e etc)

(3)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Conteúdo

Introdução breve apresentação gerando aplicações Instalação do JDK O primeiro programa

Fundamentos da linguagem Java

Estrutura da linguagem Palavras Reservadas Tipos de Dados Inicialização de variáveis Operadores A classe String A classe StringBuffer Casting Fluxo de Controle Arrays Passagem de Parâmetros A classe Math Empacotamento de Classes Conversão de Tipos A referência this Coleções Pacotes

Programação Orientada a Objetos

Classes Objetos Métodos Construtores Atributos e variáveis Exemplo de classe Exercício Abstração de Dados Relacionamento Herança Herança Múltipla

Comparação: Classes vs Interfaces A referência Super Associação Navegação Rolename Agregação Composição Multiplicidade Constraint Encapsulamento Polimorfismo Acessibilidade Características Avançadas Instanceof Exception

Formatando Números e Datas Constantes Threads Serialization TCP/IP Introdução a UML Utilitários JavaDoc Jar JDB Javap Apêndice

Convenção de Código no Java Unicode

Notação UML

Versão do JSDK 1.3

Este material foi preparado para trabalhar com a versão JSDK 1.3 (veja: http://java.sun.com/j2se/1.3/index.jsp), entretanto todos os exemplos funcionam perfeitamente na versão 6 (versão atual)

(4)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Apresentar as características básicas da linguagem Java, assim

como, sua estrutura, funcionalidades, métodos, classes, APIs

(Application Program Interface) e recursos avançados.

Você está preparado ?

Para aprendermos uma nova linguagem de programação é necessário ter alguns conhecimentos como:

- Lógica de Programação;

- Conhecer um Sistema Operacional, por exemplo, Windows, Unix, Linux ou MacOS; - Saber editar e compilar programas e;

Conhecer uma outra Linguagem de Programação é importante, porém não imprescindível.

Expectativas após o Curso:

Objetivo deste curso:

Ao final deste curso você deverá estar apto a:

• Utilizar a linguagem Java para criar aplicações simples;

• Descrever e usar as características de linguagem orientada a

objetos com Java, tais como: Herança, Abstração de Dados,

Encapsulamento e Polimorfismo;

• Conhecer o tratamento de exceções;

• Descrever e usar “sockets” para fazer acesso a servidores e

clientes;

• Conhecer UML básica;

(5)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

(6)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Java

Uma breve apresentação...

Surgimento:

Java é uma linguagem de programação criada em 1995 por James Gosling e sua equipe. A linguagem é de propriedade da Sun Microsystem.

Logo Java ganhou popularidade, um bom exemplo disto são os “Applets”, aqueles pequenos aplicativos que executam nos navegadores, que durante muito tempo foi o foco da linguagem Java.

Com o passar do tempo, o número de desenvolvedores aumentou e a linguagem amadureceu sendo hoje considerada o principal ambiente de desenvolvimento, tanto para Internet quanto para ambiente cliente/servidor tradicional.

Algumas das características da linguagem Java: • Orientação a objetos

• Portabilidade (isto que dizer que o mesmo programa criado no

Windows2000, pode ser executado em Linux, por exemplo, ou qualquer outro Sistema Operacional, sem a necessidade de fazer ajustes).

Entretanto, a linguagem Java vai além da computadores, sendo executada em diversos dispositivos como telefone celulares, televisores, cartões inteligentes e etc. O Java é reconhecido como a principal linguagem no mundo dos Servidores de Aplicações e ambiente sem fio (wireless).

(7)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

•Orientação a objetos: A linguagem é orientada a objetos a partir de sua arquitetura, permitindo herança, polimorfismo, encapsulamento, abstração de dados, persistência de objetos e reúso de código.;

Independência de plataforma (Portabilidade): Possibilidade do mesmo código fonte ser executado em diversos sistemas operacionais, tais como Solaris, AIX, Linux, MacOS, Win32, PalmOS, OS/390 e etc);

Dinamismo: A natureza dinâmica do Java, sendo uma extensão natural de seu projeto orientado a objetos, permite a extensibilidade durante a execução.

Alto desempenho: Suporte a vários recursos, como

multithreading, compilação em Jus-in-time, atomicidade do código e suporte a protocolos de rede (TCP/IP)

Facilidade de manutenção de programas. A linguagem não tem:

Ponteiros do sistema operacional;

Defines;

Sobrecarga de operadores;

Herança múltipla de classes e

Função e/ou procedure.

Principias características:

Cargabe Collection (gerenciamento dinâmico da memória);

Java Virtual Machine (JVM);

Código seguro.

O que é o Java?

Java é:

Uma linguagem de programação;

Um ambiente de desenvolvimento;

Um ambiente de aplicação;

Java é o resultado de uma busca por uma plataforma de programação que pudesse fornecer segurança, portabilidade (independência de sistema operacional) e escalabilidade.

Os primeiros objetivos alcançados com o desenvolvimento desta nova linguagem foram:

(8)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Diferenças entre o Java e o C++

Java é sintática e morfologicamente muito parecido com a linguagem C++, entretanto, existem diferenças:

Inexistência de aritméticas de ponteiros (ponteiros são apenas referências);

Arrays são objetos;

Strings são objetos;

Gerenciamento automático de alocação e deslocação de memória (Garbage

Collection);

Não há sobrecarga de operadores;

Não há métodos com lista de argumentos de tamanho variável;

Não existem diretivas de pré-compilação (#define, #ifde);

Não existem Templates;

Não existe Herança Múltiplas com classes, apenas com interfaces;

Não existem funções, mas apenas métodos de classes;

Necessita de ambiente de execução (runtime), ou seja, a JVM (Java Virtual Machine).

Introdução a linguagem Java

public class Hello {

public static void main (String arg []) { System.out.println("Hello” + “\n”); } } #include <iostream.h> int main () { cout << “Hello \n" ; return 0; } Java C++

(9)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Portabilidade: “A independência de plataforma”

O Java é independente de plataforma. Isto significa que o desenvolvedor não terá que se preocupar com particularidades do sistema operacional ou do hardware, focando o seu esforço no código em si. Mas o que isto realmente significa?

Na maioria das linguagens é preciso gerar uma versão para cada plataforma que se deseja utilizar, exigindo em muitos casos, alterações também no código fonte. Em Java o mesmo programa pode ser executado em diferentes plataformas. Veja o exemplo abaixo:

?

O mesmo código fonte

Introdução a linguagem Java

public class HelloWorldApp {

public static void main (String arg []) { System.out.println("Hello World!"); } } Compilação: > javac Hello.java Execução: > java Hello Sistema Operacional e Processadores diferentes Hello World Hello World Hello World

(10)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Gerando Aplicações

Para criarmos aplicações ou programas na linguagem Java temos que executar os alguns passos: Edição, Compilação e Interpretação.

A Edição é a criação do programa, que também é chamado de código fonte.

Com a compilação é gerado um código intermediário chamado Bytecode, que é um código independente de plataforma.

Na Interpretação, a máquina virtual Java ou JVM, analisa e executa cada instrução do código Bytecode.

Na linguagem Java a compilação ocorre apenas uma vez e a interpretação ocorre a cada vez que o programa é executado.

Javac myProgram.java

Java myProgram 1

2

3

(11)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Instalação do ambiente de desenvolvimento (JDK)

O Java Development Kid (JDK) é conjunto de ferramentas para compilar, depurar, executar e documentar um programa escrito em java.

As versões para Solaris, Linux e Windows podem ser obtidas no endereço: www.java.sun.com (Página oficial da linguagem).

Procedimentos de Instalação:

Para instalar o JDK, basta executar o programa de instalação e seguir as instruções. Caso o JDK esteja compactado será necessário descompactá-lo primeiro, os formatos mais populares de arquivos compactados são zip (para Windows) e tar (para Unix). Após a instalação é necessário configurar o ambiente:

No windows: Acrescentar no Autoexec.bat: SET JAVA_HOME=C:\JDK1.3

PATH=%JAVA_HOME%\bin

A variável JAVA_HOME deve ter o mesmo nome do diretório onde foi instalado o JDK.

O próximo passo é instalar a documentação, ela geralmente está em arquivo compactado, ao descompacta-la selecionar a unidade de disco, por exemplo: “C:\”, pois, o diretório padrão da documentação (docs) já está definido no arquivo

compactado. Caso você tenha instalado o JDK em outro diretório que não seja o padrão, você deverá especificar no momento da instalação. A documentação está no formato HTML, o arquivo principal o index.html.

Introdução a linguagem Java

Classpath

O Java defini uma variável de ambiente chamada ClassPath. O Java procura pelas classes e pacotes através desta variável. Ela deve estar no Autoxecec.

(12)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Instalação do ambiente de desenvolvimento (JDK)

documentação bin:

Onde estão todos os arquivos necessários para compilar (javac), depurar (jdb) e executar (java).

demo:

Onde estão os arquivos de demonstração e exemplos da linguagem Java. docs:

Onde está a documentação do ambiente da Linguagem Java no formato HTML include:

Onde estão os arquivos escritos em linguagem C, os “header”, que são usados na integração de Java e a Linguagem C.

Include-old:

Onde estão os arquivos escrito em linguagem C, os “header”, entretanto, os arquivos são de versão mais antiga.

jre:

Ambiente de execução do Java necessário para distribuir a aplicação aos clientes. lib:

Onde estão as bibliotecas Java, também chamadas de APIs. A extensão dos arquivos é .jar.

Resumo:

Após a instalação, você deverá ter uma estrutura de diretórios como aparece na figura:

(13)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Instalação do ambiente de desenvolvimento (JDK)

A figura demonstra uma visão do pacote de desenvolvimento JDK e também do

ambiente de execução (JRE). Ambos são necessários para desenvolver uma aplicação. Para os clientes, os usuários finais, precisam apenas do ambiente de execução JRE. Aplicativos como os Applets executam através do Browser (Internet Explorer ou Netscape) geralmente a VM que está embutida nestes navegadores.

Ambiente para os desenvolvedores

Ambiente necessário nos Clientes (usuários finais) Sistema Operacional

(14)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

O Compilador javac

Argumento Descrição

-classpath path Localização das classes. Sobrepõe a variável de ambiente Classpath.

-d dir Determina o caminho onde as classes compiladas são armazenadas

-deprecation Faz a compilação de código em desuso, geralmente de versões anteriores e faz aviso de advertência

-g Gera tabelas de "debugging" que serão usadas pelo pelo deupador JDB.

-nowarm Desabilita as mensagens de advertência

-verbose Exibe informações adicionais sobre a compilação

-O Faz otimização do código

-depend Faz a compilação de todos os arquivos que dependem do arquivo que está sendo compilado. Normalmente somente é compilado o arquivo fonte mais as classes que este invoca.

Sintaxe: javac [opções] NomedoArquivo.java Veja abaixo a lista dos principais argumentos:

Exemplos: > javac Hello.java > javac -d . Hello.java

> javac -deprecation Hello.java

> javac -O -deprecation -verbose Hello.java > javac -O Hello.java

(15)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

O Interpretador java

Argumento Descrição

-classpath path Localização das classes. Sobrepõe a variável de ambiente Classpath. -help Exibe a lista de opções disponíveis

-version Exibe a versão do interpretador

-debug Inicia o interpretador no modo de "debug", geralmente em conjunto com JDB.

-D propriedade= valor

Possibilita redefinição de valores de propriedades. Pode ser usado várias vezes.

-jar Indica o nome do arquivo (com extensão .jar) que contém a classe a ser executada.

-X Exibe a lista de opções não padronizadas do interpretador

-v ou -verbose Exibe informações extras sobre a execução, tais como, mensagens indicando que uma classe está sendo carregada e etc

Lista de Argumentos

Define a lista de argumentos que será enviada a aplicação Sintaxe: java [opções] NomedoArquivo [lista de Argumentos]

Veja abaixo a lista das principais opções:

Alguns Exemplos: > java Hello

> javac -version

> java -D nome=“Meu Nome” Hello > java -verbose Hello

> javac Hello MeuNome

(16)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Java Virtual Machine

A JVM é parte do ambiente de "runtime" Java e é a responsável pela

interpretação dos bytecodes (programa compilado em java), ou seja, a execução do código.

A JVM consiste em conjunto de instruções, conjunto de registradores, a pilha (stack) , garbage-collected heap e a área de memória (armazenamento de métodos).

Funcões da JVM:

Carregar de forma segura todas as classes do programa (protegendo contra ataques premeditados, por exemplo, Cavalos de Tróia)

Verificar se os bytecodes aderem às especificações da JVM e se não violam a integridade e segurança da plataforma.

Interpretar o código.

Em tempo de execução estes bytecodes são carregados, são verificados através do Bytecode Verifier (uma espécie de vigilante) e somente depois de verificados serão executados. J V M Programa Compilado Programa Fonte Javac <programafonte.java> Class Loader

Byte Code Verifier

Runtime

Java <programafonte>

(17)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Coletor de Lixo:

A linguagem Java tem alocação dinâmica de memória em tempo de execução. No C e C++ (e em outras linguagens) o programa desenvolvido é responsável pela alocação e deslocamento da memória. Isto geralmente provoca alguns problemas. Durante o ciclo de execução do programa, o Java verifica se as variáveis de memória estão sendo utilizadas, caso não estejam o Java libera automaticamente esta área para o uso.

Garbage Collection

(18)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Escrevendo um pequeno programa

1 - Abra o editor de programas e crie o seguinte programa.

public class Hello {

public static void main (String arg []) { String s = "world";

System.out.println("Hello " + s); }

} 2 - Salvar como: Hello.java Após terminar:

3 - Compile o programa com o seguinte comando: javac Hello.java

4 - Para executar digite o comando: java Hello

Está pronto o primeiro programa em Java. Fácil!

(19)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Escrevendo um pequeno programa

public class Hello {

public static void main (String arg []) { String s = "world"; System.out.println("Hello " + s); } } modificador Nome da classe Método principal Classe (corresponde ao arquivo que será gravado

do disco)

Classe java método

Lista de argumentos

(o tipo em questão é String)

Tipo de dado

Variável

Roteiro para criar um programa em Java:

1 - Fazer a assinatura da classe, isto equivale a declaração: public class NomedaClasse {

2 - Declarar as variáveis, também chamadas de fields: int i =0 ;

Neste caso não temos nenhum variável de classe ou field 3 - Fazer a assinatura dos métodos:

public static void main (String args[]){ 4 - Escrever o corpo do método:

String s= “world”;

System.out.println(“Hello” + s);

5 -Para encerrar o método, note que o corpo do método está entre chaves “{...}“. }

6 -Para encerrar a classe, segue o mesmo princípio do método. Use chaves “}“. 7 - Salve o arquivo. Observe que o nome do arquivo deve ser o mesmo nome da classe.

Hello.java

8 - Compilar o programa. Sintaxe: javac <NomedaClasse.java>. Javac Hello.java

9 - Agora execute o arquivo. Sintaxe: java <NomedaClasse> Java Hello

Introdução a linguagem Java

Atributo da Classe System Dissecando o código

(20)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Introdução a linguagem Java

Escrevendo um pequeno programa

Não deu certo ???

Veja se este pequeno “Checklist” pode ajudar: 1 - Problemas com compilação: Veja o Classpath; 2 - Se o compilador não consegue encontrar o arquivo:

Verifique se o nome da classe e o nome do arquivo gravado em disco são correspondentes, lembre-se que o java faz distinção entre maiúscula e minúscula;

3 - Erros de sintaxes:

Verifique se os pares chaves estão corretos, ou seja, deve ter um par para classe,

outro para cada método e para cada bloco de declarações. Verifique se não há instruções erradas, como string quando o correto é String (é uma classe), system ao invés de System Verifique se há ponto e virgula “;” no final de cada instrução.

(21)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

(22)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Fundamentos da Linguagem Java

Estrutura da Linguagem

Comentários:

Temos três tipos permitidos de comentários nos programas feitos em Java: • // comentário de uma única linha

• /* comentário de uma ou mais linhas */

• /** comentário de documentação */ (este tipo de comentário é usado pelo utilitário Javadoc, que é responsável por gerar documentação do código Java)

Exemplo Descrição

int x=10; // valor de x Comentário de linha /*

A variável x é integer */

int x;

Exemplo onde o comentário usa mais que uma linha. Todo o texto entre "/*" e "*/", inclusive, são ignorados pelo compilador

/**

x -- um valor inteiro representa a coordenada x

*/ int x;

Todo o texto entre o "/**" e "*/", inclusive, são ignorados pelo compilador mas serão usados pelo utilitário javadoc.

Ponto e vírgula, Blocos e o espaço em branco:

• No Java, os comandos são terminados com o sinal de ponto e vírgula (;) • Um bloco tem início e fim representados pelo uso das chaves { };

• O uso do espaço em branco permite uma melhor visualização dos comandos e em conseqüência facilita a sua manutenção.

Exemplo:

Bloco da Classe

public class TestEstrutura {

public void sayHello(String hello) {

System.out.println("Hello "); }

}

(23)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Fundamentos da Linguagem Java

Estrutura da Linguagem

Identificadores:

Que são identificadores ?

Identificadores são nomes que damos as classes, aos métodos e as variáveis. Regra: Um identificador deverá ser inicializado com uma letra, sublinhado ( _ ), ou sinal de cifrão ($). Em Java existe uma diferença entre letras maiúsculas e

minúsculas. Veja alguns exemplos: Classe é diferente de CLASSE classe é diferente de Classe Exemplos de identificadores:: Alguns identificadores válidos:

- identifier - userName - User_name - _sys_var1 - - $change Exemplo: public class PessoaFisica

Veja alguns inválidos:

- 1nome - \TestClass - /metodoValidar

public class Hello {

public static void main (String arg []) { String s = "world"; System.out.println("Hello " + s); } } Identificador (nome da classe) Método principal Classe Identificador (nome do método)

Veja que primeiro foi definido o tipo de dado, String, e depois o nome do Identificador (nome do variável) Compiler Output

---TestIdentificador.java:3: illegal start of type private 1nome;

(24)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Palavras Reservadas

abstract do implements private throw

boolean double import protected throws

break else instanceof public transient

byte extends int return true

case false interface short try

catch final long static void

char finally native super volatile

class float new switch while

continue for null synchronized

default if package this

Palavras Reservadas

Fundamentos da Linguagem Java

As Palavras Reservadas, quer dizer que nenhuma das palavras da lista acima podem ser usadas como identificadores, pois, todas elas foram reservadas para a Linguagem Java. Veja o exemplo abaixo:

public class TestPalavraReservada {

private int return =1; public void default(String hello)

{

System.out.println("Hello "); }

}

Este programa provocará erros ao ser compilado:

Compiler Output ---TestEstrutura.java:3: <identifier> expected

private int return =1; ^

TestEstrutura.java:6: <identifier> expected public void default(String hello)

Palavra reservada Palavra reservada

(25)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Tipos de Dados

Existem tipos básicos ou primitivos e os tipo de referência. Sintaxe padrão:

<Tipo de dado> <nome da variável>; ou

<Tipo de dado> <nome da variável> = valor da variável;

<Tipo de dado> <nome da variável> = valor da variável, <nome da variável> = valor da variável... ;

Tipo Lógico - boolean: true e false Exemplo boolean fim = true;

Tipo Textual - char e String (String é uma classe)

Um caracter simples usa a representação do tipo char. Java usa o sistema de codificação Unicode (Veja Apêndice B). Neste sistema o tipo char representa um caracter de 16-bit.

O literal do tipo char pode ser representado com o uso do („ „). Exemplos: a = „b‟;

„\n‟ – nova linha „\r‟ – enter

„\u????‟ – especifica um caracter Unicode o qual é representado na forma Hexadecimal.

„\t‟ – tabulação „\\‟ - \

„\” ”‟ - “”

String (String é uma classe)

O tipo String é um tipo referência que é usado para representar uma seqüência de caracteres.

Exemplo:

Strings = “Isto é uma string”, s1;

Inteiros – byte, short, int e long

Possuem somente a parte inteira, ou seja, não suportam casas decimais. Exemplos:

int i1 = 10, int i2 = 11; byte b = 1;

Código de escape

(26)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Ponto Flutuante

São os tipos que têm suporte às casas decimais e maior precisão numérica. Existem dois tipos em Java: o float e o double.

Veja alguns exemplos:

3.14 Um ponto flutuante simples; 6.02E23 Um valor de ponto flutuante largo; 2.718F Um valor de ponto flutuante simples;

123.4E+306D Um valor de ponto flutuante usando o tipo double. Exemplos de declarações: float f = 3.1;1 float div = 2.95F; double d1 = 6.35, d2 = 6.36, d3 = 6.37; double pi = 3.14D Regra:

Os tipos float e double quando aparecem no mesmo programa é necessário identificá-los, para que não comprometa a precisão numérica:

float f = 3.1F; double d = 6.35;

Uma vez não identificado, ao tentar compilar o programa, será emitida uma mensagem de erro.

Tamanho Tipo Faixa

8 bits byte -128 a 128

16 bits short -32.768 a 32.767

32 bits int -2.147.483.648 a 2.147.483.647

64 bits long 9.223.372.036.854.775.808 a

9.223.372.036.854.775.807

Tamanho Tipo Faixa

32 bits IEEE 754-1985 Float 1,4E-45 a 3,4E+38

64 bits IEEE 754-1985 Double 4,9E-324 a 1,7E+308

Fundamentos da Linguagem Java

Tipos de Dados

Precisão 7 dígitos 15 dígitos

(27)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Inicialização de variáveis

Fundamentos da Linguagem Java

Não é permitido o uso de variáveis indefinidas ou não inicializadas. Exemplo:

int i; int a = 2; int c = i + a;

Neste caso ocorre erro, pois, o valor de i está indefinido.

As variáveis definidas dentro do método são chamadas de variáveis automáticas, locais ou temporárias e devem ser inicializadas antes do uso.

(28)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Operadores

Os operadores na linguagem Java, são muito similares ao estilo e funcionalidade de outras linguagens, como por exemplo o C e o C++.

Exemplos: int a = 1; int b = a + 1; int c = b - 1; int d = a * b; short s1 = -1; short s2 = 10; short s1++; int c = 4 % 3; Operadores Lógicos: > Maior que < Menor que

<= Menor que ou igual >= Maior que ou igual

== Igual != Diferente Exemplos: i > 10; x == y; “Test” != “teste” !y x || y Operadores Matemáticos: + Adição - Subtração * Multiplicação / Divisão ++ Incremento -- Decremento % Módulo - Negativo (unário) + Positivo (unário)

! Not (negação) && And || OR

(29)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Outros Operadores:

instanceof Faz a comparação do objeto que está “instanciado” no objeto

Exemplos: instanceof:

Objeto obj = newString(“Teste”);

if (obj instanceof String) System.out.println(“verdadeiro”) new:

Hello hello = new Hello();

Precedências de Operadores: . [ ] ( )

++ - ! ~ instanceof

new (type) expressão - O type é coerção de tipo * / %

+

-<< >> >>> Exemplo:

Com a precedência definida pelo Java int c = 4 / 2 + 4;

Neste caso, primeiro ocorrerá a divisão e após a soma. Com a precedência definida pelo desenvolvedor

int a = 4 / (2 + 4);

Já neste caso, primeiro ocorrerá a soma e depois a divisão.

new Este operador é usado para criar novas “instance” de classes

Fundamentos da Linguagem Java

(30)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Operador Nome Descrição

& AND sobre bits Os bits no resultado são configurados como 1 se os bits correspondentes nos dois operandos forem ambos 1

| OR inclusive sobre bits

Os bits no resultado são configurados como 1 se pelo menos um dos bits correspondentes nos dois operandos for 1

^ OR exclusivo sobre bits

Os bits no resultado são configurados como 1 se somente um dos bits correspondentes nos dois operandos for 1

<< Deslocamento para esquerda

Desloca os bits do primeiro operando para a esquerda pelo número de bits especificado pelo segundo operando; preenche a partir da direita com bits 0.

>> Deslocamento para direita com extensão de sinal

Desloca os bits do primeiro operando para a direita pelo número de bits especificado pelo segundo operando. Se o primeiro

operando for negativo, preenche com 1s a partir da esquerda; caso contrário, preenche com 0s a partir da esquerda.

>>> Deslocamento para direita com extensão de zero

Desloca os bits do primeiro operando para a direita pelo número de bits especificado pelo segundo operando; 0s são inseridos a partir da esquerda

~ Complemento de um Todos os bits são configurados como 1 e todo os bits são configurados como 0.

Java fornece extensa capacidade de manipulação de bits. Todos os dados são representados internamente como uma seqüência de bits. Cada bit pode assumir o valor de 0 ou 1. No geral uma seqüência de bits formam um byte, que é a unidade de armazenamento padrão, para uma variável tipo byte. Os tipos de dados são

armazenados em quantidade maiores que byte. Os operadores sobre os bits são utilizados para manipular os bits de operandos integrais (isto é aqueles do tipo byte, char, short, int e long).

Manipulação de bits e os operadores sobre bits Exemplos de manipulação do bits:

Right Shift (>>) 128 >> 1 <=> 128/21 = 64 256 >> 4 <=> 256/24 = 16 -256 >> 1 <=> -256/24= -16 Left Shift (<<) 128 << 1 <=> 128 * 21 = 256 16 << 2 <=> 16 * 22 = 64

Fundamentos da Linguagem Java

Operadores

(31)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Podemos realizar operações de Pré e Pós incremento e de Pré e Pós decremento. Veja os exemplos:

Pré-incremento:

Pré-incremento = ++a; Exemplo: a = 10, b = 11, c = a + ++b => c = 22 Pós-incremento = a++; Exemplo: a = 10, b = 11, c = a + b++ => c = 21 Pós-decremento:

Pré-decremento = --x; Exemplo: x = 1, y = 1, z = x + --b => z = 1 Pós-decremento = x--; Exemplo: x = 1, y = 1, z = x - b-- => z = 0

Observe que isto ocorre devido a precedência de operadores. Primeiro é feito a atribuição e depois o incremento.

Operador Exemplo Equivalência

++ x++, ++x x = x + 1 -- x--, --x x = x - 1 += x += y x = x + y -= x -= y x = x - y *= x *= y x = x * y /= x /= y x = x / y

&= x &= y x = x & y

|= x |= y x = x | y

^= x ^= y x = x ^ y

%= x %= y x = x % y

Lista de

Exemplos

Fundamentos da Linguagem Java

Operadores

Exemplo:

public class TesteOperador {

public static void main(String args[]) { int x = 1; int y = 1; int z = x - y--; System.out.println("o valor z: " + z); } }

(32)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

public class TestString

{ public static void main(String arg[]) {

String s1 = "Hello";

String s2 = new String("hello");

//equals if (s1.equals(s2)) { System.out.println("São iguais"); } else { System.out.println("São Diferentes"); } //equalsIgnoreCase System.out.println("equalsIgnoreCase"); if (s1.equalsIgnoreCase(s2)) { System.out.println("São iguais"); } else { System.out.println("São Diferentes"); } //Alguns métodos

//indexOf, charAt, substring String frase = "Vovo viu a uva";

System.out.println("Posição: " + frase.indexOf('a')); System.out.println("Nova frase: " + frase.substring(0,4)); System.out.println("A letra é: " + frase.charAt(5)); //concat

String nome = "James ”; String sobrenome = "Gosling "; String nomeCompleto = nome.concat(sobrenome); System.out.println("O nome é: " + nomeCompleto); }

Exemplo:

String

A classe String

Objetos String são sequências de caracteres Unicode Exemplo: String nome = “Meu nome”

Principais métodos: Substituição: replace,

Busca: endWiths, startsWith, indexOf e lastIndexOf Comparações: equals, equalsIgnoreCase e compareTo

Outras: substring, toLowerCase, toUpperCase, trim, charAt e length Concatenação: concat e operador +

Exemplo: O operador + é utilizado para concatenar objetos do tipo String, produzindo uma nova String:

String PrimeiroNome = “Antonio”; String SegundoNome = “Carlos”;

String Nome = PrimeiroNome + SegundoNome

(33)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

public class TestStringBuffer {

public static void main(String arg[]) {

//new instance

StringBuffer b1 = new StringBuffer(); StringBuffer b2, b3;

b2 = new StringBuffer(25); b3 = new StringBuffer("Teste, ");

/*para exibir o conteúdo é necessário usar o método toString */

System.out.println("b1:" + b1.toString() ); System.out.println("b2:" + b2.toString() ); System.out.println("b3:" + b3.toString() ); b3.append("vamos testar novamente"); System.out.println("b3:" + b3.toString() ); b3.insert(0, "A x B "); System.out.println("b3:" + b3.toString() ); b3.delete(0,4); System.out.println("b3:" + b3.toString() ); b2.append("Teste b2");

System.out.println("b2 Capacidade: " + b2.capacity()); System.out.println("b2 Tamanho: " + b2.length()); b2.append(b3);

System.out.println("b2: " + b2.toString() ); System.out.println("b2 tamanho: " + b2.length() ); System.out.println("b2 invertida: " + b2.reverse() ); }

}

Exemplo:

Objetos StringBuffer são uma seqüência mutável de caracteres Unicode

Construtores:

StringBuffer – Cria um buffer vazio

StringBuffer(int capacidade) – Cria um buffer com a capacidade especificada StringBuffer(String initialstring) – Cria um buffer contendo uma string informada. Principais métodos: append, insert, delete, ...

Fundamentos da Linguagem Java

StringBuffer

Várias formas de declaração Usando os métodos para manipular o objeto StringBuffer

(34)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Casting (coerção de tipos)

byte int char short long float

Conversão

Explícita

Conversão

Implícita

Java faz a promoção de tipos para garantir que os valores sejam suportados pelas faixas, contudo, a linguagem Java não suporta conversões arbitrárias de tipos de variáveis.

Devemos explicitar a conversão entre tipos de variáveis. Veja o exemplo abaixo:

public class TestCasting {

public static void main(String args[]) {

byte a = 1; byte b = 3; byte c = a + b;

/* Linha errad, pois a operação adição sofre casting implicita */

//Correção o casting explicito byte c = (byte) (a + b); System.out.println(c); }

}

Casting implícito Por força do operador

matemático o Java promoveu a valor resultante de a + b para um valor inteiro, o que provoca estouro da faixa de byte, e por sua vez provoca um erro

Casting explícito

após a soma de a + b, o valor da soma é convertido para byte

Hierarquia de conversão:

(35)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Objetos

Os objetos não são convertidos, mas sim suas referências. Uma referência de uma classe qualquer pode ser sempre usada para fazer referência a um objeto de uma de suas subclasses. Quando isso acontece, a referência somente poderá ser utilizada para acesso aos membros da classe, ficando os membros da subclasse

“inacessíveis”, embora com seus valores mantidos. A conversão desse tipo (de subclasse para classe) é chamada de implícita.

Veja os exemplos abaixo: import java.awt.*;

public class CastObjeto {

public CastObjeto() {

Window janela = new Frame(); janela.pack();

janela.setTitle("Titulo da Janela"); ...

} }

Conversão ilegal, pois, o objeto janela não “enxerga” os métodos de Frame, embora o método exista, pois o objeto é do tipo Frame Window Frame SuperClasse SubClasse Hierarquia de classes:

Fundamentos da Linguagem Java

(36)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Casting ( Conversão de tipos ) Objetos import java.awt.*;

public class CastObjeto {

public CastObjeto() {

Window janela =new Frame(); Frame janela1 = (Frame) janela; janela1.setTitle("Titulo da Janela"); }

}

Conversão legal, pois, a janela é um objeto do tipo Frame e está sendo atribuído a uma referência do mesmo tipo

A conversão contrária, ou seja, de referência a classe para referência a subclasse, é possível. Entretanto, essa conversão somente será válida se a referência à subclasse passar a apontar para um objeto compatível com ela.

SuperClasse SubClasse Conversão implícita Conversão explícita

As Interfaces seguem a mesma regra das classes.

Fundamentos da Linguagem Java

(37)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Casting Exemplo:

public class TestCasting {

public static void main(String args[]) {

//Exemplo 1 byte a = 1; byte b = 3;

/*Linha errada, pois a operação adição sofre casting implicita */

//byte c = i + i;

//Correção o casting explicito byte c = (byte) (a + b); System.out.println(c); //Exemplo 2 int ia = 1; long lb = 3; /*

Perda de Precisão - causa erro */

//int ic = ia + lb; //linha errada -> Casting //Correção o casting explicito

int ic = ia + (int) lb; System.out.println(ic); }

} O resultante da soma foi promovido para tipo int, quando atribuímos a variável , que é do tipo byte, a operação provoca erro, pois, a faixa de byte é menor que a faixa de int. Uma vez aplicado o casting a operação de soma é realizado e depois é convertida para o type byte.

Casting explícito: (byte) (a + b)

Casting implícito: (a + b)

Fundamentos da Linguagem Java

(38)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Fluxo de Controle

Java como qualquer outra linguagem de programação, suporta instruções e laços para definir o fluxo de controle. Primeiro vamos discutir as instruções condicionais e depois as instruções de laço.

Antes, porém, vamos entender a necessidade dos blocos. Um bloco é o conjunto de instruções delimitadas por chaves “{... }”. Exemplo:

{ int i = 10; System.out.println(“Hello”); i++ } bloco

Os blocos povoam métodos, instruções condicionais, laços e etc, ou seja, podemos encontrá-los sempre dentro de um programa Java.

Construções condicionais: if (<expressão boolean>) <declarações>... else <declarações>... switch (<expressão>) { case <expressao char-int>: <declarações>...

break;

case <expressao char-int>: <declarações>...

default:

<declarações>... }

(<expressão boolean>) ? <expressão if-true> : <expressão if-false>

(39)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução if

Sintaxes: if (expressão boolean) instrução Exemplo: if (x>y) System.out.println(x);

if (expressão boolean) { //Bloco de instruções } Exemplo: if (x>y) { System.out.println(x); y++; } if (expressão boolean) { //Bloco de instruções } else { //Bloco de instruções } Exemplo: if (x>y) { System.out.println(x); y++; } else { System.out.println(y); x++; } if (expressão boolean) { //Bloco de instruções } else if (expressão boolean)

{ //Bloco de instruções } else if (expressão boolean)

{ //Bloco de instruções } else if (expressão boolean)

{ //Bloco de instruções } else

{ //Bloco de instruções }

Mais de uma instrução é usado a estrutura de bloco

Fundamentos da Linguagem Java

(40)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução if Sintaxes: (continuação) Exemplo: if (x>y) { System.out.println(x); y++; } else if (x<y) { System.out.println(y); x++; } else { System.out.println(y); System.out.println(x); }

Notamos que a instrução if pode ser utilizada de várias formas, ela pode ser aplicada de acordo com o contexto.

O exemplo abaixo demonstra a estrutura mais popular da instrução if, ou seja, if (expressão lógica) then {...} else {... }. Veja a lógica e também a implementação do código: saldo > 0 status = Negativo status = Positivo sim não Lógica if (saldo > 0) { status = “Positivo”; } else { status = “Negativo”; } Código

Fundamentos da Linguagem Java

Fluxo de Controle

if (saldo > 0) status = “Positivo”; else status = “Negativo”; OU

(41)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução if

Neste exemplo apresentaremos a instrução if com múltiplas opções. Veja a lógica e também a implementação da do código:

saldo médio > 5000

sim

não

Lógica

public class ifCompostoExemplo {

public static void main(String args[]) { int limitecheque; int saldomedio = 15000; if (saldomedio > 5000) { limitecheque = 1000; }

else if (saldomedio > 3000 &&

saldomedio <= 5000) {

limitecheque = 800; }

else if (saldomedio > 2000 &&

saldomedio <= 3000) {

limitecheque = 600; }

else if (saldomedio > 1000 &&

saldomedio <= 2000) { limitecheque = 400; } else { limitecheque = 0; } System.out.println("Limite cheque especial..." + limitecheque); } } Código saldo médio > 3000 and <=5000 saldo médio > 2000 and <= 3000 Limite cheque =1000 Limite cheque =800 Limite cheque =600 sim sim não Limite cheque =0 não saldo médio > 1000 and <= 2000 sim Limite cheque =400 não

Fundamentos da Linguagem Java

(42)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução switch

Switch é uma alternativa para seleção múltipla de escolha, entretanto, ela tem algumas diferenças da estrutura if - if else. Como, por exemplo, o tipo de dado válido na expressão é somente do tipo char e os tipos inteiros (int, byte, short, long).

Sintaxes:

switch (expressao char-integer) { case expressao1: // instruções case expressao2: // instruções case expressao3: // instruções default: // instruções } Exemplo:

public class switchSimplesExemplo {

public static void main(String args[]) {

char opcao = 'a'; String selecao = ""; switch (opcao) { case 'a': selecao += „a‟; case 'b': selecao += 'b'; case 'c': selecao += 'c'; default: selecao += "d"; } System.out.println(selecao); } } Será impresso “abcd”

Após a impressão do valor, achamos mais uma diferença em relação ao if - if

else, a instrução Switch executa todas as opções após uma opção válida. Por

exemplo, se valor inicial da variável opção for igual „c‟, teremos o seguinte resultado para a variável selecao = „cd‟.

A instrução switch

Fundamentos da Linguagem Java

(43)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Fundamentos da Linguagm Java

A instrução switch.

Para que a instrução switch execute apenas uma opção, desprezando as demais é necessário incluirmos a instrução break. Bem como o próprio nome da instrução sugere este sai da instrução switch.

Sintaxes:

switch (expressao char-integer) { case expressao1: // instruções break; case expressao2: // instruções break case expressao3: // instruções break default: // instruções }

public class switchBreakExemplo {

public static void main(String args[]) { char opcao = 'b'; String selecao = ""; switch (opcao) { case 'a': selecao += 'a'; break; case 'b': selecao += 'b'; break; case 'c': selecao += 'c'; break; default: selecao += "d"; } System.out.println(selecao); } } Será impresso “b”

A instrução switch com a instrução break

Note que tanto a instrução default quanto a break são opcionais, depende da lógica a utilizada.

Fundamentos da Linguagem Java

(44)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução switch.

Neste exemplo apresentaremos a instrução switch e a instrução break com múltiplas opções. Veja a lógica e também a implementação do código:

case 10

sim

não

Lógica

public class switchCompostoExemplo {

public static void main(String args[]) { String avaliacao =""; int nota = 8; switch (nota) { case 10: avaliacao = "Excelente"; break; case 9: avaliacao = "Ótimo"; break; case 8: avaliacao = "Bom"; break; case 7: avaliacao = "Satisfatório"; break; default: avaliacao = "Regular"; } System.out.println("Avaliação: " + avaliacao); } } Código case 9 case 8 avaliacao = “Excelente” avaliacao = “Ótimo” avaliacao = “Ótimo” sim sim não avaliacao = “Regular” não

case 7 sim avaliacao =

“Ótimo” não

Fundamentos da Linguagem Java

(45)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução switch.

Neste exemplo apresentaremos a instrução switch sem o break com múltiplas opções. Veja a diferença:

case S

sim

não

Lógica

public class switchSemBreakExemplo {

public static void main(String args[]) {

char opcao = 'B'; String selecao = "";

switch (opcao) {

case 'S': //Super luxo

selecao += " Ar condicionado +"; case 'L': //Luxo

selecao += " Direção hidráulica +"; case 'B': //Básico

selecao += " Trio Elétrico +"; default: selecao += " Alarme"; } System.out.println(selecao); } } Código Ar condicionado sim sim não Alarme não

case L Direção hidráulica

case S Trio Elétrico

Fundamentos da Linguagem Java

(46)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Operador Ternário

E por fim o operador ternário, Java, oferece uma maneira simples de avaliar uma expressão lógica e executar uma das duas expressões baseadas no resultado. O operador condicional ternário (?:). É muito parecido com a instrução iif()

presente em algumas linguagens, Visual Basic, por exemplo. Sintaxe:

(<expressão boolean>) ? <expressão true> : <expressão false> ou

variável = (<expressão boolean>) ? <expressão true> : <expressão false>

saldo > 0 status = Negativo status = Positivo sim não Lógica { ... Status = (saldo > 0)? ”Positivo”:“Negativo”; ... } Código Neste exemplo apresentaremos uma expressão condicional simples. Veja a lógica e implementação do código. Faça uma comparação com a instrução if-else.

Lembre-se que podemos aninhar operadores e condições, pois, todos suportam a recursividade.

Fundamentos da Linguagem Java

(47)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Laços

O que são laços?

Laços são repetições de uma ou mais instruções até que uma condição seja satisfeita. A linguagem Java tem dois tipos de laços: os finitos e os infinitos. Para os laços finitos a execução está atrelada a satisfação de uma condição, por exemplo: Laços: while (<boolean-expression>) <statements>... do <statements>... while (<boolean-expression>);

for (<init-stmts>...; <boolean-expression>; <exprs>...) <statements>...

Fundamentos da Linguagem Java

Fluxo de Controle

Já os infinitos estes executarão sempre, independente de condição.

Se o valor da variável a não for igual 10.

então

incrementar um na variável senão

imprimir a variável valor

Isto quer dizer que a instrução de incremento vai repetir dez vezes.

true a++

Em Java, temos três instruções que suportam laços ou “loops”. São elas: while, do-while e for.

a = 10 a++

sim não

(48)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução while.

Ela executa uma instrução ou bloco de instruções, enquanto uma determinada condição não for satisfeita. Ela faz a validação antes de executar as instruções.

Sintaxe:

while (expressao boolean) instrução java

Exemplo:

public class whileExemplo2 {

public static void main(String args[]) { int d = 10; while (d >= 0) System.out.println("Contagem Regressiva " + d--); } } Este código será executado 10

vezes, ou seja até a condição ser satisfeita

Sintaxe:

while (expressao boolean) {

//Bloco }

Exemplo:

public class whileExemplo {

public static void main(String args[]) { int d = 1; while (d<= 10) { System.out.println("7 x " + d + " = " + 7*d); d++; } } }

Este código produzirá a Tabuada do 7 Neste exemplo o laço é finito, ou seja, irá

executar até a condição estar satisfeita A instrução while

Fundamentos da Linguagem Java

(49)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução while.

Os exemplos abaixo demonstram como tornar um laço infinito usando a instrução while, provavelmente isto não deverá acontecer, todavia, pode ser um pequeno erro de lógica, inversão de valores ou uma condição que nunca será satisfeita.

Exemplo 1: ... int d = 1; while (d > 0) { System.out.println("7 x " + d + " = " + 7*d); d++; } ... Exemplo 2: ... while (true) { System.out.println(d++); } ....

Fundamentos da Linguagem Java

(50)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução while.

O exemplo abaixo exibe a lógica e a implementação do código de um laço finito usando a instrução while.

Fundamentos da Linguagem Java

Fluxo de Controle

valor < 20 Valor++ sim não Lógica { ... while(valor <20) valor++ System.out.println(valor); ... } Código Imprime valor Sai do Laço

(51)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução do-while.

Ela tem uma pequena diferença da instrução while, enquanto a instrução while verifica a expressão boolean (lógica) antes e somente depois executa a instrução ou o bloco de instruções, a instrução do-while executa primeiro e depois verifica a condição. Sintaxe: do instrução java while(expressão boolean) Exemplo:

public class dowhileExemplo {

public static void main(String args[]) { long d=10; do System.out.println(d++); while (d <=20); } } Este código será executado 10

vezes, ou seja até que a condição seja satisfeita

Sintaxe: do { //Bloco } while(expressão boolean) Exemplo:

public class dowhileExemplo2 {

public static void main(String args[]) { int d = 100; do { System.out.println("Faixa " + Math.random()*d); d++; } while (d <=110); } } A instrução do-while primeiro executa as instruções que estão dentro de bloco

e depois verifica a expressão boolean

Fundamentos da Linguagem Java

(52)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução do-while.

O exemplo abaixo exibe a lógica e implementação do código de laço finito usando a declaração do-while. Valor < 20 Valor++ sim não Lógica ... do { valor++; System.out.println(valor); } while(valor <20) ... Código Imprime valor

Agora faça uma comparação entre a instrução while e do-while:

Fundamentos da Linguagem Java

Fluxo de Controle

valor < 20 Valor++ sim não Lógica { ... while(valor <20) valor++; System.out.println(valor); ... } Código Imprime valor Sai do Laço

(53)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução for

A instrução for é a mais popular entre as instruções de laço. A instrução for como as demais instruções de laços repetem uma instrução ou bloco de instruções até que determinada condição seja satisfeita.

Sintaxes:

for(valor-inicial1, valor-inicial2 ; condição; valor de incremento/decremento) instrução java;

for(valor-inicial; condição; valor de incremento/decremento) {

//Bloco de instruções }

for(;condição; valor de incremento); for(l;; valor de incremento);

for(); onde:

valor-inicial - valor de inicio (esta variável que pode ser definida dentro do for ou fora).

Exemplo: int x;

for(x=1;x<10;x++) instrução Java ou

For(int x=1;x<10;x++) instrução Java condição: é expressão lógica, Exemplo: For(x=1;x<10;x++) instrução Java

valor de incremento: valor que incrementaremos ou decrementaremos For(x=1;x<10;x--) instrução Java

Fundamentos da Linguagem Java

(54)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

A instrução for

Veja abaixo alguns exemplos da implementação da instrução for: public class forExemplo

{

public static void main(String args[]) {

int d;

for(d=180; d <=190; d++) System.out.println("Faixa 180-190 : " + Math.random()*d); for(d=200; d <=210; d++) { System.out.println("Faixa 200-210: " + Math.random()*d); } int i; for(d=220,i=10; d <=230; d++, i++) { System.out.println("Faixa 220-230 " + Math.random()*d); System.out.println("Valor de i " + i); }

for(d=230,i=20; d <=240 && i < 35; d++, i++)

{ System.out.println("Faixa 230-240 " + Math.random()*d); System.out.println("Valor de i " + i); } for(i=40; i >= 30; i--) { System.out.println("Valor de i 40-30 " + i); } } } Sem bloco Com bloco Trabalhando com valores Trabalhando com valores e condição composta Trabalhando com ordem decresente

Fundamentos da Linguagem Java

(55)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

public class forExemplo1 {

public static void main(String args[]) {

int d=170;

for(;d <=190; d++) System.out.println("Faixa 180-190 : " + Math.random()*d); for(d=200; ;d++) { System.out.println("Faixa 200-210: " + Math.random()*d); if (d>210) break; } for(d=210; d < 220;) { System.out.println("Faixa 210-220: " + Math.random()*d); d++; } int i=10; for(d=220; d <=230; d++) { System.out.println("Faixa 220-230 " + Math.random()*d); for(; i <=20; i++) System.out.println("Valor de i " + i); } for(i=40; i >= 30; i-=2) { System.out.println("Valor de i 40-30 " + i); } } } A instrução for

Veja abaixo mais exemplos, desta vez, com algumas variações possíveis da instrução for: Sem declarar valor-inicial Sem condição. A condição está associado a instrução if Sem valor de incremento ou decremento. For aninhados Decrementado de dois em dois

Note que a instrução break pode ser usada para sair de instrução de laço (while, do-while e for).

Fundamentos da Linguagem Java

(56)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Lógica .. for(i=10; i >= 0; i-=2) { System.out.println("Valor de i 10-0 " + i); } ... Código

Agora faça uma comparação entre a instrução do while, do-while e for. Quem será mais rápido ?

A instrução for

O exemplo abaixo demonstra a lógica e implementação do código para a instrução for: i >=0 i=i-2 sim não Imprime i i=10

Fundamentos da Linguagem Java

Fluxo de Controle

.. for(i=10; i >= 0; i-=2) System.out.println("Valor de i 10-0 " + i); ... OU

(57)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Label (rótulo)

Em Java temos uma estrutura de bloco chamada Label. Esta defini um bloco de instruções que podem ser executadas, devido sua lógica, que é similar ao comando

goto da Linguagem Basic. Esta estrutura não é muito usual.

Sintaxe: <nome-da-label>: instrução java ou <nome-da-label>: { //Bloco de instruçõe } Exemplo:

public class labelExemplo {

public static void main(String args[]) { int d=1; label_one: for(d=1; d <=10; d++) System.out.println("Faixa de 0..10: " +d); label_two: { for(; d <=20; d++) System.out.println("Faixa de 10..20: " +d); } } } Veja a label e a instrução

for que parte da label_one

Fundamentos da Linguagem Java

(58)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

public class labelExemplo1 {

public static void main(String args[]) {

label_a:

for(int d=1; d <=10; d++) {

System.out.println("Faixa A de 0..10: " +d); for(int i=10; i<20;i++)

{

System.out.println("Resto: " + d%i); if ( (d%i)>0) continue label_a; }

} } } Label (rótulo)

Outro exemplo de Label, desta vez usando a instrução continue

A instrução continue

Às vezes precisamos pular para aquela ou esta parte do programa sem passar pelo resto das instruções.

Fundamentos da Linguagem Java

(59)

Linguagem de Programação

JAVA

JB100 Java Básico

JB100 Java Básico

Exemplo 1 Exemplo 2

String nomes[ ]; nomes = new String[3] names[0] = "Duke"; names[1] = "Jane"; names[2] = "Tarzan";

String nomes[ ] = {"Duke", "Jane","Tarzan"};

Exemplo 3 Exemplo 4

MinhasDatas dates[ ]; dates = new MinhasDatas[2];

dates[0] = new MinhasDatas(22, 7, 2000); dates[1] = new MinhasDatas(01, 4, 1999);

MinhasDatas dates[ ] = { new MinhasDatas[2], new MinhasDatas(22, 7, 2000) , new MinhasDatas(01, 4, 1999); }

Arrays

Os arrays são objetos. Devem possuir um tamanho definido no momento de sua instanciação, por exemplo:

int[ ] arrayInt = new int[5], ou int[ ] arrayInt

arrayInt = new int[5]

Os elementos de array são acessados pelo índice, que sempre deverá começar em 0. Não são permitidos índices inválidos, que resultam em exceção.

ArrayOutOfBoundsException.

Os arrays podem receber variáveis do tipo primitivo (int, double, char, boolean, short e etc) ou do tipo referência, objetos, (String, Double, Integer e etc).

Quando um Arrays é redimensionado todos os elementos são perdidos. Exemplo:

float ArrayReDim[ ] = new float[5]; ArrayReDim[ ] = new float[15]; Exemplo: Inicialização de Arrays

Arrays Multi-Dimensionais: Declaração correta:

double duplaDim [ ] [ ] = new double [4] [ ]; duplaDim [0] = new double [1];

duplaDim [1] = new double [2]; duplaDim [3] = new double [3]; Declaração Incorreta:

double duplaDim [ ] [ ] = new double [ ] [4 ];

Referências

Documentos relacionados

Pela Decreto do Parlamento Nacional n.º 45/III que VETO os investimentos privados vão poder beneficiar de isenção em 100% do imposto sobre vendas; isenção em 100% do imposto sobre os

 O local e horário de saída dos passeios são estipulados pela Fellini Turismo e esta não se responsabiliza por qualquer despesa ou transtorno causado por atraso dos passageiros;

Estas estruturas são consideradas apenas ao nível Nacional e distrital, segundo a Diretiva Operacional Nacional nº1 de Janeiro de 2010, ao nível Municipal as atribuições do CCO

A Vivace Process Instruments é composta por uma equipe multidisciplinar de profissionais com mais de 25 anos no mercado de automação e instrumentação, com ampla experiência nas

declaram que discutiram, revisaram e concordam com as opiniões expressas no Relatório de Auditoria dos Auditores Independentes relativas ao exercício findo em 31 de dezembro de

tidos para o Coefi ciente de Efi cácia Protéica para o leite de búfala, vaca e caseína como padrão, verifi caram que a caseína e o leite de vaca, não apresentaram diferença

A PROPED divulga o Resultado Final do Edital 05/2019 que Seleciona Orientadores para o Programa Institucional de Bolsas de Iniciação Científica

materiais cimentados Apresentação/Chat – AVA (Síncrono + Gravação) 2h 09/mar Módulo de resiliência de misturas asfálticas e. materiais cimentados Apresentação/Chat – AVA