Buscar

Programação Orientada a Objetos

Prévia do material em texto

Programação Orientada à Objetos 
INF1024 
 
Profa. D.Sc. Dilza Szwarcman 
Unidade 2 - Introdução à Linguagem Java 
 Histórico 
 Tecnologia Java 
 Principais características 
 Máquina Virtual Java (JVM) 
 Exemplo de Programa em Java 
 Fundamentos da programação Java 
2 
Java - Histórico 
 Criado em 1991 por James Gosling da Sun Microsystems. 
 Inicialmente chamada OAK (Carvalho), em homenagem à 
uma árvore de janela do Gosling, seu nome foi mudado para 
Java devido a existência de uma linguagem com o nome OAK 
 A motivação original do Java era a necessidade de uma 
linguagem independente de plataforma que podia ser 
utilizada em vários produtos eletrônicos, tais como 
torradeiras e refrigeradores. 
 Ao mesmo tempo, a World Wide Web e a Internet foram 
ganhando popularidade. Gosling achava que a linguagem Java 
poderia ser usada para programação da Internet. 
3 
Tecnologia Java 
 O que é a tecnologia Java? 
1. Uma linguagem de programação 
 Pode ser utilizada para criar todos os tipos de 
aplicações 
 De programas de Inteligência Artificial para Robôs até 
programas para aparelhos celulares 
2. Um ambiente de desenvolvimento 
 Fornece um grande conjunto de ferramentas, tais como: 
 Compilador (executável javac.exe) 
 Interpretador (executável java.exe) 
 Gerador de documentos (executável javadoc.exe) 
 Empacotamento de classes e arquivos (executável jar.exe) 
4 
Tecnologia Java 
 O que é a tecnologia Java? 
3. Um ambiente para a execução dos aplicativos 
 Aplicações Java são tipicamente programas de propósito 
geral que executam sobre uma máquina onde o Java 
Runtime Environment (JRE)é instalado. 
4. Um ambiente de distribuição 
 Há dois ambientes de distribuição principais: 
 JRE, fornecido através do Java 2 Software Development Kit 
(SDK), contém um conjunto completo de arquivos de classes 
para todos pacotes de tecnologia Java. 
 O navegador web, ou seja, o browser. Os navegadores web 
atuais fornecem interpretação à tecnologia e ambiente Java em 
tempo de execução. 
5 
Tecnologia Java 
6 
Principais características do Java 
 Propósito geral 
 Orientada a objetos e fortemente tipada 
 Portabilidade 
◦ independência de plataforma de hardware e software 
 Gerência automática de memória (garbage 
collection) 
 Robusta 
◦ sem ponteiros e alocação direta de memória (tudo é 
ponteiro!) 
◦ tratamento de exceções 
 Concorrente 
7 
Principais características do Java 
 Facilidades para desenvolvimento de aplicações em redes 
com protocolo TCP/IP (sockets, datagrama) 
 Vários fornecedores de ambientes de desenvolvimento 
 A linguagem é derivada das linguagens C e C++, sendo assim 
familiar 
 Desempenho 
◦ A linguagem Java suporta vários recursos de alto desempenho, 
como multithreading, compilação just-in-time e utilização de 
código nativo. 
◦ O bytecode tem desempenho inferior ao de um código nativo do 
processador (ou linguagem de máquina), mas muitas vezes 
superior em comparação com linguagens Script, como o 
HTML, o JavaScript ou o VBScript, ou até mesmo o próprio 
bytecode do Visual Basic. 
8 
Máquina Virtual Java (JVM) 
 Máquina imaginária que é implementada através 
de um software emulador em uma máquina real. 
 Interpretação e execução do bytecode (.class) 
◦ linguagem de máquina especial que pode ser 
entendida pela JVM; 
◦ é independente de qualquer hardware de 
computador particular. 
 Qualquer computador com JVM pode 
executar um programa Java compilado, não 
importando em que tipo de computador o 
programa foi compilado. 
 Garbage Collection 
9 
Máquina Virtual Java (JVM) 
 Fases de um programa Java 
 
Editor Prog.java Compilador Prog.class Interpretador 
10 
Máquina Virtual Java (JVM) 
 Segurança de código 
◦ Class Loader 
 Responsável por carregar todas as classes necessárias 
ao programa Java 
 Separação dos namespaces das classes do sistema de 
arquivos local e aquelas que são importadas pela rede 
 Layout de memória do executável é determinado 
◦ Verificador de Bytecode 
 Testar o formato dos fragmentos de código 
 Pesquisar em fragmentos de código por códigos ilegais 
11 
Exemplo de Programa em Java 
public class Alo { 
 /** 
 * Meu primeiro programa Java 
 */ 
 public static void main(String args[]) { 
 // Impressão na tela 
 System.out.println("Alo mundo!"); 
 } 
} 
 
