Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo ao Java
Objectivos
Ser capaz de:
?
Identificar os elementos principais do Java Descrever a Java Virtual Machine (JVM) Comparar a utilizao do Java para a construo de applets e de aplicaes Identificar os componentes principais do Java Development Kit (JDK) Descrever as opes de instalao do Java (deployment)
MRSC, Programao em Comunicaes
O que o Java?
?
Concebido pela Sun para a electrnica de consumo, mas rapidamente alcanou a WWW Uma linguagem orientada por objectos e uma biblioteca de classes Utiliza uma mquina virtual para a execuo de programas
Orientado por objectos Interpretado e independente da plataforma Dinmico e distribudo Multithreaded Robustez e segurana
Independente da Plataforma
?
O cdigo Java armazenada num ficheiro .java Um programa .java compilada para ficheiros .class Bytecodes so interpretados em tempo de execuo
Compile (javac) movie.java JVM (java) movie.class executar programa
6
Verificador de Bytecode
Carregador de Classes
Interfaces especficas
Applets Java
?
A forma mais comum de utilizao do Java, inicialmente Vocacionada para utilizao em pginas HTML Pode incluir contedos activos (forms, audio, imagens, vdeo) Aparece num browser e pode comunicar com o servidor
Aplicaes Java
?
JVM
JVM
aplicao
Applet
10
O JVM class loader carrega todas as classes necessrias. O JVM verifier verifica os bytecodes ilegais. O gestor de memria da JVM liberta memria de volta ao sistema operativo.
11
Melhoram a performance So teis se os mesmos bytecodes forem executados repetidas vezes Traduz bytecodes para instrues nativas Optimizam cdigo repetitivo, tais como ciclos
12
Client
Application server
Data server
13
Resumo
?
O cdigo Java compilado em bytecodes independentes da plataforma. Os bytecodes so interpretados por uma JVM. As applets correm num browser no cliente. As aplicaes Java so executadas de forma autnoma tanto no cliente como no servidor.
14
15
Objectivos
Ser capaz de:
?
Identificar os elementos principais do Java Identificar a sntaxe bsica do Java Descrever ficheiros .java e .class
16
Tpicos
?
Componentes Java Convenes Classes, objectos e mtodos Utilizao de Javadoc Compilar e executar programas Java
17
Compilador (javac) Visualizador de applets (appletviewer) Interpretador de bytecode (java) Gerador de documentao (javadoc)
18
19
Comentrios
Implementao Documentao
Gerador de Documentao
20
Convenes de Nomes
As convenes incluem:
?
Nomes de ficheiros
Customer.java, RentalItem.java
Nomes de Classes
Customer, RentalItem, InventoryItem
Nomes de Mtodos
getCustomerName(), setRentalItemPrice()
21
Convenes de Nomes...
?
22
Definio de Classes
?
23
Definio de Classes...
public class Customer { // Instance variveis String customerName; String customerPostalCode; float customerAmountDue; // Instance mtodos float getAmountDue (String cust) { } } Declarao
Varivel de Instncia
Mtodo da Instncia
24
Definio de Mtodos
?
25
Definio de Mtodos
float getAmountDue (String cust) { // mtodo variveis int numberOfDays; float due; float lateCharge = 1.50; String customerName; // mtodo body numberOfDays = this.getOverDueDays(); due = numberOfDays * lateCharge; customerName = getCustomerName(cust); return due; } Declarao
Variveis de mtodo
26
Devem ser declaradas antes de ser utilizadas Uma declarao por linha No incio de um bloco de cdigo O bloco de cdigo define o mbito Inicializao
27
Variveis temporrias
28
Agrupar todas as declaraes de mtodos. Agrupar outros segmentos de cdigo relacionado entre si.
public class SayHello { public static void main(String[] args) { System.out.println("Hello world"); } }
29
As instrues terminam sempre com um ponto-evrgula (;) Instrues compostas so definidas dentro de chavetas { }. Utilizar chavetas para instrues de controlo.
30
31
Resumo
?
O JDK fornece as ferramentas Java essenciais. O JDK fornece um conjunto valioso de classes e mtodos pr-definidos. Os programas Java so constitudos por classes, objectos, e mtodos. A adopo de normas de programao facilita a leitura e reutilizao de cdigo.
32
Exemplos Prticos
?
Explorar um programa fonte em Java Inspeccionar classes, mtodos e variveis Compilar e executar uma aplicao
33
34
Objectivos
Ser capaz de:
?
Descrever os tipos de dados primitivos Declarar e inicializar variveis primitivas Utilizar operadores para manipular o valor de uma varivel primitiva
35
Tpicos
?
O Java oferece primitivas para os tipos de dados bsicos. As primitivas so a fundao para armazenar e utilizar informao. Declarar e inicializar primitivas a bse da construo de tipos definidos pelo utilizador.
36
Tpicos
?
Os operadores manipulam dados e objectos. Aceitam um ou mais argumentos e produzem um valor. Java oferece 44 operadores diferentes. Alguns operadores alteram o valor do operando.
37
Variveis
?
Uma varivel a unidade bsica de armazenamento. As variveis devem ser declaradas explicitamente. Cada varivel tem um tipo, um identificador, e um mbito. As variveis podem ser inicializadas.
Tipo int myAge; boolean isAMovie; float maxItemCost = 17.98;
38
Identifier
Nomes de Variveis
?
Os nomes das variveis devem comear por uma letra do alfabeto, um underscore, ou um $. Os outros caracteres podem incluir digitos. Deve-se utilizar nomes elucidativos para as variveis; por exemplo, customerFirstName, ageNextBirthday.
?
a itemCost item$Cost item_Cost _itemCost itemCost2 item#Cost item*Cost 2itemCost
MRSC, Programao em Comunicaes
item-Cost abstract
39
Palavras Reservadas
boolean byte char double float int long short void false null true abstract final native private protected public static synchronized transient volatile break case catch continue default do else finally for if return switch throw try while class extends implements interface throws import package instanceof new super this
40
Tipos de Variveis
?
41
char
true false
42
Declarao de Variveis
?
43
Declarao de Variveis
?
As variveis locais esto contidas apenas num mtodo ou bloco de cdigo. As variveis locais devem ser inicializadas antes de ser usadas.
class Rental { private int instVar; // instance varivel
public void addItem() { float itemCost = 3.50; // local varivel int numOfDays = 3; // local varivel } }
44
Literais Nmericos
0 1 42 -23795 02 077 0123 Literais Inteiros 0x0 0x2a 0X1FF 365L 077L 0x1000L 1.0 4.2 .47 1.22e19 4.61E-9 6.2f 6.21F (decimal) (octal) (hex) (long)
45
Literais no-Nmericos
Literais Booleanos true Literais Caracter Literais String false '\t' '\077'
"Hello, world\n"
46
47
Operadores
Cinco tipos de operadores:
?
48
Operador de Atribuio
?
A expresso da direita sempre avaliada antes da atribuio. As atribuies podem ser agrupadas:
var1 = var2 = var3 = 50;
49
Operadores Aritmticos
?
50
Operadores Aritmticos...
?
Valores byte, char, e short so promovidos a int antes da operao. Se algum argumento for long, o outro promovido a long, e o resultado long.
51
Converses e Casts
?
O Java converte automaticamente valores de um tipo numrico para outro tipo maior.
byte
short
int
long
52
Incrementar e Decrementar
?
53
Comparaes
?
int var1 = 7, var2 = 13; boolean res = true; res = (var1 == var2); res = (var2 > var1);
54
Operadores Lgicos
?
int var0 = 0, var1 = 1, var2 = 2; boolean res = true; res = (var2 > var1) & (var0 == 3); res = !res;
55
Atribuio Composta
?
O operador de atribuio pode ser combinado com qualquer operador binrio convencional:
double total=0, num = 1; double percentage = .50; total = total + num; // total is now total += num; total -= num; total *= percentage;
56
Precedncia de Operadores
Order 1 2 3 4 5 6 7 8 9 10 11 12 13 Operadores ++ -- + - ~ !(tipo) * / % + - + << >> >>> < > <= >= instanceof == != & ^ | && || ?: = op= Comments Unary operadores Multiply, divide, remainder Add, subtract, add string Shift (>>> is zero-fill shift) Relational, tipo compare Equality Bit/logical e Bit/logical exclusive OR Bit/logical inclusive OR Logical e Logical OR Conditional operador Assignment operadores Assoc. R L L L L L L L L L L R R
57
Precedncias
?
Operadores com a mesma precedncia so executados da esquerda para a direita (ver nota):
int var1 = 0; var1 = 12 - 6 + 3; // var1 now equals 9
58
Concatenao de String s
?
name = "Jane "; lastName = "Hathaway"; fullName; name + lastName; // name is now //"Jane Hathaway" // OR name += lastName; // same result fullName = name;
59
Resumo
?
O Java tem oito tipos de dados primitivos. Uma varivel deve ser declarada antes de ser usada. O Java dispe de um bom conjunto de operadores. Casting explcitos podem ser necessrios se utilizar tipos de dados menores do que int. Os operadores + e += podem ser usados para criar e concatenar strings.
60
Exerccio Prtico
?
Declarar e inicializar variveis Utilizar vrios operadores para calcular novos valores Mostrar os resultados no cran
61
62
Objectivos
Ser capaz de:
?
63
Tpicos
?
O cdigo por defeito executa sequencialmente. Cdigo mais complexo exige uma execuo condicional. Existem instrues que necessitam de ser executadas repetidamente. O Java dispe de mecanismos de controlo standard.
64
Seleco
Iterao
Transferncia
65
Agrupar instrues utilizando chavetas para formar uma instruo composta, i.e. um bloco. Cada bloco executado como uma nica instruo dentro da estrutura de controlo de fluxo.
{ boolean finished = true; System.out.println("i = " + i); i++; }
66
if ... else
Forma geral: if ( boolean_expr ) statement1; [else] statement2; if (i % 2 == 0) System.out.println("Even"); else System.out.println("Odd"); if (i % 2 == 0) { System.out.println(i); System.out.println(" is even"); }
MRSC, Programao em Comunicaes
Exemplos:
67
if...if...if...else if...else
if (speed >= 25) if (speed > 65) System.out.println("Speed over 65"); else System.out.println("Speed over 25"); else System.out.println("Speed under 25"); if (speed > 65) System.out.println("Speed over 65"); else if (speed >= 25) System.out.println("Speed over 25"); else System.out.println("Speed under 25");
68
Operador Condicional ( ? : )
?
uma alternativa til ao if else: Se boolean_expr=true, o resultado expr1, seno o resultado expr2:
int val1 = 120, val2 = 0; int highest; highest = (val1 > val2) ? 100 : 200; System.out.println("Highest value is " + highest);
69
70
switch...case
?
switch ( integer_expr ) { case constant_expr1: statement1; break; case constant_expr2: statement2; break; [default: statement3; break;] }
71
switch...case
?
As etiquetas de case devem ser constantes. Utilizar break para saltar fora do switch. Dar sempre uma alternativa default.
switch (choice) { case 37: System.out.println("Coffee?"); break; case 45: System.out.println("Tea?"); break; default: System.out.println("???"); break; }
MRSC, Programao em Comunicaes
72
Ciclos
?
73
while...
?
74
dowhile
?
75
for...
?
Exemplo:
for (i = 0; i < 10; i++) System.out.println(i);
76
for...
?
As partes de inicializao e iterao podem consistir de uma lista de expresses separadas por vrgulas:
for (int i = 0, j = 10; i < j; i++, j--) { System.out.println("i = " + i); System.out.println("j = " + j); }
77
78
break
?
Interrompe um ciclo ou uma instruo switch: Transfere o controlo para a primeira instruo depois do corpo do ciclo ou instruo switch Pode simplificar o cdigo
while (age <= 65) { balance = (balance+payment) * (1 + interest)); if (balance >= 250000) break; age++; }
79
continue
?
Apenas pode ser usado em ciclos Abandona a iterao em curso e salta para a prxima iterao do ciclo
for (int year = 2000; year < 2099; year++) { if ((year % 100 == 0) && (year % 400 != 0)) continue; if (year % 4 == 0) System.out.println(year); }
80
Pode ser usado para saltar fora de ciclos encaixados, ou continuar um ciclo exterior ao ciclo corrente
outer_loop: for (int i = 0; i < 10; i++) { for (int j = 0; j < 5; j++) { System.out.println(i, j); if (i + j > 7) break outer_loop; } }
MRSC, Programao em Comunicaes
81
Resumo
?
A intruo if...else a forma principal de implementar decises. Java tambm dispe de instruo switch. Java oferece trs instrues de ciclos:
while do while for
82
Exerccios Prticos
?
Realizar testes utilizando instrues if else Utilizar o operador condicional ternrio ?: Utilizar ciclos while e for paa realizar operaes iterativas Utilizar break para abandonar um ciclo Utilizar os operadores &&, ||, e ! Expresses booleanas
83
Fim
84