Aula 4Atribuições especiaisMatrizes em JavaTipos de ciclos (ciclo for)Classes pacote
Da aula anterior…Introdução ao JavaVariáveisInstrução de selecção if-elseCiclos while e do-whileMétodos de classe (publicstatic …)2010/2011Introdução à Programação - DCTI - ISCTE-IUL2
Operadores de atribuição especiais2010/2011Introdução à Programação - DCTI - ISCTE-IUL3
Matrizes Java (arrays)Sequências de itens com comprimento fixado durante construçãoDeclaraçãotipoDosItens[]nome;Declaração, construção e inicializaçãotipoDosItens[]nome = newtipoDosItens[comprimento];Exemplosfinal double[] grades = newdouble[numberOfStudents];final int[] sizes = newint[numberOfClasses];final intnumberOfStudents = grades.length;2010/2011Introdução à Programação - DCTI - ISCTE-IUL4construção
Matrizes Java (arrays)Itens identificados por índicesPrimeiro item: índice 0 (zero)Último item: índice matriz.length- 1ExemplosintfirstSize = sizes[0];intlastSize = sizes[sizes.length - 1];2010/2011Introdução à Programação - DCTI - ISCTE-IUL5
Matrizes Java2010/2011Introdução à Programação - DCTI - ISCTE-IUL6
Construção de matrizes2010/2011Introdução à Programação - DCTI - ISCTE-IUL7
int i = 0;while (i != 10) {…    i++;}Ciclos: partes2010/2011Introdução à Programação - DCTI - ISCTE-IUL8inicializaçãoguardapassoacçãoprogresso
Ciclos: forCiclo forAlternativa a whileTipicamente usado com iteradoresÚtil para manipular de matrizes2010/2011Introdução à Programação - DCTI - ISCTE-IUL9inti = 0;while (i != 10) {…i++;}for (inti = 0; i != 10; i++) {…}
Ciclos: while vs. for2010/2011Introdução à Programação - DCTI - ISCTE-IUL10doublesum = 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/2011Introdução à Programação - DCTI - ISCTE-IUL11whilefordo-whileinicializaçãoinicializaçãoinicialização[¬guarda][¬guarda][guarda][guarda]passoacçãoprogressopasso[guarda][¬guarda]
Blocos: se instrução única, dispensáveis2010/2011Introdução à Programação - DCTI - ISCTE-IUL12
Operador de selecção2010/2011Introdução à Programação - DCTI - ISCTE-IUL13instruçãooperaçã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/2011Introdução à Programação - DCTI - ISCTE-IUL14Assume-se que array não é null. A ver mais tarde…
Classe pacoteTodos 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.MathMétodosMath.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.…ConstantesMath.PI – Valor de π.Math.E – Valor de e.2010/2011Introdução à Programação - DCTI - ISCTE-IUL15
Classe pacote: exemplopublic 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/2011Introdução à Programação - DCTI - ISCTE-IUL16
Classe pacote: utilizaçãoimport 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("\t" + mySortedArray[i]);        if (thereAreDuplicatesIn(myArray))            out.println("myArray has duplicate items.");    }}2010/2011Introdução à Programação - DCTI - ISCTE-IUL17
A reterJavaMatrizesCiclo forSimplificações sintácticasClasses pacote2010/2011Introdução à Programação - DCTI - ISCTE-IUL18
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-62010/2011Introdução à Programação - DCTI - ISCTE-IUL19
SumárioAtribuições especiaisMatrizes em JavaTipos de ciclos (ciclo for)Classes pacote2010/2011Introdução à Programação - DCTI - ISCTE-IUL20

Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote

  • 1.
    Aula 4Atribuições especiaisMatrizesem JavaTipos de ciclos (ciclo for)Classes pacote
  • 2.
    Da aula anterior…Introduçãoao JavaVariáveisInstrução de selecção if-elseCiclos while e do-whileMétodos de classe (publicstatic …)2010/2011Introdução à Programação - DCTI - ISCTE-IUL2
  • 3.
    Operadores de atribuiçãoespeciais2010/2011Introdução à Programação - DCTI - ISCTE-IUL3
  • 4.
    Matrizes Java (arrays)Sequênciasde itens com comprimento fixado durante construçãoDeclaraçãotipoDosItens[]nome;Declaração, construção e inicializaçãotipoDosItens[]nome = newtipoDosItens[comprimento];Exemplosfinal double[] grades = newdouble[numberOfStudents];final int[] sizes = newint[numberOfClasses];final intnumberOfStudents = grades.length;2010/2011Introdução à Programação - DCTI - ISCTE-IUL4construção
  • 5.
    Matrizes Java (arrays)Itensidentificados por índicesPrimeiro item: índice 0 (zero)Último item: índice matriz.length- 1ExemplosintfirstSize = sizes[0];intlastSize = sizes[sizes.length - 1];2010/2011Introdução à Programação - DCTI - ISCTE-IUL5
  • 6.
    Matrizes Java2010/2011Introdução àProgramação - DCTI - ISCTE-IUL6
  • 7.
    Construção de matrizes2010/2011Introduçãoà Programação - DCTI - ISCTE-IUL7
  • 8.
    int i =0;while (i != 10) {… i++;}Ciclos: partes2010/2011Introdução à Programação - DCTI - ISCTE-IUL8inicializaçãoguardapassoacçãoprogresso
  • 9.
    Ciclos: forCiclo forAlternativaa whileTipicamente usado com iteradoresÚtil para manipular de matrizes2010/2011Introdução à Programação - DCTI - ISCTE-IUL9inti = 0;while (i != 10) {…i++;}for (inti = 0; i != 10; i++) {…}
  • 10.
    Ciclos: while vs.for2010/2011Introdução à Programação - DCTI - ISCTE-IUL10doublesum = 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/2011Introdução àProgramação - DCTI - ISCTE-IUL11whilefordo-whileinicializaçãoinicializaçãoinicialização[¬guarda][¬guarda][guarda][guarda]passoacçãoprogressopasso[guarda][¬guarda]
  • 12.
    Blocos: se instruçãoúnica, dispensáveis2010/2011Introdução à Programação - DCTI - ISCTE-IUL12
  • 13.
    Operador de selecção2010/2011Introduçãoà Programação - DCTI - ISCTE-IUL13instruçãooperação
  • 14.
    Exemplo de métodofunçã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/2011Introdução à Programação - DCTI - ISCTE-IUL14Assume-se que array não é null. A ver mais tarde…
  • 15.
    Classe pacoteTodos métodosstatic , i.e., métodos de classe (a ver mais tarde)Construtor privado (a ver mais tarde)Por exemplo, classe pacote java.lang.MathMétodosMath.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.…ConstantesMath.PI – Valor de π.Math.E – Valor de e.2010/2011Introdução à Programação - DCTI - ISCTE-IUL15
  • 16.
    Classe pacote: exemplopublicclass 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/2011Introdução à Programação - DCTI - ISCTE-IUL16
  • 17.
    Classe pacote: utilizaçãoimportstatic 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("\t" + mySortedArray[i]); if (thereAreDuplicatesIn(myArray)) out.println("myArray has duplicate items."); }}2010/2011Introdução à Programação - DCTI - ISCTE-IUL17
  • 18.
    A reterJavaMatrizesCiclo forSimplificaçõessintácticasClasses pacote2010/2011Introdução à Programação - DCTI - ISCTE-IUL18
  • 19.
    A ler...Capítulos 1a 4 do livro:Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-62010/2011Introdução à Programação - DCTI - ISCTE-IUL19
  • 20.
    SumárioAtribuições especiaisMatrizes emJavaTipos de ciclos (ciclo for)Classes pacote2010/2011Introdução à Programação - DCTI - ISCTE-IUL20