1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para...

45
1 A Tecnologia Java

Transcript of 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para...

Page 1: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

1

A Tecnologia Java

Page 2: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

2

Introdução à linguagem Origens do JAVA

Projecto “Green”, programação para a electrónica de Consumo (Dezembro 1990):

Pouca memória disponível Processadores fracos Arquitecturas muito diferentes Baixos requisitos computacionais

Primeira abordagem: Em C++ a linguagem era inadequada demasiada complexa não era multi-plataforma

Segunda abordagem: Criar uma nova linguagem multi-plataforma com o melhor do C++, mas mais simples.

Nasceu o OAK.

Page 3: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

3

Introdução à Linguagem (cont.)

O projecto foi um fracasso, a electrónica de consumo não precisava de algo tão sofisticado.

Primeiros anos da WWW Páginas estáticas todos os programas eram corridos no lado do servidor.

Massificação da WWW correr os programas do lado do cliente Problemas:

Diversos tipos de máquinas ligados á rede Problemas de segurança Independente da plataforma

A Sun viu a oportunidade e adaptou o OAK à WWW Surgiu assim o JAVA (1995).

Page 4: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

4

Arquitectura Java

Write once,Run anywhere !

Page 5: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

5

Arquitectura JAVA (cont.) Independente da arquitectura computacional

portável Simples e Poderosa:

Derivada do C++ Segura:

Não existem chamadas directas ao SO para esse feito usa-se o Java Native Interface

(JNI) Não existem ponteiros explícitos

Robusta: Gestão automática de memoria.

Page 6: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

6

Arquitectura JAVA (cont.)

Orientada a Objectos: Linguagem Orientada a Objectos pura

(quase…).

Multitarefa Permite fazer coisas diferentes ao

mesmo tempo (Threads)

Page 7: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

7

Plataformas JAVA

J2ME – Java 2 Micro Edition Java para Paltops e Telemóveis

J2SE – Java 2 Standard Edition Java para desktops / workstations

J2EE - Java 2 Enterprise Edition Java para servidores

Page 8: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

8

Page 9: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

9

Linguagem Java

Page 10: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

10

Hello World

public class HelloWorld {public static void main(String[] args) {

System.out.println("Hello World");}

}

public class HelloWorld {public static void main(String[] args) {

System.out.println("Hello World");}

}

Todo o código é escrito dentro de classes Class HelloWorld

Uma Classe Executável (Main Class) tem o método public static void main(String[] args)

System.out.println Escrita de mensagens no monitor

Page 11: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

11

Executar um programa

Compilar o programa Java compiler (javac)

Javac HelloWorld.java HelloWorld.class

Correr o programa Java Virtual Machine (java)

Java HelloWorld “ola mundo”

Page 12: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

12

Definição da linguagem

Page 13: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

13

Tipos de dados básicos Números Inteiros:

byte – 8 bits, 128 a 127

short – 16 bits -32.768 a 32.767

int – 32 bits -2.147.483.648 a 2.147.483.647

long – 64 bits, -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807

Números Reais: float – 32 bits

-3.40292347E+38 a +3.40292347E+38 double – 64 bits

-1.79769313486231570E+308 a +1.79769313486231570E+308 Caracteres:

char – 16 bits '\u0000' a '\uFFFF' (Valores em unicode)

Booleanos: boolean – 1 bit

true ou false

Page 14: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

14

Operadores Aritméticos:

+ Adição - Subtracção * Multiplicação / Divisão % Resto da Divisão

Atribuição: = Atribuição += , -= , *= , /= , %=

Incremento e Decremento:

++ , --

Comparação: == igualdade != diferença < menor que > maior que <= menor ou igual >= maior ou igual

Lógicos: && ( e ) || ( ou ) ! (não)

Bit a bit >> , << & | ^

Page 15: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

15

Precedência e Associatividade dos OperadoresPrioridade

Operador Associatividade

Alta ( ) da esquerda para a direita

++ -- + - ! unários; da direita para a esquerda

* / % da esquerda para a direita

+ - da esquerda para a direita

< <= > >= da esquerda para a direita

== != da esquerda para a direita

& da esquerda para a direita

^ da esquerda para a direita

| da esquerda para a direita

&& da esquerda para a direita

|| da esquerda para a direita

Baixa = += -= *= /= %=

da direita para a esquerda

Page 16: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

16

Símbolos – declaração e inicialização Exemplos de declarações de variáveis:

