SlideShare a Scribd company logo
1 of 20
Aula 4 Atribuições especiais Matrizes em Java Tipos de ciclos (ciclo for) Classes pacote
Da aula anterior… Introdução ao Java Variáveis Instrução de selecção if-else Ciclos while e do-while Métodos de classe (publicstatic …) 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 2
Operadores de atribuição especiais 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3
Matrizes Java (arrays) Sequências de itens com comprimento fixado durante construção Declaração tipoDosItens[]nome; Declaração, construção e inicialização tipoDosItens[]nome = newtipoDosItens[comprimento]; Exemplos final double[] grades = newdouble[numberOfStudents]; final int[] sizes = newint[numberOfClasses]; final intnumberOfStudents = grades.length; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 4 construção
Matrizes Java (arrays) Itens identificados por índices Primeiro item: índice 0 (zero) Último item: índice matriz.length- 1 Exemplos intfirstSize = sizes[0]; intlastSize = sizes[sizes.length - 1]; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 5
Matrizes Java 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 6
Construção de matrizes 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 7
int i = 0; while (i != 10) { …     i++; } Ciclos: partes 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 8 inicialização guarda passo acção progresso
Ciclos: for Ciclo for Alternativa a while Tipicamente usado com iteradores Útil para manipular de matrizes 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 9 inti = 0; while (i != 10) { … i++; } for (inti = 0; i != 10; i++) { … }
Ciclos: while vs. for 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 10 doublesum = 0.0; int i = 0; while (i != grades.length) { sum += grades[i]; i++; } doublesum = 0.0; for (int i = 0; i != grades.length; i++) { sum += grades[i]; }
Ciclos: lado-a-lado… 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 11 while for do-while inicialização inicialização inicialização [¬guarda] [¬guarda] [guarda] [guarda] passo acçãoprogresso passo [guarda] [¬guarda]
Blocos: se instrução única, dispensáveis 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 12
Operador de selecção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 13 instrução operação
Exemplo de método função /**  * Returns maximum of the items in array.  *  * @paramarrayarray whose maximum will be returned.  * @returns              the maximum of the items in array.  * @prearray must have at least one item  */ public static intmaximumOf(final int[] array) { int maximum = array[0];     for (inti = 1; i != array.length; i++)         if(maximum < array[i])             maximum = array[i];     return maximum; } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 14 Assume-se que array não é null. A ver mais tarde…
Classe pacote Todos métodos static , i.e., métodos de classe (a ver mais tarde) Construtor privado (a ver mais tarde) Por exemplo, classe pacote java.lang.Math Métodos Math.abs(int/double) – Calcula valor absoluto. Math.sqrt(double) – Calcula raiz quadrada. Math.pow(double, double) – Calcula potência. Math.sin(double) – Calcula seno. Math.cos(double) – Calcula co-seno. … Constantes Math.PI – Valor de π. Math.E – Valor de e. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 15
Classe pacote: exemplo public class IntArrayUtilities {     private IntArrayUtilities() {         throw new RuntimeException("Attempt to instantiate " +                                     "package class");     }     public staticintmaximumOf(final int[] array) {         …     }     public staticint minimum(final int[] array) {         …     }     public staticint[] sortedCopyOf(final int[] array) {         …     }     public staticbooleanthereAreDuplicatesIn(final int[] array) {         …     }     … } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 16
Classe pacote: utilização import static java.lang.System.out; import static IntArrayUtilities.*; public class Tester {     …     public static void main(final String[] arguments) {         final int[] myArray = {9, 2, 6, 5, 8, 2};         out.println("Maximum of array is " + maximum(array));         out.println("Minimum of array is " + minimum(array));         final int[] mySortedArray = sortedCopyOf(testArray); out.print("mySortedArray is: ");         for (inti = 0; i != mySortedArray.length; i++)             out.println("" + mySortedArray[i]);         if (thereAreDuplicatesIn(myArray))             out.println("myArray has duplicate items.");     } } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 17
A reter Java Matrizes Ciclo for Simplificações sintácticas Classes pacote 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 18
A ler... Capítulos 1 a 4 do livro: Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-6 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 19
Sumário Atribuições especiais Matrizes em Java Tipos de ciclos (ciclo for) Classes pacote 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 20

More Related Content

What's hot

