semana 3: introdução à linguagem de programação java

27
Aula 3 Introdução à linguagem de programação Java

Upload: manuel-menezes-de-sequeira

Post on 11-Jun-2015

2.347 views

Category:

Technology


2 download

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.

TRANSCRIPT

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

Aula 3Introdução à linguagem de programação Java

Page 2: Semana  3: Introduçã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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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…

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

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

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

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

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

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

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

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

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

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

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

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

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

Introdução à Programação - DCTI - ISCTE-IUL 27

Sumário

Introdução à linguagem de programação Java

2010/2011