Upload
manuel-menezes-de-sequeira
View
2.348
Download
2
Embed Size (px)
DESCRIPTION
Apresentação da semana 3 da unidade curricular de Introdução à Programação do DCTI do ISCTE-IUL. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI, incluindo Luís Nunes e André Santos.
Citation preview
Aula 3Introdução à linguagem de programação Java
Introdução à Programação - DCTI - ISCTE-IUL 2
Das aulas anteriores…
Algoritmos em pseudocódigo Variáveis Instruções de selecção Instruções de iteração Funções Listas
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 3
Fases da resolução de problemas Especificar 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/2011 3
Introdução à Programação - DCTI - ISCTE-IUL 4
Linguagem de programação orientada para objectos Paradigma dominante Existem outros paradigmas▪ Programação procedimental▪ Programação funcional▪ Programação lógica
Independente da plataforma: programas executáveis em diferentes sistemas operativos
Muito utilizada na indústria
Java
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 5
JVM
Compiladorde Java
(javac.exe)
Código em bytecode Java (linguagem máquina para
JVM) (Olá.class)
Código fonte em Java
(e.g., Olá.java)
Java: construção
2010/2011
Java Virtual Machine (Máquina Virtual Java)
Significa “texto escrito na linguagem Java”…
Interpretador de linguagem
máquina para a JVM (java.exe)
Processador
Introdução à Programação - DCTI - ISCTE-IUL 6
Variáveis
Declaração e inicialização obrigatórias! Declaração indica nome e tipo (conjunto
dos valores) Inicialização indica valor inicial
Utilizadas para guardar valores
Atribuição altera valor de variável2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 7
Variáveis: boas práticas
Declarar tão próximo quanto possível da primeira utilização
Declarar de modo a minimizar âmbito da variável
Inicializar logo que possível
Não inicializar apenas “para calar o compilador”
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 8
Variáveis
Pseudocódigo
Java Observações
- int i = 1; Declaração com inicialização.
- int gcd;
if (m < n) gcd = m;else gcd = n;
Declaração sem inicialização seguida de duas inicializações alternativas.
primo ← 2. prime = 2; Atribuição (se a estiver já inicializada).
i ← i + 1. i = i + 1; Incrementação (há melhores formas…).
n ← temporária.
n = temporary;
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 9
Variáveis: tipos
Tipo Descrição Bits
Exemplos
int Subconjunto dos inteiros. 32 int numberOfStudents;
double Vírgula flutuante. Subconjunto dos racionais.
64 double averageGrade;
boolean Booleanos ou lógicos. - boolean isPrime;
char Caracteres. 16 char response;
String Texto, cadeias de caracteres. - String studentName;
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 10
Variáveis: outros tipos
Tipo
Descrição Bits
byte Pequeno subconjunto dos inteiros. 8
short Subconjunto dos inteiros, entre byte e int. 16
long Subconjunto dos inteiros, maior que int. 64
float Vírgula flutuante. Subconjunto dos racionais , menor gama e menor precisão que double.
32
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 11
Variáveis e identificadores
Nomes de variáveis são identificadores
Identificadores não podem ser repetidos no mesmo contexto
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 12
Identificadores: formato
Constituídos por letras (a, À, ε, …) dígitos (0 a 9) _ $
Primeiro caractere não pode ser dígito
Maiúsculas e minúsculas são distinguidas
Não podem ser palavras-chave do Java (e.g., for, while, int, if ou for)
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 13
Identificadores: convenções para variáveis
Primeira palavra em minúsculas
Restantes palavras com maiúscula inicial
Exemplo: numberOfStudents
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 14
Identificadores: boas práticas
Em língua naturalSem abreviaturasGramática correcta Adequados à entidade que
identificamClarosSignificativosExpressivos
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 15
Operadores
Pseudocódigo
Java Significado Tipo
Ʌ && e Booleano
V || ou Booleano
¬ ! não Booleano
< < menor Relacional
≤ <= menor ou igual Relacional
> > maior Relacional
≥ >= maior ou igual Relacional
= == igual Comparação
≠ != diferente Comparação
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 16
Instrução de selecção
Pseudocódigo Java
Se m < n, então mdc ← m,senão, mdc ← n.
if (m < n) { gcd = m;} else { gcd = n;}
Se nota < 10, então …senão, se nota < 12, então … senão, …
if (grade < 10) { …} else if (grade < 12) { …} else { …}
2010/2011
Pode-se omitir as chavetas quando contêm apenas uma instrução.
Introdução à Programação - DCTI - ISCTE-IUL 17
Instruções de iteração
Pseudocódigo Java
inicializaçãoEnquanto guarda, fazer acção progresso.
initializationwhile (guard) { action progress}
inicializaçãoFazer acção progressoenquanto guarda.
initializationdo { action progress} while (guard);
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 18
Instruções de escrita no ecrãPseudocódigo Java
Escrever algo no ecrã. System.out.print(something);
Escrever algo no ecrã e mudar de linha.
System.out.println(something);
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 19
Funções
Pseudocódigo Java
Função mínimoDe(m, n) Se m < n, então Devolve m. senão, Devolve n.
static int minimumOf(final int m, final int n) { if (m < n) return m; else return n;}
x ← mínimoDe(5, 7).
int x = minimumOf(5, 7);
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 20
Rotinas
Podem ser funções ou procedimentos
Funções – calculam e devolvem algum valor
Procedimentos – realizam uma dada acção
2010/2011
A ver mais tarde…
Introdução à Programação - DCTI - ISCTE-IUL 21
Métodos
Em programação orientada para objectos as rotinas são conhecidas por métodos
Podem ser de classe ou de instância
Métodos de classe – com static
Métodos de instância – sem static, a ver mais tarde
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 22
Hello world!
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 .java
Método principal main(...) é primeiro a ser invocado ao se executar um programa
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 23
Versão Java do MDC
public class GcdTester {
// Precondition: either m ≠ 0 or n ≠ 0. public static int gcd(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 int firstValue = 25; final int secondValue = 30; final int gcd = gcd(firstValue, secondValue); System.out.println("The GCD is " + gcd + ".");
// or simply: // System.out.println("The GCD is " + gcd(25, 30) + "."); }
}
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 24
Comentários
Usados para clarificar código menos claro
Java ignora texto entre // e o fim da linha e texto entre /* e */
“Comentários” iniciados com /** são documentação, que veremos mais tarde
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 25
A reter
Java Variáveis Instrução de selecção if-else Instruções de iteração while e do-while Rotinas vs. funções e procedimentos Rotinas e métodos Métodos de classe (static) vs. métodos de
instância Escrita no ecrã com System.out.println(…) Método principal main(…) Comentários e documentação
2010/2011
2010/2011 26
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
Introdução à Programação - DCTI - ISCTE-IUL 26
Introdução à Programação - DCTI - ISCTE-IUL 27
Sumário
Introdução à linguagem de programação Java
2010/2011