aula teÓrica 4 -...

23
AULA TEÓRICA 4 Tema 3. Linguagem de programação de alto nível Java LP Java. Estrutura de um programa em Java. Identificadores. Variáveis e constantes. Tipos de dados básicos (primitivos): representação de números inteiros e decimais; representação de valores lógicos. representação de caracteres. Classe String. Expressões. Operadores de incrementação e de decrementação unária de variáveis. Classe Math. Conversões do tipo Expressões lógicas 1

Upload: buingoc

Post on 11-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

AULA TEÓRICA 4

Tema 3. Linguagem de programação de alto nível Java Ø  LP Java. Estrutura de um programa em Java. Ø  Identificadores. Variáveis e constantes. Ø  Tipos de dados básicos (primitivos):

u  representação de números inteiros e decimais; u  representação de valores lógicos. u  representação de caracteres.

Ø  Classe String. Ø  Expressões. Ø  Operadores de incrementação e de decrementação unária de

variáveis. Ø  Classe Math. Ø  Conversões do tipo Ø  Expressões lógicas

1  

Page 2: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Linguagem de programação Java

q  foi criada nos anos 90 com por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems com objectivo de criar uma nova LP que pudesse ser executada em qualquer tipo do computador;

q  foi considerado um computador virtual que se imagina capaz de executar um código constituído por instruções simples. Este código é chamado por bytecode, pois é usado 1 byte para representar cada instrução;

q compilador de Java, ao contrário dos compiladores tradicionais, não vai gerar código executável, mas sim bytecode;

q é necessário que cada computador tenha um programa que possa interpretar e executar bytecode. Ao conjunto de todos os intérpretes disponíveis dá-se o nome de máquina virtual Java (JVM- Java Virtual Machine).

2  

Page 3: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Para criar programas em Java é necessário ter o Java Development Kit (JDK) instalado no computador. O JDK inclui diversas ferramentas úteis, como seja o compilador (chamado javac), o interprete de bytecode (chamado java) e um largo conjunto de classes já programadas com respectiva documentação. É comum a utilização de ambientes integrados de desenvolvimento que facilitam a utilização do JDK (tais como Gel, Eclipse, BlueJ, NetBeans, JBilder, etc.)

3  

Page 4: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Estrutura de um programa em Java Um programa em Java é um conjunto de uma ou mais classes, uma das quais será a principal e deve ter o mesmo nome que o ficheiro.

Uma classe pode ser vista como um conjunto de variáveis e subprogramas(métodos).

Métodos são blocos de instruções que contêm uma identificação, realizam determinada tarefa e podem retornar algum tipo de informação. Método main()é o método principal.

Três tipos de componentes principais constituem um programa: v Declarações , que reservam a memór ia para o

armazenamento da informação envolvida. v  Instruções, que definem as acções e decisões a tomarem. v Comentários que são úteis para os humanos, mas ignorados

pelo computador. 4  

Page 5: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

O conjunto de caracteres do Java A sintaxe do Java inclui palavras reservadas, símbolos, identificadores e valores. Utilizam-se: Ø  as letras de A a Z (maiúsculas e minúsculas), Ø  os dígitos 0 a 9, Ø  os símbolos especiais:

+ . < ( - : <= ) * ; > [ / ‘ >= ] % , = = { = ^ != }

q palavras reservadas que têm em Java um significado padrão e predefinido. Por exemplo, while, if e new são instruções e class, int indicam tipos de informação declarada. 5  

Page 6: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Identificadores  Um identificador é um nome que é dado a um elemento do programa, tal como uma constante, variável, subprograma ou classe.

Os identificadores são compostos de letras (somente da língua inglesa), dígitos, caracteres _ e $ em qualquer ordem, desde que o primeiro caracter não seja um digito.

O Java distingue entre maiúsculas e minúsculas, ou seja, Max, max e MAX são considerados identificadores diferentes.

É comum usar certas convenções para os identificadores: •  o nome de uma classe começa por maiúscula (Poligono); •  o nome de um subprograma(método) começa por minúscula

(por ex. main()); •  o nome de uma variável começa por minúscula (cateto1); •  o nome de uma constante é todo em maiúsculas (TAXA).

 6  

Page 7: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

M Não pode usar palavras reservadas como identificadores x1, 2x1, soma, a_b, $dollar, máximo, teste 1

Variáveis

Uma variavel representa uma localização em memória do computador que tem um nome atribuído pelo programador e que vai servir para guardar informação de um determinado tipo.

O valor de uma variável pode variar durante a execução de um programa.

