1 a tecnologia java. 2 introdução à linguagem origens do java projecto green, programação para...

45
1 A Tecnologia Java

Upload: internet

Post on 18-Apr-2015

108 views

Category:

Documents


2 download

TRANSCRIPT

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.