4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...Manuel Menezes de Sequeira
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Andre Nascimento
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...Manuel Menezes de Sequeira
 
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...Manuel Menezes de Sequeira
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Leonardo Melo Santos
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)Armando Daniel
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasManuel Menezes de Sequeira
 
Curso de OO com C# - Parte 03 - Plataforma .NET
Curso de OO com C# - Parte 03 - Plataforma .NETCurso de OO com C# - Parte 03 - Plataforma .NET
Curso de OO com C# - Parte 03 - Plataforma .NETLeonardo Melo Santos
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
 

What's hot (20)

4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
Curso de OO com C# - Parte 03 - Plataforma .NET
Curso de OO com C# - Parte 03 - Plataforma .NETCurso de OO com C# - Parte 03 - Plataforma .NET
Curso de OO com C# - Parte 03 - Plataforma .NET
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Java5
Java5Java5
Java5
 
Java4
Java4Java4
Java4
 
Java2
Java2Java2
Java2
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 

Viewers also liked

20131030 dstnハッカソン - ワークショップ
20131030 dstnハッカソン - ワークショップ20131030 dstnハッカソン - ワークショップ
20131030 dstnハッカソン - ワークショップdstn
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemasManuel Menezes de Sequeira
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaManuel Menezes de Sequeira
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 

Viewers also liked (8)

Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4
 
20131030 dstnハッカソン - ワークショップ
20131030 dstnハッカソン - ワークショップ20131030 dstnハッカソン - ワークショップ
20131030 dstnハッカソン - ワークショップ
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
 
Semana 2: Funções e listas, variáveis
Semana  2: Funções e listas, variáveisSemana  2: Funções e listas, variáveis
Semana 2: Funções e listas, variáveis
 
Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7
 
Algoritmos Aula 07
Algoritmos Aula 07Algoritmos Aula 07
Algoritmos Aula 07
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 

Similar to Java Arrays For Loops Classes

Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, ScannerManuel Menezes de Sequeira
 
[Curso Java Basico - Exceptions] Aula 48: multiplos catch
[Curso Java Basico - Exceptions] Aula 48: multiplos catch[Curso Java Basico - Exceptions] Aula 48: multiplos catch
[Curso Java Basico - Exceptions] Aula 48: multiplos catchLoiane Groner
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaArthur Emanuel
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4guestd521d1f
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.pptEmerson Cardoso
 
Refatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaRefatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaEduardo Bregaida
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteresManuel Menezes de Sequeira
 
Desenvolvendo para WEB com JAVA
Desenvolvendo para WEB com JAVADesenvolvendo para WEB com JAVA
Desenvolvendo para WEB com JAVAWillian Magalhães
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javJulio Viegas
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnitelliando dias
 

Similar to Java Arrays For Loops Classes (20)

Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
Aula5
Aula5Aula5
Aula5
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
[Curso Java Basico - Exceptions] Aula 48: multiplos catch
[Curso Java Basico - Exceptions] Aula 48: multiplos catch[Curso Java Basico - Exceptions] Aula 48: multiplos catch
[Curso Java Basico - Exceptions] Aula 48: multiplos catch
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
 
Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4
 
A linguagem java
A linguagem javaA linguagem java
A linguagem java
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
 
ESTRUTURA DE DADOS (JAVA) AULA 09
ESTRUTURA DE DADOS (JAVA) AULA 09ESTRUTURA DE DADOS (JAVA) AULA 09
ESTRUTURA DE DADOS (JAVA) AULA 09
 
Refatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completaRefatoração de código com Capitão Nascimento versão completa
Refatoração de código com Capitão Nascimento versão completa
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 
Aula4
Aula4Aula4
Aula4
 
Java8
Java8Java8
Java8
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Desenvolvendo para WEB com JAVA
Desenvolvendo para WEB com JAVADesenvolvendo para WEB com JAVA
Desenvolvendo para WEB com JAVA
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnit
 
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em JavaPOO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
 

More from Manuel Menezes de Sequeira

2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...Manuel Menezes de Sequeira
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...Manuel Menezes de Sequeira
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...Manuel Menezes de Sequeira
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Manuel Menezes de Sequeira
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectosManuel Menezes de Sequeira
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoManuel Menezes de Sequeira
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorManuel Menezes de Sequeira
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoManuel Menezes de Sequeira
 

More from Manuel Menezes de Sequeira (10)

2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectos
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validação
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónico
 
Eng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectosEng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectos
 