A declaração de variáveis é obrigatória. A sintaxe da declaração de variáveis é a seguinte:                  tipo_dado nome_da_variavel;  ou      tipo_dado nome_da_variavel=valor_inicial; Segunda forma, alem de declarar, inicializa a variável com valor fornecido.

7  

Page 8: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Exemplos:  int numConta; int valMax = 1; double preco, total;

 

Constantes    Constantes são os dados cujos valores se mantém inalterados ao longo do programa. A sintaxe de declaração de uma constante é a seguinte:     final tipo_de_dado NOME_DE_CONSTANTE = valor;    Exemplo:  final int MAX_STUDENTS = 25;

M Não pode mudar o valor da constante após a sua declaração!

8  

Page 9: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Tipos de dados básicos (primitivos)

Um tipo de dados é definido pela gama de valores que pode representar e pelas operações que sobre eles se podem efectuar.

Java permite tratar 8 tipos de dados predefinidos:

–  boolean, –  char, –  byte, –  short, –  int, –  long, –  float, –  double.

9  

Page 10: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

 

Representação de números inteiros A representação de números inteiros é assegurada pelos seguintes tipos: Tipo Memória Menor valor Maior valor

ocupada byte 8 bits -128 127 short 16 bits -32 768 32 767 int 32 bits -2 147 483 648 (-231) 2 147 483 647 (231-1) long 64 bits -263 (263-1) Para alem de representação decimal, os números podem também ser representados nas bases octal e hexadecimal. Para isso usam-se prefixos: 0 – para octal e 0x para hexadecimal.

Por exemplo: int peso = 0x12a;

10  

Page 11: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

 

Representação de números decimais A representação de números decimais é assegurada pelos seguintes tipos:

Tipo Memória Menor valor Maior valor ocupada

float                32 bits -3.4 x 1038 3.4 x 1038 double      64 bits -1.7 x 10308 1.7 x 10308 Os valores reais podem ser representados usando a notação decimal (por ex. 34.054) ou a notação exponencial (por ex. 2.5E-6 que representa o número 2,5 x 10-6).

Em qualquer dos casos, o número pode ser seguido das letras f (ou F) ou d (ou D) indicando que se pretende o seu armazenamento como float ou como double. A ausência de indicação implica que o número seja considerado como double.

11  

Page 12: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Representação de valores lógicos

O tipo boolean é um tipo de dados para guardar valores lógicos, nomeadamente true (verdade) e false (falso).

Tipo Memória ocupada Valores boolean 1 bit true  ou  false

 Instrução de atribuição

A atribuição permite armazenar um valor numa variável. Esse valor pode ser fornecido directamente ou resultar do cálculo de uma expressão.

int alunos = 80; alunos= 2 * alunos;

12  

Page 13: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

 

Representação de caracteres O tipo char é usado para guardar caracteres individuais que são representados internamente no computador pelos seus códigos ASCII. A declaração de variáveis deste tipo é feita da seguinte forma: char letra; ou char letra = 'a';

O uso de caracteres é feito entre apóstrofos ' '. Por exemplo: letra = 'M';

Uma vez que as variáveis do tipo char armazenam códigos, que são números, é possível fazer algum tipo de aritmética com estes var iáveis , nomeadamente incrementações e decrementações.

Tipo Memória ocupada Valores char   16 bits Qualquer caracter pertencente ao Unicode

13  

Page 14: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

14  

!

Page 15: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Classe String A classe String é uma das classes predefinidas da Java e serve para manipular cadeias de caracteres.

Declaração de uma variável do tipo String Para criar declarar uma variável da classe String pode usar uma instrução na forma abreviada: String frase = "Programar aprende-se programando";  

Métodos da classe String  Existem vários métodos que permitam manipular dados do tipo String e que vão ser aprendidos mais tarde.

15  

Page 16: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Expressões Uma expressão é uma sequência de operadores e de valores. A linguagem Java tem definido um conjunto de operadores, aritméticos e lógicos, que permitem a construção de expressões. Operador Prioridade Operação * 1 Multiplicação / 1 Divisão % 1 Resto da divisão + 2 Adição - 2 Subtração

M Operador divisão apresenta comportamentos diferentes em função do tipo de operandos a que é aplicado. No caso de algum dos operandos ser real (float ou double), o resultado será também um número real. Por exemplo: double x = 10/4.0; //x ← 2.5 16  

Page 17: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

M No entanto, se ambos os operadores forem inteiros, o resultado será também um inteiro, pelo que a parte fraccionária do resultado é desprezada. Assim, int y = 10/4; //y ← 2

O operador % permite calcular o resto de uma divisão. Por exemplo:

int z = 13 % 4; //z ← 1