12 
 
Exemplo de Programa em Java 
public class Alo { 
 /** 
 * Meu primeiro programa Java 
 */ 
 public static void main(String arg[]s) { 
 // Impressão na tela 
 System.out.println("Alo mundo!"); 
 } 
} 
 
 
13 
• Indica o nome da classe; neste caso é Alo. 
• Em Java, todo e qualquer código deverá ser 
escrito dentro da declaração de uma 
classe. Faz-se isso usando a palavra-chave 
class. 
• A classe usa um identificador de acesso 
public, indicando que a classe é acessível 
para outras classes de diferentes 
pacotes (pacotes são coleções de classes). 
 
Exemplo de Programa em Java 
public class Alo { 
 /** 
 * Meu primeiro programa Java 
 */ 
 public static void main(String arg[]s) { 
 // Impressão na tela 
 System.out.println("Alo mundo!"); 
 } 
} 
 
 
14 
Indica o início de um bloco de 
instruções. 
Um comentário pode ser indicado pelos 
delimitadores “/*” e “*/”. Qualquer coisa 
entre estes delimitadores é ignorado pelo 
compilador e é tratado como comentário 
 
Exemplo de Programa em Java 
public class Alo { 
 /** 
 * Meu primeiro programa Java 
 */ 
 public static void main(String arg[]s) { 
 // Impressão na tela 
 System.out.println("Alo mundo!"); 
 } 
} 
 
 
15 
Indica o nome de um método no programa que é 
o método principal main. O método main é 
o ponto de partida para qualquer programa Java. 
 
Exemplo de Programa em Java 
public class Alo { 
 /** 
 * Meu primeiro programa Java 
 */ 
 public static void main(String arg[]s) { 
 // Impressão na tela 
 System.out.println("Alo mundo!"); 
 } 
} 
 
 
16 
static é outro especificador que indica que o 
método deve ser compartilhado por todos os 
objetos que são criados a partir dessa classe. 
 
Exemplo de Programa em Java 
public class Alo { 
 /** 
 * Meu primeiro programa Java 
 */ 
 public static void main(String arg[]s) { 
 // Impressão na tela 
 System.out.println("Alo mundo!"); 
 } 
} 
 
 
17 
void é o valor de retorno da função quando esta 
não retorna nada. 
 
Exemplo de Programa em Java 
public class Alo { 
 /** 
 * Meu primeiro programa Java 
 */ 
 public static void main(String arg[]s) { 
 // Impressão na tela 
 System.out.println("Alo mundo!"); 
 } 
} 
 
 
18 
String args[]: é o argumento de main (ou de 
todo o programa); é um vetor de strings quando 
são passados argumentos através da chamada. 
 
Exemplo de Programa em Java 
public class Alo { 
 /** 
 * Meu primeiro programa Java 
 */ 
 public static void main(String arg[]s) { 
 // Impressão na tela 
 System.out.println("Alo mundo!"); 
 } 
} 
 
 
19 
Escreve na saída padrão do computador o texto 
situado entre aspas duplas. 
Chamada do método println para o atributo 
out da classe System. 
 
Exemplo de Programa em Java 
public class Alo { 
 /** 
 * Meu primeiro programa Java 
 */ 
 public staticvoid main(String arg[]s) { 
 // Impressão na tela 
 System.out.println("Alo mundo!"); 
 } 
} 
 
 
20 
Fim do método main. 
Fim da classe Alo. 
Exemplo de Programa em Java 
 Configurando ambiente de execução 
◦ Depois de instalar o JDK, deve-se configurar a variável 
PATH do Windows. 
◦ Clique Iniciar e escolha Painel de Controle 
◦ Clique em Sistema 
◦ Clique em “Configurações avançadas do sistema” 
◦ Na janela de “Propriedades do Sistema”, clique em 
“Variáveis de Ambiente …” 
◦ Na caixa “Variáveis do sistema” selecione a variável Path e 
clique no botão “Editar”. 
◦ Inclua o diretório java na variável Path: 
 path=%path%;<diretorio do java> 
◦ Reinicie o sistema. 
21 
Exemplo de Programa em Java 
 Configurando ambiente de execução 
◦ Configurando a variável de ambiente PATH na 
janela DOS: 
> set path=%path%;<diretorio do java> 
 
Verifique se a variável path incluiu corretamente o 
diretório 
> path 
22 
Exemplo de Programa em Java 
 Para criar e rodar o programa 
◦ Passo 1: Inicie o editor de textos 
 Iniciar → Programas → Acessórios → Bloco de Notas 
◦ Passo 2: Abra uma janela do console 
 Iniciar → Executar... → cmd 
