Linguagem de Programação
JAVA
JB100 Java Básico
JB100 Java Básico
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)
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 programaFundamentos 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)
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;
Linguagem de Programação
JAVA
JB100 Java Básico
JB100 Java Básico
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).
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:
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++
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
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
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.
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:
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
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
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
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>
Introdução a linguagem Java
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
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!
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
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.
Linguagem de Programação
JAVA
JB100 Java Básico
JB100 Java Básico
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 "); }
}
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;
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
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
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
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.
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
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
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
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); } }
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
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 StringBufferLinguagem 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:
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
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
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
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>
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
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”; OULinguagem 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
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
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
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
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
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
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
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
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
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çoLinguagem 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
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çoLinguagem 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
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
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
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ódigoAgora 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); ... OULinguagem 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
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
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 ];