int x; int x = 10; int x = 20, y, z = 30; int a = x+y; char um = ‘1’; char c = ‘A’; char newline = ‘\n’; boolean fim; boolean fechado = true; long diametro; long raio = -1.7E+5 double j = .000000123 double pi = 3.141559273269

Caso Geral id_tipo id_variavel [ = valor ]; id_tipo id_variavel [ = valor ] , [id_variavel [ = valor ] … ];

Page 17: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

17

Simbolos (cont.) Constantes:

final id_tipo id_variavel = valor [, id_variavel [ = valor ] … ];NOTA: As constantes têm de ser inicializadas quando são declaradas final double PI = 3.14;

Conversões entre tipos (Casting):int x = 12;double d;d = (double) x; // d = 12.0

double x = 12;int i;i = (int) x; // i = 12

double x = 12.5;int i;i = (int) x; // i = 12

char c1 = ‘a’c1 = (char) ((int) c1 + 1) // c1 = ‘b’

Page 18: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

18

Funções matemáticas

Biblioteca Java.lang.Math

double s = java.lang.math.sin(3.14) Seno de PI

double r = java.lang.math.random() Aleatorio ente 0..1

Page 19: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

19

Input / output Output

System.out.println(“mensagem”) System.out.print(“mensagem”) JOptionPane.showMessageDialog(null,"Este é um diálogo

simples"); Input

System.in.read(); JOptionPane.showInputDialog("Digite o seu nome"); Teclado.java

readInteger() readLong() readDouble() readFloat() readString();

int i;i = Teclado.readInteger()

int i;i = Teclado.readInteger()

Page 20: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

20

Comentários Comentar uma linha de código: //

int x;//int x = 10; int x = 20, y, z = 30;int a = x+y;

Comentar um bloco de código: /* */int x;/*int x = 10; int x = 20, y, z = 30;*/int a = x+y;

Page 21: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

21

Estruturas de Controlo

Condicionais: if/else

if ( expressão booleana) instruções; [else instruções;]

if (numer %2 == 0) System.out.println(“numero par”);else System.out.println(“numero impar”);

Page 22: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

22

Estruturas de Controlo (cont.) switch

switch (expressão inteira) { case valor_1: instruções;

break; case valor_2: instruções;

break; case valor_3: instruções;

break; … case valor_n: instruções;

break; default: instruções;};

switch (mes) { case 2: dias = 28; break; case 4: case 6: case 9: case 11: dias = 30; break; default: dias = 31;}

Page 23: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

23

Estruturas de Controlo (cont.)

Repetitivas: for ( inicialização; condição_de_saída;

iteração ) instruções

int a = 0;for (int i = 0; i <= 10; i++) a = a + i;

Page 24: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

24

Estruturas de Controlo (cont.)

whilewhile ( condição_de_iteração ) { instruções}

int a = 0;int i = 0;while (i <= 10) { a = a + i; i++;}

Page 25: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

25

Estruturas de Controlo (cont.)

do/whiledo { instruções } while ( condição_de_iteração ) ;

int a = 0;int i = 0;do { a = a + i; i++;} while (i < 10);

Page 26: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

26

Estruturas de Controlo (cont.) break/continue

A instrução break força a saída do ciclo.

A instrução continue avança para a proxima iteração do cliclo.

Page 27: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

27

Estruturas de Controlo (cont.)

int i = 0;While (true) { i++; if (i % 2 == 0 ) continue; if (i > 10) break; System.out.print(i);}

Page 28: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

28

Exercício

Construa um programa que imprima seis números inteiros, aleatórios entre 1 e 49.

Construa um programa que solicite ao utilizador dois números inteiros, um operador e apresente o resultado do operador sobre os dois números

Page 29: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

29

Referencias

Page 30: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

30

Referencia e objectos Objectos

(todas os simbolos que não são do tipo básico) Exemplo

Point p1; p1 = new Point(); Point P2; P2 = p1; Point p3 = new Point(1,2);

Operadores new = == !=

p1

0,0

p2

1,2

p3

Todas as variaveis de tipos primitivos contêm valoresTodas as variaveis do tipo “Object” contêm referência

Todas as variaveis de tipos primitivos contêm valoresTodas as variaveis do tipo “Object” contêm referência

Page 31: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

31

Garbage Collector Em C++:

// Cria um objectoTObject *Objecto = new TObject;…// Liberta o espaço ocupado em memória// ocupado por esse objectodelete Objecto;

Em Java:// Cria um objectoObject Objecto = new Object();…

Chamar o Garbage Collector:System.gc();

Page 32: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

32

Garbage Collector (Cont.)

public void Cria() { Object Objecto1 = new Object(); Object Objecto2 = new Object(); Object Objecto3 = new Object();}

public void Funcao() { Cria(); System.gc();}

Objecto1

Objecto2

Objecto3

Objecto1

Objecto2

Objecto3

A linguagem Java possui recolha automática de Lixo

A linguagem Java possui recolha automática de Lixo

System.gc() Forçar a recolha de Lixo

System.gc() Forçar a recolha de Lixo

Page 33: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

33

Métodos

public class HelloWorld { public static void mostraMensagem(String s) { System.out.println(s) } public static int soma(int n1, int n2) { int n = n1+n2; return n; } public static void main(String[] args) { mostraMensagem ("Hello Word"); System.out.println(soma(2,3));

}}

public [static] <tipo_retorno> nome_método ( <lista_parametros> ) { instruções;}

NOTA:

• Todos os parâmetros do tipo básico são passados por valor

•Todos os objectos são passados com referencia

Page 34: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

34

Strings

Page 35: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

35

Strings

Classe String Objectos imutaveis

String s1 = “uma string” String s2 = “Outra string” String s3 =s2

Uma strings1 Outra strings2 s3

Page 36: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

36

Strings - concatenação Operador de concatenação

+ e += String s1 = “uma string” String s2 = “Outra string” String s3 =s2 S2 += “ concatenada” + “!”

Uma strings1 Outra strings2 s3

Outra string Concatenada!s2

Page 37: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

37

Conversão entre numeros e string

Para String Classe String ValueOf(…)

String s = String.valueOf(10); Expressões que calculam Strings

String s = 2 + “” String s = 2 + 3 + “!”

De String Classe Integer

int i = Integer.parseInt("2"); Classe Double

double i = Double.parseDouble(“1.7");

Page 38: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

38

Métodos de String lenght() equals() equalsToIgnoreCase compareTo compareToIgnoreCase indexOf

hashCode() 

substring() startsWith() endsWith() toUpperCase() toLowerCase() replace() concat charAt() trim

String.java

Page 39: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

39

Exercício Construa um programa que solicite o nome

e o apelido de uma pessoa e de seguida escreva o nome completo de forma invertida.

Construa uma função que transforme uma string para minúsculas utilizando o alfabeto português.

Construa um programa que solicite ao utilizador um número real, uma função apresente o resultado da função sobre o numero

Page 40: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

40

Arrays

Page 41: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

41

Arrays São objectos

Declaração int [] v1

Construção v1 = new int[9];

Inicialização Int [] v2 = { 1,2,3,4};

Método lenght() Retorna a dimensão do array

Acesso indexado V[0] = 10

v1

0 0 0 0 0 0 0 0 0

1 2 3

v2

Page 42: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

42

Arrays Arrays Unidimensionais int[] lista = {1, 2, 3, 4}; lista[3] = lista[1]; // {1, 2, 3, 1}

int lista[] = new int[4]; lista[0] = 1; lista[1] = 2;

int lista[4]; // erro int lista[4] = {1, 2, 3, 4}; // erro

int lista[]; lista[0] = 1; // erro

Page 43: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

43

Arrays (cont.) Arrays Bidimensionais (matrizes) char galo[][]={{‘ ’,‘ ’,‘ ’}, {‘ ’,‘ ’,‘ ’}, {‘ ’,‘ ’,‘ ’}}; galo[1][1]=‘X’; // {{‘ ’,‘ ’,‘ ’}, // {‘ ’,‘X’,‘ ’}, // {‘ ’,‘ ’,‘ ’}}

galo[0][0]=‘O’; // {{‘O’,‘ ’,‘ ’}, {‘ ’,‘X’,‘ ’}, {‘ ’,‘ ’,‘ ’}}

Arrays de dimensão n int array[][][]…[n]= new int[10][10][10]…[10];array[1][3][2]…[6] = 1;

Page 44: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

44

Arrays (cont.)

Calcular o tamanho de um array;

int a[] = new int[4];

System.out.println(a.length); // mostra 4

int a[][] = new int[4][2];

System.out.println(a.length); // mostra 4

System.out.println(a[1].length); // mostra 2

Page 45: 1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.

45

Exercício

Construa um programa que calcule imprima uma chave de totoloto.