28
Apresentação 4 Introdução à linguagem de programação Java

4. Introdução à linguagem de programação Java – Fundamentos de Programação

Embed Size (px)

DESCRIPTION

Fundamentos da Programação 4: • Introdução à linguagem de programação Java Apresentação 4 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.

Citation preview

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

Fundamentos de Programação 2

Das apresentações anteriores…

Algoritmos implementados em Snap! Variáveis Instruções de selecção Instruções de iteração Funções Listas

2013/2014

Fundamentos de Programação 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]

2013/2014 3

Fundamentos de Programação 4

Linguagem de programação Orientada por objectos (e também imperativa, procedimental e

estruturada)

Independente da plataforma: programas executáveis em diferentes sistemas operativos

Muito utilizada na indústria

Java

2013/2014

Java

2013/2014 Fundamentos de Programação 5

Fonte: http://trendyskills.com/

Fundamentos de Programação 6

JVM

Compiladorde Java

(javac.exe)

Código em bytecode Java (linguagem máquina para

JVM) (Greeter.class)

Código fonte em Java

(e.g., Greeter.java)

Java: construção

2013/2014

Java Virtual Machine (Máquina Virtual Java)

Significa “texto escrito na linguagem Java”…

Interpretador de linguagem

máquina para a JVM (java.exe)

Processador

Fundamentos de Programação 7

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ável2013/2014

Fundamentos de Programação 8

Variáveis

Snap! 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.

prime = 2; Atribuição (se prime estiver já inicializada).

i = i + 1; Incrementação (há melhores formas…).

n = temporary;

2013/2014

Não existe em Snap!, pelo que usa declaração e atribuição.

Fundamentos de Programação 9

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”

2013/2014

Fundamentos de Programação 10

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. 8 boolean isPrime;

char Caracteres. 16 char response;

String Texto, cadeias de caracteres. - String studentName;

2013/2014

Há mais!

Fundamentos de Programação 11

Variáveis: mais 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

2013/2014

Fundamentos de Programação 12

Variáveis e identificadores

Nomes de variáveis são identificadores

Identificadores não podem ser repetidos no mesmo contexto

2013/2014

Fundamentos de Programação 13

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)

2013/2014

Fundamentos de Programação 14

Identificadores: convenções para variáveis

Primeira palavra em minúsculas

Restantes palavras com maiúscula inicial

Exemplo: numberOfStudents

2013/2014

Fundamentos de Programação 15

Identificadores: boas práticas Em língua natural Sem abreviaturas Gramática correcta Adequados à entidade que identificam Claros Significativos Expressivos Para variáveis, são continuação de

«This variable stores the …»

2013/2014

Há excepções, nomeadamente as que nos chegam do domínio da matemática e que ganharam estatuto de expressões idiomáticas nas linguagens de programação: i, j, m, n, x, y e algumas outras, sempre em casos muito particulares.

Fundamentos de Programação 16

Operadores

Snap! Java Significado Tipo&& e Booleano|| ou Booleano! não Booleano< menor Relacional<= menor ou igual Relacional> maior Relacional>= maior ou igual Relacional== igual Comparação!= diferente Comparação

2013/2014

Fundamentos de Programação 17

Instrução de selecção

Snap! Java

if (m < n) { gcd = m;} else { gcd = n;}

if (grade < 10) { …} else if (grade < 12) { …} else { …}

2013/2014

Pode-se omitir as chavetas quando contêm apenas uma instrução.

Fundamentos de Programação 18

Instruções de iteração

Snap! Java

initializationwhile (guard) { action progress}

initializationdo { action progress} while (guard);

2013/2014

Pode-se omitir as chavetas quando contêm apenas uma instrução.

Fundamentos de Programação 19

Instruções de escrita no ecrãSnap! Java

System.out.print(something);

System.out.println(something);

2013/2014

Passa para a linha seguinte depois de escrever.

Fundamentos de Programação 20

Funções

Snap! Java

public staticint minimumOf(final int m, final int n) { if (m < n) return m; else return n;}

int number = minimumOf(5, 7);

2013/2014

A ver mais tarde…

A ver mais tarde…Constante,

inalterável.

Fundamentos de Programação 21

Rotinas

Podem ser funções ou procedimentos

Funções – calculam e devolvem algum valor

Procedimentos – realizam uma dada acção

2013/2014

A ver mais tarde…

Fundamentos de Programação 22

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

2013/2014

Mais tarde distinguir-se-á operações e métodos.

A ver mais tarde…

Fundamentos de Programação 23

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(...) é um procedimento e é o primeiro método a ser invocado ao se executar um programa

2013/2014

Fundamentos de Programação 24

Versão Java do MDC

public class GcdTester {

// Precondition: m ≥ 0 and n ≥ 0 and either m ≠ 0 or n ≠ 0. public static int gcd(int m, int n) { while (m != 0) { final 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) + "."); }

}

2013/2014

Fundamentos de Programação 25

Comentários Java

Java ignora texto entre // e o fim da linha e texto entre /* e */

Usados para Comentar – clarificar código menos claro Documentar – gerar documentação

Comentários Java iniciados com /** são documentação, que veremos mais tarde

2013/2014

Fundamentos de Programação 26

Comentários Java: boas práticas

Usar para documentação

Evitar usar para comentar código menos claro

2013/2014

Fundamentos de Programação 27

A reter

Java Variáveis Instrução de selecção if-else Instruções de iteração while e do-while Rotinas: 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

2013/2014

Fundamentos de Programação 28

Sumário

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

2013/2014