Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução Fundamental à Linguagem Java Jorge Fernandes Junho de 2004 Variáveis na Linguagem Java • Na linguagem Java, todas as variáveis são tipadas, com tipos fortes • Categorias de tipo – Tipos primitivos • Variáveis de tipos primitivos contém um valor primitivo – Tipos referência • Variáveis de tipos referência contém uma referência a um objeto (instância) em memória • Tipos referência são definidos por uma classe ou interface – Tipos Array • Tipo referência, onde o objeto referenciado é formato por um vetor de variáveis, de tipo primitivo ou referência. Tipos de Dados Primitivos • boolean – Tipo de dados cujos valores podem ser true ou false. • void – Tipo de dados vazio. Serve para declarar métodos que não retornam valores. • char – Caracteres Unicode, com 16 bits, inteiros sem sinal • byte, short, int, long – Inteiros com sinal, armazenados em formato binário na notação de complemento a dois. Tem tamanho de 8, 16, 32 e 64 bits, respectivamente. • float, double – Numerais em formato de ponto flutuante, padrão IEEE 754-1985, ocupando 32 e 64 bits, respectivamente. Literais • null – Representa um valor referência nulo. Qualquer variável não primitiva (que mantém uma referência a objetos) pode conter o valor null. • true e false – Literais que representam os valores possíveis que uma variável boolean pode assumir. Desvio e Controle de Fluxo if (Decisão Básica) • IfStatement ::= "if" "(" Expression ")" Statement-a ( "else" Statement-b )? • Computa o valor da <Expression>. • Caso o valor da <Expression> seja verdadeiro executa o <Statement>. Caso <expressão-booleana> seja falsa executa o <Statement-b>. Exercício • Crie um programa Java, chamado Teste, que recebe duas informações através do teclado (use a classe IO para fazer entrada e saída de dados): – String (nome), int (idade) • O programa cria um objeto do tipo Pessoa, • E apresenta a seguinte entrada de dados – Imprime o nome da pessoa, e adicionalmente imprime – O string “Criança-Adolescente”, se a idade for menor que 18 – O string “Jovem” se a idade da pessoa for maior ou igual a 18 e menor que 25 anos – O string “Adulto-Idoso” se a idade for maior ou igual a 25 anos class Teste { public static void main(String[] args) { String nome; int idade; nome = IO.readString(); idade = IO.readInt(); IO.print(nome); if ( idade < 18 ) IO.print(“Criança-Adolescente”); if (idade >= 18 && idade < 25) IO.print(“Jovem”); if (idade >= 25) IO.print(“Adulto-Idoso”); } } if ( idade < 18 ) IO.print(“Criança-Adolescente”) else if (idade >= 25) IO.print(“Adulto-Idoso”) else IO.print(“Jovem”); Laço • for, do, while, break, continue – Comandos para controle de laço, no estilo C/C++. Modelando um TroteUniversitário class TroteUniversitario { public static void main(String[] args) { // 10 veteranos se agrupam fora da sala int qtdVeteranos = 10; // ainda não invadiram a sala boolean salaInvadida = false; // laço do pré-trote while (qtdVeteranos > 0) { IO.println("Professor ministra aula..."); IO.println("Quantos veteranos la fora?"); qtdVeteranos = IO.readInt(); IO.println("Sala invadida (S/N)?"); String invasao = IO.readStr(); IO.println("["+invasao+"]"); if (invasao.equals("S")) { salaInvadida = true; } // Se a sala foi invadida o professor sai if (salaInvadida) break; IO.println("Terminou o horário de aula (S/N)?"); String terminou = IO.readStr(); IO.println("["+terminou+"]"); if (terminou.equals("S")) { IO.println("Professor faz a chamada"); IO.println("Professor sai da sala"); // os veteranos invadem a sala salaInvadida = true; // sai do laço break; } } IO.println("Professor conclui a aula"); if (salaInvadida) { IO.println("Rabo de cavalo[Bandeiras] = color-pink"); } else { IO.println("Bandeira vai embora, com o rabo de cavalo intacto"); } return; } } SWITCH • switch (<expressão>) { case <constante-0> : <bloco-de-código-0> case <constante-1> : <bloco-de-código-1> ... case <constante-n> : <bloco-de-código-n> default : <bloco-de-código-default> } – Computa o valor da <expressão> e verifica se este é igual ao valor de uma das constantes <constante-?> case. Caso positivo desvia a execução do programa para o <bloco-de-código-?> correspondente. Caso negativo desvia a execução do programa para o <bloco-de-código-default>, que é opcional. Para efeito de comparação os valores da <expressão> e <constante-?> são convertidos para int. Retorno de método • return <expressão> – Encerra a execução do método corrente e retorna o valor da <expressão> (opcional) ao chamador. Pseudo-Variáveis this Contém uma referência ao próprio objeto sobre o qual está sendo executado o método de instância. Não pode ser usado em métodos static Exceções: Tratando • Executa o <bloco-de-código> e tenta capturar qualquer exceção (objeto) porventura levantada durante a execução do <bloco-de- código>. • Caso haja compatibilidade de tipo entre a classe do objeto exceção levantado e a classe de pelo menos uma das variáveis declaradas na cláusula <declaração-de-variável>, executa o primeiro <bloco-tratador- exceção> cuja variável correspondente seja compatível com a classe de exceção levantada será executado • O <bloco-finalizador> é opcional e será SEMPRE executado após a execução do <bloco-de-código> e/ou do <bloco-tratador-exceção>. Exceções: Declarando e Levantando • <assinatura-de-método> throws <lista-de-classes-de-exceções> – Indica que o método declarado cuja assinatura é <assinatura-de- método> pode eventualmente levantar um objeto (exceção) de qualquer das classes de exceção presentes na <lista-de-classes-de- exceções>. • throw <objeto> – Levanta para o "runtime" o objeto <objeto> como uma exceção Exceções: Tratando • try {<bloco-de-código>} catch (<declaração-de-variável-0>) { <bloco-tratador-exceção-0> } catch (<declaração-de-variável-1>) { <bloco-tratador-exceção-1> } ... catch (<declaração-de-variável-n>) { <bloco-tratador-exceção-n> } finally {<bloco-finalizador>} Pacotes • package <nome-de-pacote> – Declara o pacote ao qual pertence um arquivo de programas Java. • import <qualificador-de-pacote> – Inclui no espaço de nomes de compilação do programa os pacotes ou classes denotadas pelo <qualificador-de-pacote>
Compartilhar