• Nenhum resultado encontrado

Diagramas Sintáticos

N/A
N/A
Protected

Academic year: 2021

Share "Diagramas Sintáticos"

Copied!
14
0
0

Texto

(1)

Diagramas Sintáticos

Programação

Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)

Centro de Cálculo

(2)

CCISEL, 2014

• Cada classe X pública é

declarada num ficheiro X.java • Indicando as classes

exteriores que são usadas • Por convenção, o nome

começa por maiúscula

• Entre chavetas constam os seu membros

• O método main recebe como parâmetro um array de String • Entre chavetas constam as

suas instruções

2 Programação

Classe pública com método

main

classe pública

public

class

nome

{

import

;

}

Ficheiro .java

método main

. . .

.

*

nome

método main Código a executar inicialmente

public static void main

( String [ ] nome )

(3)

• Nomes sugestivos que identificam classes, variáveis, métodos… • Compostos por letras, dígitos e “_” sem espaços

• O primeiro símbolo não pode ser um dígito • Distinção entre maiúsculas e minúsculas • Não podem ser palavras reservadas

– (if, class, public, …) • Dimensão ilimitada

• Convenções:

– Classes: UpperCamelCase

– Variáveis e métodos: lowerCamelCase – Constantes: UNDER_SCORE

– O “_” não é normalmente usado no início

– O “$” também é permitido mas não é normalmente usado

Identificadores / Nomes

nome

Identificador

letra

letra

0

..

9

letra

Maiúscula, minúscula ou _

a

..

z

A

..

Z

_

. . .

counter3 maxValue Prog MIN_VALUE

(4)

CCISEL, 2014

• Uma variável associa um nome a um local de memória onde se armazena um valor de determinado tipo.

• Uma declaração define uma ou mais variáveis do mesmo tipo.

• Cada variável pode ser iniciada com a avaliação de uma expressão.

4 Programação

Declaração de variáveis

declaração Declaração de variáveis

tipo nome

= expressão

; ,

int x;

tipo Nome de um tipo int char float boolean byte short long double nome . . . .

float average, sum; byte b = 0xFF;

long time=100, total=0; java.util.Scanner in;

(5)

• Um literal é um valor (constante) de determinado tipo int: long: double: float: 2.7F char:

String: "Olá mundo" "ISEL\n"

Valores e literais

literal inteiro true false ' caráter ' " caráter " Constante real

inteiro Valorinteiro

1..9 0..9 0 0..7 x 0..9 A..F b 0..1 L

-real Valorreal

. 0..9 0..9 e - 0..9 F -27 -32 0x2F 037 0b1010 27L -32L 0x2FL 2.7 -0.42 6.5e12 2.7F "ISEL\n" "Olá mundo" '\n' 'A' -0.42F

(6)

CCISEL, 2014

• Com variáveis, literais e operadores (e outros elementos). • Cada expressão tem um valor de determinado tipo.

• Uma expressão pode ser apenas uma variável ou um literal.

6 Programação

Expressões

expressão Para obter um valor

elemento sufixOp prefixOp binOp ? expressão : 23 counter counter + 23 -a * b++ (a+2)*2 10 * in.nextInt() + 1

(7)

Operadores

Unários pós-fixos expr++ expr--

Unários prefixos ++expr --expr +expr -expr ~ !

Multiplicativos * / % Aditivos + - Deslocamentos (shift) << >> >>> Relacionais < > <= >= instanceof Teste de igualdade == != E (AND) & OU exclusivo (XOR) ^ OU (OR) |

E lógico (AND) {parcial} &&

OU lógico (OR) {parcial} ||

Ternário ? : Afetações = += -= *= /= %= &= ^= |= <<= >>= >>>=

Priori

dade

+

-

(8)

CCISEL, 2014

• Declaração de variáveis locais • Expressão seguida de ';'

– Afetação, chamadas a métodos, … • Instrução de decisão:

– Binária (if else) – Múltipla (switch)

• Instrução de repetição com: – Teste inicial (while)

– Teste final (do while) – Teste inicial e expressões

de iniciação e de iteração (for) • Instrução de quebra do fluxo de:

– Ciclos ou de switch (continue break) – Métodos (return)

• Bloco de instruções entre chavetas

8 Programação

Instruções

instrução Unidade de execução

declaração expressão ; if while do-while for bloco switch break continue return bloco 0..N Instruções { instrução }

(9)

• Instrução if

– Expressão avaliada com resultado booleano – Parte else opcional

– É apenas executada a instrução selecionada (que pode ser um bloco)

Instruções de decisão

if if ( expressão ) instrução else instrução Decisão binária switch switch ( expressão ) instrução Decisão múltipla { } case expressão : default : instrução • Instrução switch

– Expressão avaliada com resultado enumerável

– A expressões dos ramos case

são constantes do mesmo tipo com valores diferentes

– As instruções default são

executadas se não for selecionado um ramo case

– São executadas todas as instruções a partir do ramo selecionado até ao final do switch ou até a uma instrução break (ou return)