◦ Passo 3: Escreva o código fonte do seu programa 
no Editor de Textos 
◦ Passo 4: Salve seu programa 
 Arquivo: Alo.java 
 Pasta: MeusProgramasJava 
23 
Exemplo de Programa em Java 
 Para criar e rodar o programa 
◦ Passo 5: Compilando seu programa 
 Vá para a janela do console 
 Vá para a pasta MeusProgramasJava, onde você salvou o 
programa 
 Para compilar um programa java, digite o seguinte 
comando: 
 javac [nome_do_arquivo] 
 Obs: o caminho do compilador deve estar na variável Path 
 Neste caso, digite: 
 javac Alo.java 
 Se o programa não contiver erros, o compilador cria um 
arquivo no disco chamado nome_do_arquivo.class ou, 
neste caso, Alo.class, contendo os bytecodes 
 
 24 
Exemplo de Programa em Java 
 Para criar e rodar o programa 
◦ Passo 6: Execute o programa 
 Para executar o programa, digite o seguinte 
comando no console: 
 java [nome do arquivo sem a extensão] 
 Obs: o caminho do interpretador deve estar na variável Path 
 No caso do exemplo, digite: 
 java Alo 
 Você verá na tela: Alo mundo! 
25 
Fundamentos da Programação Java 
 Comentários 
 Instruções e blocos 
 Identificadores 
 Palavras Chave 
 Tipos de Dados Primitivos 
 Variáveis 
 
26 
Fundamentos da Programação Java - 
Comentários 
 Comentário de linha 
// comentário estilo C++ ou comentário de linha 
 Comentário de bloco 
/* 
* Este é um exemplo de comentário 
* estilo C ou um comentário de bloco 
* 
*/ 
27 
Fundamentos da Programação Java - 
Instruções e blocos 
 Uma instrução é composta de uma ou mais linhas 
terminadas por ponto-e-vírgula. 
System.out.println("Hello world"); 
 Um bloco é formado por uma ou mais instruções 
agrupadas entre chaves indicando que formam uma 
só unidade. 
 Blocos podem ser organizados em estruturas 
aninhadas indefinidamente. 
 Qualquer quantidade de espaços em branco é 
permitida. 
 
