Baixe o app para aproveitar ainda mais
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
Compartilhar