(10)

CCISEL, 2014

Executam a instrução enquanto a avaliação da expressão de condição resultar true

• Instrução while

– Avalia antes de executar

10 Programação

Instruções de repetição / iteração

while

while ( expressão ) instrução

Repetição com teste inicial do-while do instrução Repetição com teste final while ( expressão ) for for

Repetição com expressões inicial, de condição e de iteração

expressão ) ( expressão ; declaração expressão ; instrução , • Instrução do while

– Avalia depois de executar

• Instrução for

– A primeira expressão é avaliada uma vez no início

– Avalia a condição (a segunda expressão) antes de executar a instrução – A terceira expressão é avaliada (ou executada) no final de cada iteração

(11)

• Uma classe pode conter campos para armazenar informação • Cada campo tem um nome e um tipo

• Opcionalmente o campo pode ter uma expressão para definir o seu valor inicial. Caso contrário é iniciado com o valor por omissão.

• Campos estáticos pertencem à classe (só existe um) • Campos não estáticos pertencem a cada objeto

• Campos final têm um valor que não pode ser alterado (constantes), tendo obrigatoriamente a expressão de iniciação.

Definição de campos

campo Membro de uma classe para armazenar informaçãp static tipo nome = expressão ; , final visibilidade visibilidade public private . . .

(12)

CCISEL, 2014

• Uma classe pode conter métodos

• Cada método tem um nome, o tipo de valor retornado, os parâmetros a passar e o bloco de instruções a executar, quando chamado.

• Podem existir vários métodos com o mesmo nome.

• As instruções são executadas sequencialmente até ao final do método ou até uma instrução return

• Pode ser estático se for chamado a partir da classe (sem objeto) • O método main, chamado pela máquina virtual, é obrigatoriamente

estático, público e tem um parâmetro do tipo String[].

12 Programação

Definição de métodos

bloco

0..N Instruções

{

instrução

}

método Membro de uma classe com código a executar

static tipo nome

( tipo nome ) bloco

,

void

(13)

• O break termina o fluxo de execução da instrução switch ou de repetição onde está incluído, ou com o nome indicado.

– A execução continua na instrução seguinte

Instruções de quebra de fluxo

break ;

nome

break Termina o fluxo

de um ciclo ou um switch

return ;

expressão return Termina o método

continue ;

nome

continue Continua na próxima

iteração do ciclo

• O continue faz o fluxo de execução continuar no início do ciclo repetitivo onde está incluído.

– "Salta" as instruções até ao final do bloco.

– No while e no do while a execução continua avaliando novamente a expressão de condição.

– No for, a execução continua executando a expressão de iteração.

• O return termina o fluxo de execução do método onde está incluído, retornando o valor da avaliação da expressão.

– A execução continua na instrução seguinte à chamada – Se o tipo de retorno é void não existe expressão

(14)

CCISEL, 2014

• A primeira declaração de um ficheiro que define uma classe pública deve indicar o package a que pertence a classe

– A hierarquia de pastas no caminho do ficheiro deve corresponder à hierarquia de packages • Caso não exista esta declaração, a classe fica

no package anónimo e o ficheiro na pasta raiz

• Declarar uma variável de uma classe que pertence a um package: – Indicar o nome completo da classe

– Realizar um import especifico para essa classe ou um import para todas as classes do package

14 Programação

Declaração e utilização de Packages

package isel.poo; public class A { ... } isel/poo/A.java isel.poo.A var; import isel.poo.A; ...

A var; import isel.poo.*; ... A var; package package ; Declaração do package . nome

import Importação de classes

import ;

. *

Referências

Documentos relacionados

Portanto, o valor energético escrito no rótulo equivale a 586 kJ (quilojoule). a) Calcule, com base nos dados da tabela, o valor da variação de entalpia (ΔH), em kJ/mol, para

Dispõe sobre as orientações a respeito dos procedimentos a serem observados pela Pró- Reitoria de Extensão, Diretorias e Coordenações de Extensão dos campi, por

O conteúdo das notícias publicadas no portal institucional é de responsabilidade da Dicom e das Ascons, ou seja, dos servidores/comunicadores lotados nesse setor,

A concepção do Curso de Bacharelado em Administração Pública está voltada para a formação de egressos capazes de atuarem de forma eficiente e eficaz no contexto da gestão

Este Plano de Dados M2M se destina à prestação do Serviço Móvel Pessoal por meio de rede virtual (RV-SMP), exclusivamente para o tráfego de dados M2M (machine-to-machine), com o fim

KPMG International. KPMG International provides no client services. No member firm has any authority to obligate or bind KPMG International or any other member firm vis-à-vis

Diretoria de Tecnologia Educacional Editora executiva: Kelly Mayumi Ishida Coordenadora editorial: Ivonete Lucirio. Editores: Andre Jun, Felipe Jordani e Natália Coltri

 Não se pode usar uma variável ou expressão lógica como rótulo de caso (que vem após o case). É apenas permitido constantes do tipo int