Java Arrays For Loops Classes

  • 1. Aula 4 Atribuições especiais Matrizes em Java Tipos de ciclos (ciclo for) Classes pacote
  • 2. Da aula anterior… Introdução ao Java Variáveis Instrução de selecção if-else Ciclos while e do-while Métodos de classe (publicstatic …) 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 2
  • 3. Operadores de atribuição especiais 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3
  • 4. Matrizes Java (arrays) Sequências de itens com comprimento fixado durante construção Declaração tipoDosItens[]nome; Declaração, construção e inicialização tipoDosItens[]nome = newtipoDosItens[comprimento]; Exemplos final double[] grades = newdouble[numberOfStudents]; final int[] sizes = newint[numberOfClasses]; final intnumberOfStudents = grades.length; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 4 construção
  • 5. Matrizes Java (arrays) Itens identificados por índices Primeiro item: índice 0 (zero) Último item: índice matriz.length- 1 Exemplos intfirstSize = sizes[0]; intlastSize = sizes[sizes.length - 1]; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 5
  • 6. Matrizes Java 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 6
  • 7. Construção de matrizes 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 7
  • 8. int i = 0; while (i != 10) { … i++; } Ciclos: partes 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 8 inicialização guarda passo acção progresso
  • 9. Ciclos: for Ciclo for Alternativa a while Tipicamente usado com iteradores Útil para manipular de matrizes 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 9 inti = 0; while (i != 10) { … i++; } for (inti = 0; i != 10; i++) { … }
  • 10. Ciclos: while vs. for 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 10 doublesum = 0.0; int i = 0; while (i != grades.length) { sum += grades[i]; i++; } doublesum = 0.0; for (int i = 0; i != grades.length; i++) { sum += grades[i]; }
  • 11. Ciclos: lado-a-lado… 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 11 while for do-while inicialização inicialização inicialização [¬guarda] [¬guarda] [guarda] [guarda] passo acçãoprogresso passo [guarda] [¬guarda]
  • 12. Blocos: se instrução única, dispensáveis 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 12
  • 13. Operador de selecção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 13 instrução operação
  • 14. Exemplo de método função /** * Returns maximum of the items in array. * * @paramarrayarray whose maximum will be returned. * @returns the maximum of the items in array. * @prearray must have at least one item */ public static intmaximumOf(final int[] array) { int maximum = array[0]; for (inti = 1; i != array.length; i++) if(maximum < array[i]) maximum = array[i]; return maximum; } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 14 Assume-se que array não é null. A ver mais tarde…
  • 15. Classe pacote Todos métodos static , i.e., métodos de classe (a ver mais tarde) Construtor privado (a ver mais tarde) Por exemplo, classe pacote java.lang.Math Métodos Math.abs(int/double) – Calcula valor absoluto. Math.sqrt(double) – Calcula raiz quadrada. Math.pow(double, double) – Calcula potência. Math.sin(double) – Calcula seno. Math.cos(double) – Calcula co-seno. … Constantes Math.PI – Valor de π. Math.E – Valor de e. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 15
  • 16. Classe pacote: exemplo public class IntArrayUtilities { private IntArrayUtilities() { throw new RuntimeException("Attempt to instantiate " + "package class"); } public staticintmaximumOf(final int[] array) { … } public staticint minimum(final int[] array) { … } public staticint[] sortedCopyOf(final int[] array) { … } public staticbooleanthereAreDuplicatesIn(final int[] array) { … } … } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 16
  • 17. Classe pacote: utilização import static java.lang.System.out; import static IntArrayUtilities.*; public class Tester { … public static void main(final String[] arguments) { final int[] myArray = {9, 2, 6, 5, 8, 2}; out.println("Maximum of array is " + maximum(array)); out.println("Minimum of array is " + minimum(array)); final int[] mySortedArray = sortedCopyOf(testArray); out.print("mySortedArray is: "); for (inti = 0; i != mySortedArray.length; i++) out.println("" + mySortedArray[i]); if (thereAreDuplicatesIn(myArray)) out.println("myArray has duplicate items."); } } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 17
  • 18. A reter Java Matrizes Ciclo for Simplificações sintácticas Classes pacote 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 18
  • 19. A ler... Capítulos 1 a 4 do livro: Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-6 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 19
  • 20. Sumário Atribuições especiais Matrizes em Java Tipos de ciclos (ciclo for) Classes pacote 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 20