A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 1 A Tecnologia Java

2 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.

3 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).

4 4 Arquitectura Java Write once, Run anywhere !

5 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.

6 6 Arquitectura JAVA (cont.) Orientada a Objectos: Linguagem Orientada a Objectos pura (quase…). Multitarefa Permite fazer coisas diferentes ao mesmo tempo (Threads)

7 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

8 8

9 9 Linguagem Java

10 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

11 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

12 12 Definição da linguagem

13 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

14 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 >>, << & | ^

15 15 Precedência e Associatividade dos Operadores PrioridadeOperadorAssociatividade 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 Baixa= += -= *= /= %=da direita para a esquerda

16 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 ] … ];

17 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

18 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

19 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()Teclado int i; i = Teclado.readInteger()Teclado

20 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;

21 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);

22 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; }

23 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;

24 24 Estruturas de Controlo (cont.) while while ( condição_de_iteração ) { instruções } int a = 0; int i = 0; while (i <= 10) { a = a + i; i++; }

25 25 Estruturas de Controlo (cont.) do/while do { instruções } while ( condição_de_iteração ) ; int a = 0; int i = 0; do { a = a + i; i++; } while (i < 10);

26 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.

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

28 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

29 29 Referencias

30 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 valores Todas as variaveis do tipo Object contêm referência Todas as variaveis de tipos primitivos contêm valores Todas as variaveis do tipo Object contêm referência

31 31 Garbage Collector Em C++: // Cria um objecto TObject *Objecto = new TObject; … // Liberta o espaço ocupado em memória // ocupado por esse objecto delete Objecto; Em Java: // Cria um objecto Object Objecto = new Object(); … Chamar o Garbage Collector: System.gc();

32 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(); } 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

33 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] nome_método ( ) { instruções; } NOTA: Todos os parâmetros do tipo básico são passados por valor Todos os objectos são passados com referencia

34 34 Strings

35 35 Strings Classe String Objectos imutaveis String s1 = uma string String s2 = Outra string String s3 =s2 Uma string s1 Outra string s2s3

36 36 Strings - concatenação Operador de concatenação + e += String s1 = uma string String s2 = Outra string String s3 =s2 S2 += concatenada + ! Uma string s1 Outra string s2s3 Outra string Concatenada! s2

37 37 Conversão entre numeros e string Para String Classe StringValueOf(…) 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");

38 38 Métodos de String lenght() equals() equalsToIgnoreCase compareTo compareToIgnoreCase indexOf hashCode() substring() startsWith() endsWith() toUpperCase() toLowerCase() replace() concat charAt() trim String.java

39 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

40 40 Arrays

41 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 000000000 123 v2

42 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

43 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;

44 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

45 45 Exercício Construa um programa que calcule imprima uma chave de totoloto.


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google