public static void main(String[] args) { 
System.out.print(“Alo "); 
System.out.println(“mundo"); 
} 
28 
Fundamentos da Programação Java - 
Identificadores 
 Identificadores são representações de 
nomes de variáveis, métodos, classes, etc. 
 Sequências de caracteres Unicode, que 
devem obedecer às seguintes regras: 
◦ ser compostas por letras, por dígitos e pelos 
símbolos _ e $, não podendo conter espaços; 
◦ não podem ser iniciadas por um dígito (0 a 9); 
◦ as letras podem estar tanto em maiúsculo quanto 
em minúsculo; 
◦ uma palavra-chave da linguagem Java não pode ser 
um identificador. 
 
29 
Fundamentos da Programação Java - 
Identificadores 
 Nomes de classes devem ter a 
primeira letra em maiúsculo. 
 Nomes de métodos ou variáveis devem 
começar com letra minúscula. 
 Java diferencia as letras minúsculas da 
maiúsculas. 
◦ Nome é diferente de nome 
 
30 
Fundamentos da Programação Java - 
Palavras chave 
abstract continue for new switch 
assert default if package synchronized 
boolean do goto private this 
break double implements protected throw 
byte else import public throws 
case enum instanceof return transient 
catch extends int short try 
char final interface static void 
class finally long strictfp volatile 
const float native super while 
Obs: const e goto são reservadas embora não sejam usadas 
31 
Fundamentos da Programação Java – 
Tipos de Dados Primitivos 
 Inteiros 
◦ byte, short, int, long 
◦ qualquer operação efetuada entre eles terá como resultado um 
tipo inteiro. Por exemplo: 
 byte b1 = 1; 
 byte b2 = 2; 
 int resultado = b1 + b2; 
 Ponto Flutuante 
◦ float, double 
 Textual 
◦ char 
 Lógico 
◦ boolean 
 
32 
Fundamentos da Programação Java – 
Tipos de Dados Primitivos 
 Inteiros 
◦ byte 
 8-bits; valor com sinal (complemento a 2) 
 -128 a 127 (inclusive) 
 pode ser útil para uso eficiente de memória 
◦ short 
 16-bits; valor com sinal (complemento a 2) 
 -32,768 a 32,767 (inclusive). 
 também pode ser útil para uso eficiente de 
memória 
 
 
33 
Fundamentos da Programação Java – 
Tipos de Dados Primitivos 
 Inteiros 
◦ int 
 32-bits; valor com sinal (complemento a 2) 
 -2,147,483,648 a 2,147,483,647 (inclusive) 
 normalmente é a escolha default para valores inteiros 
◦ long 
 64-bits; valor com sinal (complemento a 2) 
 -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 
(inclusive). 
 deve ser utilizado quando um range maior é necessário 
 
34 
Fundamentos da Programação Java – 
Tipos de Dados Primitivos 
 Ponto Flutuante 
◦ float 
 32-bits 
 pode ser útil para uso econômico de memória 
 não deve ser usado para valores precisos, como valores 
monetários (utilizar BigDecimal) 
◦ double 
 64-bits 
 normalmente é a escolha default para valores decimais 
 não deve ser usado para valores precisos, como valores 
monetários (utilizar BigDecimal) 
 
35 
Fundamentos da Programação Java – 
Tipos de Dados Primitivos 
 Textual 
◦ char 
 caractere 16-bit Unicode 
 valor mínimo de '\u0000' (ou 0) e valor máximo de 
'\uffff' (ou 65,535 inclusive) 
 um inteiro especial; o que difere o tipo char dos 
demais inteiros é que a sua saída sempre será mostrada 
como um valor ASCII. Por exemplo: 
char c = 97; 
byte b = 'a'; 
System.out.println("char = " + c + " - byte = " + b); 
Resultará: 
char = a - byte = 97 
 
36 
Fundamentos da Programação Java – 
Tipos de Dados Primitivos 
 Lógico 
◦ boolean 
 valores possíveis: true ou false 
 normalmente utilizado para flags ou condições 
 
37 
Fundamentos da Programação Java - 
Variáveis 
 Variável é um espaço na memória usado 
para armazenar o estado de um objeto. 
 Uma variável deve ter um nome e um tipo. 
 O tipo da variável indica o tipo de dado que 
ela pode conter. 
 O nome das variáveis deve seguir as mesmas 
regras de nomenclatura que os 
identificadores. 
38 
Fundamentos da Programação Java - 
Variáveis 
 Declarando e inicializando variáveis 
<tipo do dado> <nome> [= valor inicial]; 
obs: os valores colocados entre < > são obrigatórios, enquanto que os valores 
contidos entre [ ] são opcionais. 
 Exemplo de programa que declara e inicializa algumas variáveis: 
 
public class VariableSamples { 
public static voidmain( String[] args ){ 
// declara uma variável com nome result e tipo boolean 
boolean result; 
// declara uma variável com nome option e tipo char 
char option; 
// atribui o símbolo C para a variável 
option = 'C'; 
// declara uma variável com nome grade e tipo double 
// e a inicializa com o valor 0.0 
double grade = 0.0; 
} 
} 
39 
Fundamentos da Programação Java - 
Variáveis 
 Declarando e inicializando variáveis 
◦ É sempre preferível que se inicialize uma 
variável assim que ela for declarada. 
◦ Use nomes com significado para suas variáveis. 
Se usar uma variável a nota de um aluno, declare-
a com o nome 'nota‘ e não simplesmente com 
uma letra aleatória 'x'. 
◦ É preferível declarar uma variável por linha, do 
que várias na mesma linha. Por exemplo: 
int variavel1; 
int variavel2; 
E não: 
int variavel1, variavel2; 
40 
Fundamentos da Programação Java - 
Variáveis 
 Valores default 
◦ Variáveis membros de um objeto (atributos), se 
não forem inicializadas explicitamente, terão 
valores default atribuídos pelo compilador 
◦ Variáveis locais (definidas dentro de métodos) 
devem ser inicializadas antes do uso 
Tipo de dado Valor default 
 byte 0 
 short 0 
 int 0 
 long 0L 
 float 0.0f 
 double 0.0d 
 char '\u0000' 
 boolean false 
 String (ou qq objeto) null 
41 
Fundamentos da Programação Java - 
Variáveis 
 Exibindo o valor de uma variável 
◦ Faz-se uso dos comandos System.out.println() ou 
System.out.print() 
 Exemplo: 
public class OutputVariable { 
public static void main( String[] args ){ 
int value = 10; 
char x; 
x = 'A'; 
System.out.println(value); 
System.out.println("The value of x = " + x ); 
} 
} 
A saída deste programa será a seguinte: 
10 
The value of x = A 
42 
Fundamentos da Programação Java - 
Variáveis 
 Dois tipos de variáveis suportados por Java 
◦ Variáveis de Valor 
 Variáveis de “valor”, ou primitivas, armazenam dados no 
espaço de memória que a variável ocupa. 
◦ Variáveis de Referência 
 Armazenam o endereço de memória onde o dado está 
armazenado. 
 Ao declarar uma variável de certa classe, se declara uma 
variável de referência a um objeto daquela classe. 
◦ Exemplo 
int num = 10; 
String nome = “Hello”; 
 
43 
Fundamentos da Programação Java - 
Operadores 
 Operadores aritméticos 
44 
Nota: Quando um número de tipo inteiro e um outro de número fracionário 
são usados numa única operação, o resultado será dado pela variável de 
maior tipo, no caso, valor de número fracionário. O número inteiro é 
implicitamente convertido para o número fracionário antes da operação ter 
início. 
Fundamentos da Programação Java - 
Operadores 
 Operadores aritméticos 
public class ArithmeticDemo { 
public static void main(String[] args) { 
int i = 37; 
int j = 42; 
double x = 27.475; 
double y = 7.22; 
System.out.println(“Misturando operações..."); 
System.out.println(" j + y = " + (j + y)); 
System.out.println(" i * x = " + (i * x)); 
} 
} 
Saída: 
Misturando operações... 
j + y = 49.22 
i * x = 1016.58 
45 
Fundamentos da Programação Java - 
Operadores 
 Operadores de incremento e decremento 
 
46 
Exemplo1: 
int y; 
int x = 10; 
y = ++x ; 
 
=> variável x é incrementada antes 
de ser atribuída a y; no final da 
execução, x=11 e y= 11. 
 
Exemplo2: 
int y; 
int x =10; 
y = x++; 
 
=> variável x é incrementada 
após de ser atribuída a y; no 
final da execução, x=11 e y= 10. 
Fundamentos da Programação Java - 
Operadores 
 Operadores relacionais 
◦ Usados para comparar dois valores e determinar 
o relacionamento entre eles. 
◦ A saída desta avaliação será fornecida com um 
valor lógico: true ou false. 
47 
Fundamentos da Programação Java - 
Operadores 
 Operadores relacionais 
public class RelationalDemo { 
public static void main(String[] args) { 
int i = 37; 
int j = 42; 
int k = 42; 
System.out.println(“Valores..."); 
System.out.println(" i = " + i); 
System.out.println(" j = " + j); 
System.out.println(" k = " + k); 
// exemplos de uso de operadores 
System.out.println(“Maior que..."); 
System.out.println(" i > j = " + (i > j)); 
System.out.println(“Menor que..."); 
System.out.println(" i < j = " + (i < j)); 
System.out.println(“Menor ou igual a..."); 
System.out.println(" i <= j = " + (i <= j)); 
} 
} 
48 
Fundamentos da Programação Java - 
Operadores 
 Operadores lógicos 
◦ Avaliam um ou mais operandos lógicos que 
geram um único valor final true ou false. 
◦ && (e lógico) e & (e binário) 
 Operador && suporta uma avaliação de curto-
circuito(ou avaliação parcial), enquanto que o & não. 
 Dado o exemplo: 
exp1 && exp2 
O operador && irá avaliar exp1, e retornará false , imediatamente, 
se a exp1 for falsa. Nesse caso, exp2 nunca será avaliada, pois o 
valor de toda a expressão será falsa mesmo. 
Já o operador & sempre avalia as duas partes da expressão, 
mesmo que a primeira tenha o valor false. 
49 
Fundamentos da Programação Java - 
Operadores 
 Operadores lógicos 
◦ || ( ou lógico) e | ( ou binário) 
 Operador || suporta uma avaliação de curto-
circuito (ou avaliação parcial), enquanto que o | 
não. 
 Dado o exemplo: 
exp1 || exp2 
O operador || irá avaliar exp1, e retornará true, imediatamente, 
se a exp1 for verdadeira. Nesse caso, exp2 nunca será 
avaliada, pois o valor de toda a expressão será verdadeiro 
mesmo. 
Já o operador | sempre avalia as duas partes da expressão, 
mesmo que a primeira tenha o valor true. 
50 
Fundamentos da Programação Java - 
Operadores 
 Operadores lógicos 
◦ ^ (ou exclusivo binário) 
 
 
 Ambos operandos são sempre avaliados. 
◦ ! (negação) 
51 
Fundamentos da Programação Java - 
Operadores 
 Operadores lógicos 
public class TestOR { 
public static void main( String[] args ){ 
int i = 0; 
int j = 10; 
boolean test = false; 
// demonstração do operador || 
test = (i < 10) || (j++ > 9); 
System.out.println(i); 
System.out.println(j); 
System.out.println(test); 
// demonstração do operador | 
test = (i < 10) | (j++ > 9); 
System.out.println(i); 
System.out.println(j); 
System.out.println(test); 
} 
} 
52 
Fundamentos da Programação Java - 
Operadores 
 Precedência 
◦ Para evitar confusão na avaliação de expressões 
matemáticas, deixe-as o mais simples possível e 
use parênteses. 
53 
Fundamentos da Programação Java - 
Estruturas de Controle 
 Permitem mudança na ordem da 
execução dos programas 
 Tipos: 
◦ Decisão 
◦ Repetição 
54 
Fundamentos da Programação Java - 
Estruturas de Controle de Decisão 
 Permitem executar blocos específicos de 
instruções 
 Tipos: 
◦ Declarações if 
◦ Declarações if-else 
◦ Declarações if-else-if 
◦ Declarações switch 
55 
Fundamentos da Programação Java - 
Estruturas de Controle de Decisão 
 Declaração if 
if (condição1) { 
instrução_em_caso_verdadeiro; 
} 
 Exemplo 
int grade = 68; 
if (grade > 60) { 
System.out.println(“Parabéns!"); 
System.out.println(“Você passou!"); 
} 
56 
Fundamentos da Programação Java - 
Estruturas de Controle de Decisão 
 Declaração if-else 
if (condição1) { 
instruções_caso_TRUE; 
} 
else { 
instruções_caso_FALSE; 
} 
 Exemplo 
int grade = 68; 
if( grade > 60 ) { 
System.out.println(“Parabéns!"); 
} 
else { 
System.out.println(“Infelizmentevocê não passou"); 
} 
 
57 
Fundamentos da Programação Java - 
Estruturas de Controle de Decisão 
 Declaração if-else-if 
 
if (condição1) { 
instruções_condição1_TRUE; 
} 
else if (condição 2) { 
instruções_condição2_TRUE; 
} 
else { 
instruções_3; 
} 
58 
Fundamentos da Programação Java - 
Estruturas de Controle de Decisão 
 Declaração if-else-if 
◦ Exemplo 
public class Grade { 
public static void main( String[] args ) { 
double grade = 92.0; 
if (grade >= 90) { 
System.out.println("Excelente!"); 
} 
else if((grade < 90) && (grade >= 80)) { 
System.out.println(“Muito Bom!"); 
} 
else if((grade < 80) && (grade >= 60)) { 
System.out.println(“Estude mais!"); 
} 
else { 
System.out.println(" Infelizmente você não passou."); 
} 
} 
} 59 
Fundamentos da Programação Java - 
Estruturas de Controle de Decisão 
 Declaração switch 
 
switch (variável_inteira) { 
case valor1: 
instruções_bloco1; 
break; 
case valor2: 
instruções_bloco2; 
break; 
case valor3: 
instruções_bloco3; 
break; 
default: 
instruções_blocoDefault; 
} 
60 
Fundamentos da Programação Java - 
Estruturas de Controle de Decisão 
 Declaração switch 
◦ Exemplo 
public class Grade { 
public static void main( String[] args ) { 
int grade = 92; 
switch(grade/10){ 
case 9: 
case 10: 
System.out.println("Excelente!"); 
break; 
case 8: 
System.out.println(“Muito bom!" ); 
break; 
case 7: 
System.out.println(“OK!" ); 
break; 
case 6: 
System.out.println(“Estude mais!" ); 
break; 
default: 
System.out.println(" Infelizmente você não passou."); 
} 
} 
} 
61 
Fundamentos da Programação Java - 
Estruturas de Controle de Repetição 
 Permitem executar específicos trechos de 
código diversas vezes 
 Tipos: 
◦ while 
◦ do-while 
◦ for 
62 
Fundamentos da Programação Java - 
Estruturas de Controle de Repetição 
 Declaração while 
while (expressão_lógica) { 
instrução1; 
instrução2; 
... 
} 
 Exemplo 
int i = 4; 
while (i > 0){ 
System.out.print(i); 
i--; 
} 
63 
Fundamentos da Programação Java - 
Estruturas de Controle de Repetição 
 Declaração do-while 
do { 
instrução1; 
instrução2; 
... 
} while (expressão_lógica); 
 Exemplo 
int x = 0; 
do { 
System.out.println(x); 
x++; 
}while (x<10); 
64 
Fundamentos da Programação Java - 
Estruturas de Controle de Repetição 
 Declaração for 
for (declaração_inicial; expressão_lógica; salto) { 
instrução1; 
instrução2; 
... 
} 
 Onde: 
 declaração_inicial 
 inicializa uma variável para o laço 
 expressão_lógica 
 compara a variável do laço com um valor limite 
 salto 
 atualiza a variável do laço 
65 
Fundamentos da Programação Java - 
Estruturas de Controle de Repetição 
 Declaração for 
 Exemplo: 
for (int i = 0; i < 10; i++) { 
System.out.println(i); 
} 
 As instruções mostradas acima são equivalentes ao 
seguinte laço while: 
int i = 0; 
while (i < 10) { 
System.out.print(i); 
i++; 
} 
66 
Fundamentos da Programação Java - 
Declarações de Interrupção 
 Permitem redirecionar o fluxo de 
controle de um programa 
 Java oferece três declarações de 
interrupção: 
◦ break 
◦ continue 
◦ return 
67 
Fundamentos da Programação Java - 
Declarações de Interrupção 
 Declaração break 
◦ Utilizado para terminar declarações for, while, ou do-
while 
◦ unlabeled 
 encerra laço e fluxo de controle passa para a instrução seguinte 
 Exemplo 
String names[] = {"Beah", "Lance", "Belle“,"Nico", "Yza", "Gem", "Ethan"}; 
String searchName = "Yza"; 
boolean foundName = false; 
for (int i=0; i < names.length; i++) { 
if (names[i].equals(searchName)) { 
foundName = true; 
break; 
} 
} 
if …. 
 
68 
Fundamentos da Programação Java - 
Declarações de Interrupção 
 Declaração break (cont.) 
◦ labeled 
 Termina laço exterior que é identificado pelo label na declaração 
break. Fluxo de controle segue para a instrução seguinte àquela 
do label 
 Exemplo 
int[][] numbers = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; 
int searchNum = 5; 
searchLabel: for (int i=0; i<numbers.length; i++) { 
for (int j=0; j<numbers[i].length; j++) { 
if (searchNum == numbers[i][j]) { 
foundNum = true; 
break searchLabel; 
} 
} // final do laço j 
} // final do laço i 
if (foundNum) { 
System.out.println(searchNum + " found!"); 
} 
69 
Fundamentos da Programação Java - 
Declarações de Interrupção 
 Declaração continue 
◦ Usada para saltar a repetição atual de declarações 
for, while ou do-while. 
◦ unlabeled 
 salta as instruções restantes de um laço e avalia novamente a 
expressão lógica que o controla 
 Exemplo 
String names[] = {"Beah", "Bianca", "Lance", "Beah"}; 
int count = 0; 
for (int i=0; i < names.length; i++) { 
if (!names[i].equals("Beah")) { 
continue; // retorna para a próxima condição 
} 
count++; 
} 
System.out.println(count + " Beahs in the list"); 
70 
Fundamentos da Programação Java - 
Declarações de Interrupção 
 Declaração continue 
◦ labeled 
 interrompe a repetição atual de um laço e salta para a 
repetição exterior marcada com o label indicado 
 Exemplo 
outerLoop: for (int i=0; i<5; i++) { 
for (int j=0; j<5; j++) { 
System.out.println("Inside for(j) loop"); // mensagem1 
if (j == 2) 
continue outerLoop; 
} 
System.out.println("Inside for(i) loop"); // mensagem2 
} 
71 
Fundamentos da Programação Java - 
Declarações de Interrupção 
 Declaração return 
◦ Abandona o método atual e o fluxo de controle 
retorna para o local de chamada do método 
◦ Escreva o valor a ser retornado (ou uma expressão 
que calcule este valor) após a palavra chave return 
return ++count; 
return "Hello"; 
◦ O tipo de dado do valor devolvido deve ser igual ao 
tipo do valor de retorno declarado no método 
◦ Quando o retorno de um método é declarado como 
void, use a forma de retorno que não devolve valor 
return; 
72 
Fundamentos da Programação Java – 
Arrays 
 Um array armazena múltiplos itens de 
um mesmo tipo de dado em um bloco 
contínuo de memória, dividindo-o em 
certa quantidade de posições. 
73 
Fundamentos da Programação Java – 
Arrays 
 Declarando 
int ages[]; 
 Construindo 
ages = new int[100]; 
 Declarando e construindo 
int ages[] = new int[100]; 
 Uma vez que tenha sido inicializado, o tamanho de um array não 
pode ser modificado, pois é armazenado em um bloco contínuo 
de memória. 
 Exemplos: 
// criando um array de valores lógicos em uma variável results. 
boolean results[] = { true, false, true, false }; 
// criando array de 4 variáveis double 
double grades[] = {100, 90, 80, 75}; 
74 
Fundamentos da Programação Java – 
Arrays 
 Acesso 
◦ Para acessar um elemento do array, utiliza-se um 
número inteiro chamado de índice. 
◦ Um índice é atribuído para cada membro de um 
array, permitindo acessar os valores 
individualmente. 
◦ Os elementos dentro do array possuem índice 
de 0 a tamanhoDoArray-1. 
◦ Exemplo 
// atribuir 10 ao primeiro elemento do array 
ages[0] = 10; 
// imprimir o último elemento do array 
System.out.print(ages[99]); 
75 
Fundamentos da Programação Java – 
Arrays 
 Uma vez declarado e construído, um 
array de tipos primitivos terá o valor 
de cada membro inicializado 
automaticamente. 
 
 
 
 
76 
Fundamentos da Programação Java – 
Arrays 
 Arrays de tipos de dados por referência, como as 
Strings,terá cada posição inicializada com o valor 
null. 
 Deve-se preencher os elementos do array de forma 
explícita antes de utilizá-los. 
 A manipulação de objetos nulos pode causar uma 
exceção do tipo NullPointerException. 
public class ArraySample { 
public static void main(String[] args){ 
String [] nulls = new String[2]; 
System.out.print(nulls[0]); // Linha correta, mostra null 
System.out.print(nulls[1].trim()); // Causa erro 
} 
} 
 
77 
Fundamentos da Programação Java – 
Arrays 
 Tamanho de array 
◦ O atributo length de um array retorna seu 
tamanho, ou seja, a quantidade de elementos. 
◦ O código abaixo utiliza um for para mostrar 
todos os elementos de um array: 
public class ArraySample { 
public static void main (String[] args) { 
int[] ages = new int[100]; 
for (int i = 0; i < ages.length; i++) { 
System.out.print(ages[i]); 
} 
} 
} 
 
 
78 
Fundamentos da Programação Java – 
Arrays 
 Arrays Multidimensionais 
◦ São implementados como arrays de arrays. 
◦ São declarados ao atribuir um novo conjunto de 
colchetes depois do nome do array. 
◦ Exemplos: 
// array inteiro de 512 x 128 elementos 
int [][] twoD = new int[512][128]; 
// array de caracteres de 8 x 16 x 24 
char [][][] threeD = new char[8][16][24]; 
// array de String de 4 linhas x 2 colunas 
String [][] dogs = {{"terry", "brown"}, {"Kristin", "white"}, {"toby", 
"gray"}, {"fido", "black"}}; 
79 
Fundamentos da Programação Java – 
Arrays 
 Arrays Multidimensionais 
◦ Como exibir todos os elementos de um array 
multidimensional? 
80 
Fundamentos da Programação Java – 
Arrays 
 Arrays Multidimensionais 
◦ Como exibir todos os elementos de um array 
multidimensional? 
for (int i = 0; i < dogs.length; i++) { 
for (int j = 0; j < dogs[i].length; j++) { 
System.out.print(dogs[i][j] + " "); 
} 
} 
81 
Fundamentos da Programação Java – 
Arrays 
 Argumentos de linha de comando 
 
/** 
* Um programa que imprime a string da linha de comando, se 
* houver. 
*/ 
public class CommandLineSample { 
public static void main(String[] args){ 
// Declaração for para exibir os argumentos 
// da linha de comando 
for (int counter=0; counter < args.length; counter++) { 
System.out.println(args[counter]); 
} 
} 
} 
82 
Fundamentos da Programação Java – 
Exercícios 
1. Dias da semana 
Criar um array de Strings inicializado com os 
nomes dos sete dias da semana. 
Usando uma declaração while, imprima todo o 
conteúdo do array. Faça o mesmo para as 
declarações do-while e for. 
 
 
83 
Fundamentos da Programação Java – 
Exercícios 
2. Entradas de agenda telefônica: 
Dado o seguinte array multidimensional, que contém as entradas 
de uma agenda telefônica, 
String entry = {{"Florence", "735-1234", "Manila"}, {"Joyce", "983-
3333", "Quezon City"}, {"Becca", "456-3322", "Manila"}}; 
mostre-as conforme o formato abaixo: 
Name : Florence 
Tel. # : 735-1234 
Address: Manila 
Name : Joyce 
Tel. # : 983-3333 
Address: Quezon City 
Name : Becca 
Tel. # : 456-3322 
Address: Manila 
84 
Fundamentos da Programação Java – 
Exercícios 
3. Operações Aritméticas: 
Obtenha dois números, passados pelo usuário 
usando argumentos de linha de comando, e 
mostre o resultado da soma, subtração, 
multiplicação e divisão destes números. Por 
exemplo, se o usuário digitar: 
java ArithmeticOperation 20 4 
o programa deverá mostrar na tela: 
soma = 24 
subtração = 16 
multiplicação = 80 
divisão = 5 
85 
Fundamentos da Programação Java – 
Exercícios 
4. Faça 2 versões de programa para 
imprimir os primeiros números da série 
de Fibonacci (até passar de 100), sem e 
com recursão. 
A série de Fibonacci é a seguinte: 0, 1, 1, 2, 3, 5, 8, 13, 
21, etc... 
Para calculá-la, o primeiro e segundo elementos valem 
1, daí por diante, o n-ésimo elemento vale o (n-1)-
ésimo elemento somado ao (n-2)-ésimo elemento 
(ex: 8 = 5 + 3). 
 
86 
Fundamentos da Programação Java – 
Exercícios 
5. Faça um programa para validar um 
horário composto de horas, minutos e 
segundos fornecido como argumentos 
na linha de comando. 
 
87

Continue navegando