Ainda que este operador seja geralmente mais útil para calcular o resto de divisões inteiras, o Java permite também a sua utilização com operandos reais. Por exemplo:

double f = 8.6 % 2.0; //f ← 0.6

Operadores de incrementação e de decrementação unária de variáveis

++ (soma 1 ao seu operando) -- (subtrai 1 ao seu operando) 17  

Page 18: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Exemplo: conta++; //pós-incremento

conta--; //pós-decremento

ou ainda: ++conta; //pré-incremento

--conta; //pre-decrimento

A distinção entre as duas formas destes operadores, antes ou depois do operando, só é relevante quando fazem parte de uma expressão maior. Por exemplo, supondo que a variável num tem o valor 7, a expressão x = ++num; incrementa o valor de num (para 8) e depois atribui-o a x (por isso x passa a ter o valor 8).

Se for x = num++; primeiro é feita a atribuição de num a x (x fica com o valor 7) e só depois é que é feita a incrementação de num.

18  

Page 19: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Java fornece vários operadores de atribuição (+=, -=, *=, /=) para abreviar expressões de atribuição. Por exemplo, podemos abreviar a instrução

c = c + 3; como c += 3;

O operador += adiciona o valor da expressão à direita do operador ao valor da variável à esquerda do operador, e armazena o resultado na variável à esquerda do operador.

19  

Page 20: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Classe Math

O JDK (Java Development Kit) inclui um largo conjunto de classes e métodos que podem ser utilizados para variados fins. Os métodos pré-programados da classe Math permitem realizar certos cálculos matemáticos comuns. Por exemplo, Math.random() gere um número aleatório entre 0 e 1, Math.sin(a) calcula o seno de um ângulo. É aconselhável a consulta da documentação do JDK para obter uma lista completa de metodos existentes no Math. . . . .

int base = 3, expoente = 4;

double resultado = Math.pow(base,expoente); . . .

20  

Page 21: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Conversões de tipo O tipo do resultado de uma expressão aritmética depende do tipo dos seus operandos. Se todos eles forem do mesmo tipo, o resultado será também desse tipo. No caso contrário devem ser feitas as conversões de tipo. Algumas são feitas automaticamente e de modo a que não haja perda de informação, pelo que nem todas as transformações são possíveis.

A cadeia de conversão automática do compilador é a seguinte:

byte > short > int > long > float > double

int var_int = 10, result_int; double var_double = 5.9, result_double; result_double = var_int + var_double; result_int = var_int + var_double;

result_int = (int) (var_int + var_double);

21  

Page 22: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Expressões lógicas Existem tambem operadores relacionais e operadores lógicos. Estes operadores permitem a construção de expressões que têm como resultado um valor lógico, true ou false.

Operadores relacionais: >, <, >=, <=, == (igual a), != (diferente de) Operadores lógicos: && (conjunção), || (disjunção), ! (negação) O operador && tem dois operandos e devolve true apenas se ambos os operadores forem true, caso contrário devolve false.

A operação de negação recebe apenas um operando lógico e inverte o seu valor. É comum que os operandos utilizados pelos operadores lógicos resultem de expressões que envolvem operadores relacionais. Qual é o resultado de expressão (10 > 5 && 4 != 3) ?

A B A && B A | | B F F F F F T F T T F F T T T T T

22  

Page 23: AULA TEÓRICA 4 - programacao-lee.weebly.comprogramacao-lee.weebly.com/.../sem04a_t3_introd_java_var_const.pdf · # palavras reservadas que têm em Java um significado padrão e predefinido

Referência bibliográfica:

António José Mendes; Maria José Marcelino. “Fundamentos de programação em Java 2”. FCA. 2002.

Carriço, José; Carriço, António. "Computadores, Tecnologias e sistemas de Informação- O Núcleo de Sistema“. Centro de Tecnologias de Informação Ltd. Lisboa. 1997

Carriço, José; Carriço, António. "Computadores, Tecnologias e sistemas de Informação- Periféricos, Internet e multimédia“. Centro de Tecnologias de Informação Ltd. Lisboa. 1997.

Carriço, José; Carriço, António. "Computadores, Tecnologias e sistemas de Informação- Tecnologias de Software“. Centro de Tecnologias de Informação Ltd. Lisboa.1997.

Elliot Koffman; Ursula Wolz. “Problem Solving with Java”. 1999.

John R. Hubbard. “Theory and problems of programming with Java”. Schaum’s Outline series. McGraw-Hill.

H. Deitel; P. Deitel. “Java, como programar”. 4 edição. 2003. Bookman.

Rui Rossi dos Santos. “Programando em Java 2– Teoria e aplicações”. Axcel Books. 2004

23