Aula 3Introdução à linguagem de programação Java
Das aulas anteriores…Algoritmos em pseudocódigoVariáveisInstruções de selecçãoInstruções de iteraçãoFunçõesListas2010/2011Introdução à Programação - DCTI - ISCTE-IUL2
Fases da resolução de problemasEspecificar problema [humano]Desenvolver algoritmo que o resolva [humano]Concretizar algoritmo na linguagem de programação [humano]Traduzir programa para linguagem máquina [compilador, numa máquina]Executar programa para caso particular [máquina física ou virtual]2010/2011Introdução à Programação - DCTI - ISCTE-IUL33
Linguagem de programação orientada para objectosParadigma dominanteExistem outros paradigmasProgramação procedimentalProgramação funcionalProgramação lógicaIndependente da plataforma: programas executáveis em diferentes sistemas operativosMuito utilizada na indústriaJava2010/2011Introdução à Programação - DCTI - ISCTE-IUL4
Código em bytecode Java (linguagem máquina para JVM) (Olá.class)Código fonte em Java(e.g., Olá.java)Compiladorde Java (javac.exe)JVMJava: construção2010/2011Introdução à Programação - DCTI - ISCTE-IUL5Java Virtual Machine (Máquina Virtual Java)Significa “texto escrito na linguagem Java”…Interpretador de linguagemmáquina para a JVM(java.exe)Processador
VariáveisDeclaração e inicialização obrigatórias!Declaração indica nome e tipo (conjunto dos valores)Inicialização indica valor inicialUtilizadas para guardar valoresAtribuição altera valor de variável2010/2011Introdução à Programação - DCTI - ISCTE-IUL6
Variáveis: boas práticasDeclarar tão próximo quanto possível da primeira utilizaçãoDeclarar de modo a minimizar âmbito da variávelInicializar logo que possívelNão inicializar apenas “para calar o compilador”2010/2011Introdução à Programação - DCTI - ISCTE-IUL7
Variáveis2010/2011Introdução à Programação - DCTI - ISCTE-IUL8
Variáveis: tipos2010/2011Introdução à Programação - DCTI - ISCTE-IUL9
Variáveis: outros tipos2010/2011Introdução à Programação - DCTI - ISCTE-IUL10
Variáveis e identificadoresNomes de variáveis são identificadoresIdentificadores não podem ser repetidos no mesmo contexto2010/2011Introdução à Programação - DCTI - ISCTE-IUL11
Identificadores: formatoConstituídos porletras (a, À, ε, …)dígitos (0 a 9)_$Primeiro caractere não pode ser dígitoMaiúsculas e minúsculas são distinguidasNão podem ser palavras-chave do Java (e.g., for, while, int, if ou for)2010/2011Introdução à Programação - DCTI - ISCTE-IUL12
Identificadores: convenções para variáveisPrimeira palavra em minúsculasRestantes palavras com maiúscula inicialExemplo: numberOfStudents2010/2011Introdução à Programação - DCTI - ISCTE-IUL13
Identificadores: boas práticasEm língua naturalSem abreviaturasGramática correcta Adequados à entidade que identificamClarosSignificativosExpressivos2010/2011Introdução à Programação - DCTI - ISCTE-IUL14
Operadores2010/2011Introdução à Programação - DCTI - ISCTE-IUL15
Instrução de selecção2010/2011Introdução à Programação - DCTI - ISCTE-IUL16Pode-se omitir as chavetas quando contêm apenas uma instrução.
Instruções de iteração2010/2011Introdução à Programação - DCTI - ISCTE-IUL17
Instruções de escrita no ecrã2010/2011Introdução à Programação - DCTI - ISCTE-IUL18
Funções2010/2011Introdução à Programação - DCTI - ISCTE-IUL19
RotinasPodem ser funções ou procedimentosFunções – calculam e devolvem algum valorProcedimentos – realizam uma dada acção2010/2011Introdução à Programação - DCTI - ISCTE-IUL20A ver mais tarde…
MétodosEm programação orientada para objectos as rotinas são conhecidas por métodosPodem ser de classe ou de instânciaMétodos de classe – com staticMétodos de instância – sem static, a ver mais tarde2010/2011Introdução à Programação - DCTI - ISCTE-IUL21
Helloworld!public class Greeter {    public static void main(final String[] arguments) {        System.out.println("Hello world!");    }}Ficheiro com o código fonte de classe tem de ter mesmo nome que classe e extensão .javaMétodo principal main(...) é primeiro a ser invocado ao se executar um programa2010/2011Introdução à Programação - DCTI - ISCTE-IUL22
Versão Java do MDCpublic class GcdTester {    // Precondition: either m ≠ 0 or n ≠ 0.    public static intgcd(int m, int n) {        while (m != 0) {int temporary = m;            m = n % m;            n = temporary;        }        return n;    }    public static void main(final String[] arguments) {        final intfirstValue = 25;        final intsecondValue = 30;        final intgcd = gcd(firstValue, secondValue);        System.out.println("The GCD is " + gcd + ".");         // or simply:        // System.out.println("The GCD is " + gcd(25, 30) + ".");     }}2010/2011Introdução à Programação - DCTI - ISCTE-IUL23
ComentáriosUsados para clarificar código menos claroJava ignoratexto entre // e o fim da linha etexto entre /* e */“Comentários” iniciados com /** são documentação, que veremos mais tarde2010/2011Introdução à Programação - DCTI - ISCTE-IUL24
A reterJavaVariáveisInstrução de selecção if-elseInstruções de iteração while e do-whileRotinas vs. funções e procedimentosRotinas e métodosMétodos de classe (static) vs. métodos de instânciaEscrita no ecrã com System.out.println(…)Método principal main(…)Comentários e documentação2010/2011Introdução à Programação - DCTI - ISCTE-IUL25
2010/201126A 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-6Introdução à Programação - DCTI - ISCTE-IUL26
SumárioIntrodução à linguagem de programação Java2010/2011Introdução à Programação - DCTI - ISCTE-IUL27

Semana 3: Introdução à linguagem de programação Java

  • 1.
    Aula 3Introdução àlinguagem de programação Java
  • 2.
    Das aulas anteriores…Algoritmosem pseudocódigoVariáveisInstruções de selecçãoInstruções de iteraçãoFunçõesListas2010/2011Introdução à Programação - DCTI - ISCTE-IUL2
  • 3.
    Fases da resoluçãode problemasEspecificar problema [humano]Desenvolver algoritmo que o resolva [humano]Concretizar algoritmo na linguagem de programação [humano]Traduzir programa para linguagem máquina [compilador, numa máquina]Executar programa para caso particular [máquina física ou virtual]2010/2011Introdução à Programação - DCTI - ISCTE-IUL33
  • 4.
    Linguagem de programaçãoorientada para objectosParadigma dominanteExistem outros paradigmasProgramação procedimentalProgramação funcionalProgramação lógicaIndependente da plataforma: programas executáveis em diferentes sistemas operativosMuito utilizada na indústriaJava2010/2011Introdução à Programação - DCTI - ISCTE-IUL4
  • 5.
    Código em bytecodeJava (linguagem máquina para JVM) (Olá.class)Código fonte em Java(e.g., Olá.java)Compiladorde Java (javac.exe)JVMJava: construção2010/2011Introdução à Programação - DCTI - ISCTE-IUL5Java Virtual Machine (Máquina Virtual Java)Significa “texto escrito na linguagem Java”…Interpretador de linguagemmáquina para a JVM(java.exe)Processador
  • 6.
    VariáveisDeclaração e inicializaçãoobrigatórias!Declaração indica nome e tipo (conjunto dos valores)Inicialização indica valor inicialUtilizadas para guardar valoresAtribuição altera valor de variável2010/2011Introdução à Programação - DCTI - ISCTE-IUL6
  • 7.
    Variáveis: boas práticasDeclarartão próximo quanto possível da primeira utilizaçãoDeclarar de modo a minimizar âmbito da variávelInicializar logo que possívelNão inicializar apenas “para calar o compilador”2010/2011Introdução à Programação - DCTI - ISCTE-IUL7
  • 8.
  • 9.
    Variáveis: tipos2010/2011Introdução àProgramação - DCTI - ISCTE-IUL9
  • 10.
    Variáveis: outros tipos2010/2011Introduçãoà Programação - DCTI - ISCTE-IUL10
  • 11.
    Variáveis e identificadoresNomesde variáveis são identificadoresIdentificadores não podem ser repetidos no mesmo contexto2010/2011Introdução à Programação - DCTI - ISCTE-IUL11
  • 12.
    Identificadores: formatoConstituídos porletras(a, À, ε, …)dígitos (0 a 9)_$Primeiro caractere não pode ser dígitoMaiúsculas e minúsculas são distinguidasNão podem ser palavras-chave do Java (e.g., for, while, int, if ou for)2010/2011Introdução à Programação - DCTI - ISCTE-IUL12
  • 13.
    Identificadores: convenções paravariáveisPrimeira palavra em minúsculasRestantes palavras com maiúscula inicialExemplo: numberOfStudents2010/2011Introdução à Programação - DCTI - ISCTE-IUL13
  • 14.
    Identificadores: boas práticasEmlíngua naturalSem abreviaturasGramática correcta Adequados à entidade que identificamClarosSignificativosExpressivos2010/2011Introdução à Programação - DCTI - ISCTE-IUL14
  • 15.
  • 16.
    Instrução de selecção2010/2011Introduçãoà Programação - DCTI - ISCTE-IUL16Pode-se omitir as chavetas quando contêm apenas uma instrução.
  • 17.
    Instruções de iteração2010/2011Introduçãoà Programação - DCTI - ISCTE-IUL17
  • 18.
    Instruções de escritano ecrã2010/2011Introdução à Programação - DCTI - ISCTE-IUL18
  • 19.
  • 20.
    RotinasPodem ser funçõesou procedimentosFunções – calculam e devolvem algum valorProcedimentos – realizam uma dada acção2010/2011Introdução à Programação - DCTI - ISCTE-IUL20A ver mais tarde…
  • 21.
    MétodosEm programação orientadapara objectos as rotinas são conhecidas por métodosPodem ser de classe ou de instânciaMétodos de classe – com staticMétodos de instância – sem static, a ver mais tarde2010/2011Introdução à Programação - DCTI - ISCTE-IUL21
  • 22.
    Helloworld!public class Greeter{ public static void main(final String[] arguments) { System.out.println("Hello world!"); }}Ficheiro com o código fonte de classe tem de ter mesmo nome que classe e extensão .javaMétodo principal main(...) é primeiro a ser invocado ao se executar um programa2010/2011Introdução à Programação - DCTI - ISCTE-IUL22
  • 23.
    Versão Java doMDCpublic class GcdTester { // Precondition: either m ≠ 0 or n ≠ 0. public static intgcd(int m, int n) { while (m != 0) {int temporary = m; m = n % m; n = temporary; } return n; } public static void main(final String[] arguments) { final intfirstValue = 25; final intsecondValue = 30; final intgcd = gcd(firstValue, secondValue); System.out.println("The GCD is " + gcd + "."); // or simply: // System.out.println("The GCD is " + gcd(25, 30) + "."); }}2010/2011Introdução à Programação - DCTI - ISCTE-IUL23
  • 24.
    ComentáriosUsados para clarificarcódigo menos claroJava ignoratexto entre // e o fim da linha etexto entre /* e */“Comentários” iniciados com /** são documentação, que veremos mais tarde2010/2011Introdução à Programação - DCTI - ISCTE-IUL24
  • 25.
    A reterJavaVariáveisInstrução deselecção if-elseInstruções de iteração while e do-whileRotinas vs. funções e procedimentosRotinas e métodosMétodos de classe (static) vs. métodos de instânciaEscrita no ecrã com System.out.println(…)Método principal main(…)Comentários e documentação2010/2011Introdução à Programação - DCTI - ISCTE-IUL25
  • 26.
    2010/201126A 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-6Introdução à Programação - DCTI - ISCTE-IUL26
  • 27.
    SumárioIntrodução à linguagemde programação Java2010/2011Introdução à Programação - DCTI - ISCTE-IUL27