Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais...
Transcript of Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais...
![Page 1: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/1.jpg)
Java Introdução (c)AB,2000 1
JAVA
Linguagem orientada por objectos (similar ao C++ mas mais simples)
Utilizada para desenvolvimento de aplicações stand-alone,applets,…
Desenvolvida pela Sun Microsystems
A Sun desenvolveu um browser específico para Java: HotJava
O Netscape Navigator 2.0 passou a suportar Java (outros browsers passaram de igual modo a suportar Java)
![Page 2: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/2.jpg)
Java Introdução (c)AB,2000 2
JAVAAmbientes de desenvolvimento
Java Development Kit (JDK) - SUNDesenvolvido pela SUNContém (entre outros):
Bibliotecas de classes pré-definidas (JFC - Java Foundation Classes)Compilador (javac)Interpretador (java)Ferramenta de documentação (javadoc)
Visual J++ (Microsoft) Forte/NetBeans (Sun)Jbuilder (Borland)Visual Cafe (Symantec)
Exemplos
![Page 3: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/3.jpg)
Java Introdução (c)AB,2000 3
JAVA
Aplicação Java que pode ser incorporada em páginas HTML
A utilização de uma applet num ficheiro HTML é efectuadaatravés da marca <APPLET>
Nota: no HTML 4.0 a marca <APPLET> está a ser substituídapela marca <OBJECT> que serve para qualquer objecto. Osparâmetros a usar são os mesmos, no entanto não existeuma grande generalização a nível de programação paraconcretizar esta nova recomendação...
Applet
![Page 4: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/4.jpg)
Java Introdução (c)AB,2000 4
JAVA
A utilização de uma applet num ficheiro HTML é efectuadaatravés da marca <APPLET>
Exemplo:
<APPLET CODE=“Exemplo.class” WIDTH=100 HEIGHT=50></APPLET>
Applet
![Page 5: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/5.jpg)
Java Introdução (c)AB,2000 5
JAVA<APPLET>
Atributos obrigatórios
CODE, nome do ficheiro que contém a classe principal da appletWIDTH, largura inicial da applet em pixeisHEIGHT, altura inicial da applet em pixeis
Atributos opcionaisCODEBASE, define o URL da applet. Se for omitido é considerado o URL da página em que a applet for chamadaNAME, nome lógico da applet. Pode ser utilizado por outras applets da mesma página para a localizarALIGN, alinhamento da appletVSPACE, espaço vertical à volta da appletHSPACE, espaço horizontal à volta da applet
Applet
![Page 6: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/6.jpg)
Java Introdução (c)AB,2000 6
JAVA
Parâmetros adicionais da applet delimitados por uma marca<PARAM>
NAME, especifica um nome de um determinado atributoVALUE, valor correspondente para o atributo especificado
<APPLET CODE=“Exemplo.class” WIDTH=100 HEIGHT=50><PARAM NAME=texto VALUE=“linha de texto”></APPLET>
Exemplo:
Applet
![Page 7: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/7.jpg)
Java Introdução (c)AB,2000 7
JAVAApplet
Ciclo de vida das applets
init start stop destroy
A appleté criada
A página éacedida
Regressoà página
Abandonoda página
Os recursos da appletsão libertados
![Page 8: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/8.jpg)
Java Introdução (c)AB,2000 8
JAVAApplet
Uma applet é uma subclasse da classe Applet em que se podem redefinirmétodos, que são invocados automaticamente pelo browser WWW
init () - Inicializa a applet (load da página)
start () - Arranca a execução da applet (load/entrar na página, por back, forward ou hyperlink)
stop () - Pára a execução (sair da página, minimizar browser)
destroy () - Destrói a applet (sair do browser)
![Page 9: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/9.jpg)
Java Introdução (c)AB,2000 9
JAVA
Ficheiros .java Ficheiros de códigode byte .class
Máquina Virtual JAVA(Ex:browser que compreende JAVA)
código-fonte
Máquina Virtual JAVA
![Page 10: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/10.jpg)
Java Introdução (c)AB,2000 10
JAVAMáquina Virtual Java (JVM)
Independência da máquina Emuladores diferentes de máquinas virtuais Java em função da plataforma em uso
Segurança Código java é executado dentro de máquinas virtuais java que verificam o comportamento do programa
Tamanho reduzido do código JVMs têm bibliotecas de funções incorporadas. As funções são chamadas apenas quando necessário em vez de estarem ligadas aos programas, logo, redução de tempos de transferência...
Vantagens
![Page 11: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/11.jpg)
Java Introdução (c)AB,2000 11
JAVA
Desvantagem : decréscimo de desempenho
Compilação em tempo real
Programas em código de byte Java não são executados tãodepressa como os programas em código nativo normal (mecanismos Just In Time compilation tentam acelerar o processo)
A compliação em tempo real considera os códigos de byte Javacomo linguagem de código-fonte que é compilada comoprograma para a linguagem da máquina local
Máquina Virtual Java (JVM)
![Page 12: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/12.jpg)
Java Introdução (c)AB,2000 12
Programação JAVAPalavras reservadas de Java
abstractbooleanbreakbytecasecatchcharclassconstcontinue
defaultdodoubleelseextendsfalsefinalfinallyfloatfor
gotoifimplementsimportinstanceofintinterfacelongnativenew
nullpackageprivateprotectedpublicreturnshortstaticsuperswitch
synchronizedthisthrowthrowstransienttruetryvoidvolatilewhile
![Page 13: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/13.jpg)
Java Introdução (c)AB,2000 13
Programação JAVAComentários
/* zona de texto
comentada…. */
int inteiro; // comentário na linha
ou
![Page 14: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/14.jpg)
Java Introdução (c)AB,2000 14
Programação JAVADeclaração de variáveis
Variáveis
Locais - conhecidas apenas dentro da função que as declara
Globais - conhecidas por várias funções (ex: atributos de classe)
![Page 15: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/15.jpg)
Java Introdução (c)AB,2000 15
Programação JAVADeclaração de variáveis
Podem aparecer em qualquer ponto da função
A declaração consiste num tipo, nome da variável e opcionalmente, do operador de atribuição (=) e deuma expressão que representa o valor inicial da variável
Exemplo:
int inteiro;int outroInteiro = 40;
Nota: instruções em Java terminam com ponto e vírgula (;)
![Page 16: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/16.jpg)
Java Introdução (c)AB,2000 16
Programação JAVADeclaração de variáveis
Tipos de dados intrínsecos
Tipode dado
booleanbytecharshortintlongfloatdouble
Tamanho(bits)
8161632643264
Valorpré-definido
false0‘x0’0000,0F0,0D
Observações
Pode tomar valores true ou falseNúmero inteiro entre -128 e 127Tipo caracter, norma Unicode 16 bitsNúmero inteiro entre -32768 e 32767Número inteiroNúmero inteiroNúmero real (vírgula flutuante)Número real (vírgula flutuante)
![Page 17: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/17.jpg)
Java Introdução (c)AB,2000 17
Programação JAVATipos de dados intrínsecos
Todos os tipos numéricos têm sinal
O Java não suporta inteiros numéricos sem sinal
Se a variável não for inicializada pelo programador é-lhe atribuído um valor pré-definido
Os caracteres em Java ocupam 16 bits e são sempre consideradoscomo sendo Unicode
Nota: O ASCII é um subconjunto do Unicode. Os primeiros 128 caracteres são os mesmos que os do ASCII, depois o Unicode associa outros valores aos caracteres acentuados e outros
![Page 18: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/18.jpg)
Java Introdução (c)AB,2000 18
Programação JAVA
Exemplos de utilização:
boolean resposta = true;char c = ‘A’;byte b = 80;short s = -12010;int i = 110412;long l = 2000000000;float f = 2.23;double d = 2.5e10;
Tipos de dados intrínsecos
![Page 19: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/19.jpg)
Java Introdução (c)AB,2000 19
Programação JAVACaracteres literais especiais
Nova LinhaTabulaçãoApagar para trásRegressar ao início da linhaNova páginaApóstrofoAspasBarra Invertida
\n\t\b\r\f\’\”\\
![Page 20: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/20.jpg)
Java Introdução (c)AB,2000 20
Programação JAVAConversão de tipos
O Java converte automaticamente um tipo numérico para outro superior (promoção) no entanto é preferível utilizar uma conversão
Exemplo:int inteiro;long longo;longo = inteiro; // O java aceitalongo = (long) inteiro; // preferível efectuar o cast
inteiro = longo; // erro na compilaçãointeiro = (int) longo; // ok
![Page 21: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/21.jpg)
Java Introdução (c)AB,2000 21
Programação JAVA
+ Adição- Subtracção* Multiplicação/ Divisão% Módulo
Aritméticos
Operadores
++ Incremento de uma unidade-- Decremento de uma unidade
Nota:
a = a + 5;é o mesmo que a+=5;
Ex: ++numero;
![Page 22: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/22.jpg)
Java Introdução (c)AB,2000 22
Programação JAVA
Relacionais
== Igual a…!= Diferente de …< Menor que…> Maior que…<= Menor ou igual que…>= Maior ou igual que...
Operadores
Exemplo:
if ( a > b ) { // ...}
![Page 23: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/23.jpg)
Java Introdução (c)AB,2000 23
Programação JAVA
! Negação~ Complemento& Conjunção (AND binário)| Disjunção (OR binário)^ Disjunção exclusiva (XOR binário)<< shift binário>> shift binário>>> shift à direita com colocação de zeros à esquerda
&& AND antecipado (a expressão lógica é avaliada antes de terminada)|| OR antecipado (a expressão lógica é avaliada antes de terminada)
Operadores
![Page 24: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/24.jpg)
Java Introdução (c)AB,2000 24
Programação JAVA
Operadores com a mesma precedência são executadosda esquerda para a direita
Exemplo:
int inteiro;inteiro = 2 + 6 + 1; // o resultado é 9inteiro = 2 + 6 * 2: // o resultado é 14 pois a precedência de // ‘*’ tem precedência superior em relação a ‘+’
Precedência de Operadores
![Page 25: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/25.jpg)
Java Introdução (c)AB,2000 25
Programação JAVA
. [ ] ( )++ -- ! ~ instanceof* / %+ -<< >> >>>< > <= >=== !=&^|&&||?:= op =,
+
Precedência de Operadores
-
![Page 26: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/26.jpg)
Java Introdução (c)AB,2000 26
Programação JAVA
Arrays (estruturas de dados do tipo vectorial e/ou matricial)
int vectorInteiros[] = new int[50];
int matrizInteiros[][] = new int[50][4];
Exemplo:
Criar e inicializar arrays
Exemplo: char alfabeto[] = { ‘a’, ‘b’, ‘c’, ‘d’ };int notas[] = { 20, 15, 15, 14, 11, 10, 18 };
Arrays
![Page 27: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/27.jpg)
Java Introdução (c)AB,2000 27
Programação JAVA
Instrução ifinstrução switch
ciclo forciclo while
Controlo de fluxo
Decisõ
es
Ciclos
![Page 28: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/28.jpg)
Java Introdução (c)AB,2000 28
Programação JAVAInstrução if
If ( condição ){ // … instruções
}else { // … instruções
}Nota: o bloco else é opcional
![Page 29: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/29.jpg)
Java Introdução (c)AB,2000 29
Programação JAVAInstrução switch
switch ( variável ){
case valor1: // instruções… break;
case valor2: // instruções… break;
default: // instruções…
}
![Page 30: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/30.jpg)
Java Introdução (c)AB,2000 30
Programação JAVAciclo for
for ( inicialização; condição de controlo; incremento ){ // instruções
}Exemplo:
for ( int I = 0; I < 100; I++) { // ...}
![Page 31: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/31.jpg)
Java Introdução (c)AB,2000 31
Programação JAVAciclo while
while ( condição de controlo ) { // instruções...
}
ou
do { // instruções...
} while ( condição de controlo );
Exemplo:
int a = 0;while ( a < 100 ) { a=a+1; // ...}
![Page 32: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/32.jpg)
Java Introdução (c)AB,2000 32
Programação JAVACriar classes em Java
modificador(es) class NomeDaClasse{ // membros da classe (atributos e métodos)
}
exemplo de modificadores:
public (acessibilidade total da classe)abstract (métodos abstractos a definir pelas subclasses)final (classe que não poderá ser base de herança)
![Page 33: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/33.jpg)
Java Introdução (c)AB,2000 33
Programação JAVACriar classes em Java
Pontopublic class Ponto{ private int m_x;
private int m_y;
public Ponto(){ m_x = 0; m_y = 0;}
}
Atributos da classe, neste casoprivate garante o encapsulamentodos dados
Construtor por defeito da classe,é público, não devolve nenhum tipo,tem o mesmo nome da classe e não recebe argumentos
![Page 34: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/34.jpg)
Java Introdução (c)AB,2000 34
Programação JAVACriar classes em Java
Ponto
O construtor é invocado sempre quese cria um novo objecto da classe
Ponto p1;
p1 = new Ponto();
p1 é referência para instânciasda classe Ponto
O novo objecto é criado, a sua referência fica com p1.
De acordo com o exemplo, o construtor da classe coloca zeronos atributos privados m_x e m_y
![Page 35: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/35.jpg)
Java Introdução (c)AB,2000 35
Programação JAVACriar classes em Java
Ponto
public class Ponto{ private int m_x;
private int m_y;
public Ponto(){ m_x = 0; m_y = 0;}
public Ponto(int x, int y){ m_x = x; m_y = y;}
}
Construtor alternativo da classe Ponto
Passa a ser possível criar objectosda classe Ponto com valores iniciais
Exemplo:
Ponto p1 = new Ponto( 10, 5);
![Page 36: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/36.jpg)
Java Introdução (c)AB,2000 36
Programação JAVACriar classes em Java
Ponto
public class Ponto{ private int m_x;
private int m_y;
public Ponto(){ m_x = 0; m_y = 0;}
public Ponto(int x, int y){ m_x = x; m_y = y;}
}
Problema
Os atributos de Ponto são privados.
Como pode o “mundo exterior” obteros valores de m_x e m_y respeitando o princípio do encapsulamento da informação?
![Page 37: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/37.jpg)
Java Introdução (c)AB,2000 37
Programação JAVACriar classes em Java
Ponto
public class Ponto{ private int m_x;
private int m_y;
public Ponto() { m_x = 0; m_y = 0; }public Ponto(int x, int y) { m_x = x; m_y = y; }
public int X() { return m_x; }
public int Y() { return m_y; }
}
Uma solução possível:
criar métodos de acessopúblico para obtençãodos valores dos atributos
![Page 38: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/38.jpg)
Java Introdução (c)AB,2000 38
Programação JAVACriar classes em Java
Ponto
public class Ponto{ private int m_x;
private int m_y;
public Ponto() { m_x = 0; m_y = 0; }public Ponto(int x, int y) { m_x = x; m_y = y; }
public int X() { return m_x; }
public int Y() { return m_y; }
}
Novo Problema
Possibilitar a colocaçãode valores em m_x e m_y a partir de mensagensenviadas aos objectosda classe Ponto.
![Page 39: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/39.jpg)
Java Introdução (c)AB,2000 39
Programação JAVACriar classes em Java
Ponto
public class Ponto{ private int m_x;
private int m_y;
public Ponto() { m_x = 0; m_y = 0; }public Ponto(int x, int y) { m_x = x; m_y = y; }
public int X() { return m_x; } public int Y() { return m_y; }
public void X(int x) { m_x = x; } public void Y(int y) { m_y = y; }
}
Preparar métodos públicos deatribuiçãode valores a m_x e m_y
É uma responsabilidadeda classe efectuar estasoperações...
![Page 40: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/40.jpg)
Java Introdução (c)AB,2000 40
Programação JAVACriar classes em Java
public class Ponto{ private int m_x;
private int m_y;
public Ponto() { m_x = 0; m_y = 0; }public Ponto(int x, int y) { m_x = x; m_y = y; }
public int X() { return m_x; } public int Y() { return m_y; }
public void X(int x) { m_x = x; } public void Y(int y) { m_y = y; }
}
Exemplo:
Ponto p1 = new Ponto();Ponto p2 = new Ponto(2,3);
p1.X(4);p1.Y(8);
int a;
a = p1.X();
p2.X( a );
p2.Y( p1.Y() );
4
8
4
![Page 41: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/41.jpg)
Java Introdução (c)AB,2000 41
Programação JAVACriar classes em Java
Ponto p;
p = new Ponto(1,1);p = new Ponto(2,2);p = new Ponto(3,3);p = new Ponto(4,4);p = new Ponto(5,5);p = new Ponto(6,6);p = new Ponto(7,7);
p = new Ponto(8,8);
Instanciar objectos da classe Ponto
Neste caso foram criados 8 novosobjectos da classe Ponto, no entanto,fica apenas referenciado o últimoponto em p
Perdem-se todas as referências anteriores
p só guarda a última referência atribuída
O que acontece aos outros objectosque nasceram e estão perdidos?
![Page 42: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/42.jpg)
Java Introdução (c)AB,2000 42
Programação JAVACriar classes em Java
Ponto p;
p = new Ponto(1,1);p = new Ponto(2,2);p = new Ponto(3,3);p = new Ponto(4,4);p = new Ponto(5,5);p = new Ponto(6,6);p = new Ponto(7,7);
p = new Ponto(8,8);
GC O que acontece aos outros objectosque nasceram e estão perdidos?
R: O mecanismo GC (Garbage Collection) entra em funcionamento.
O Java executa continuamente uma tarefa de segundo plano para libertar recursos de todos os objectos criados e que não estejam referenciados
Gestão automática de memória
Nota: System.gc força a execução do GC
![Page 43: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/43.jpg)
Java Introdução (c)AB,2000 43
Programação JAVACriar classes em Java
A referência this
class Conta{ double m_saldo;
Conta() { m_saldo = 0.0; // equivalente a this.m_saldo=0.0; }
}
Sempre que um métodofaz uma referência não
qualificada a outro membroda mesma classe, existe uma referência implícita
a this.
Exemplo:
![Page 44: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/44.jpg)
Java Introdução (c)AB,2000 44
Programação JAVAClasses em Java, Herança
class A{ // ...}
class B extends A{ // ...}
A
B
![Page 45: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/45.jpg)
Java Introdução (c)AB,2000 45
Programação JAVAA classe Object
Object é a super-classe de todas as classes
Qualquer classe expande automaticamente a classe Object
Todas as classes herdam os métodos de Object
class A{ // ...}
ou
class A extends Object{ // ...}
![Page 46: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/46.jpg)
Java Introdução (c)AB,2000 46
Programação JAVAA classe Object
Principais métodos de Object
protected Object clone, devolve uma cópia do objecto
public final Class getClass, devolve o objecto Class
O objecto Class descreve a classe actualClass.toString devolve o nome da classe
toString, devolve uma descrição Unicode do objecto.
Object.toString devolve o endereço do objecto, no entantooutras classes sobrecarregam toString para proporcionar uma descrição mais útil do objecto Class
![Page 47: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/47.jpg)
Java Introdução (c)AB,2000 47
Programação JAVAA classe String
String é a classe geral para representar cadeias de caracteres Unicode
String representa uma cadeia fixa de caracteres
String oferece métodos úteis como concat, compareTo, toUpper, toLower
A classe StringBuffer
A classe StringBuffer representa uma cadeia de caracteresdinamicamente dimensionável(ex métodos: append, insert,…)
![Page 48: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/48.jpg)
Java Introdução (c)AB,2000 48
Programação JAVAA classe System
A classe System proporciona uma interface independentedo sistema para algumas funções gerais
in, out e err são as funcionalidades mais úteis de System
Objectos padrão de E/S
ObjectoSystem.inSystem.outSystem.err
TipoBufferedInputStreamPrintStreamPrintStream
Descriçãoentrada-padrão (normalmente teclado)saída-padrão (normalmente ecrã)saída de erro (normalmente ecrã)
![Page 49: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/49.jpg)
Java Introdução (c)AB,2000 49
Programação JAVA
Controlo/Tratamento de erros através de excepções
Blocos try/catch
try{ // instruções… a = 50; b=0; objecto.Divide(a,b);}catch (Exception e){ // visualização, situação de erro...}
class A { // ...
public double Divide(double d1, double d2) { if ( d2 == 0 ) { throw new Exception(“Divisão por zero!”); } return ( d1 / d2 ); }}
![Page 50: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/50.jpg)
Java Introdução (c)AB,2000 50
Programação JAVAinterfaces
Uma interface permite ao programador descrever uma série de capacidades que uma classe deve implementar
interface ipersistente{ void Store(); void Restore();}
Uma classe realiza umainterface utilizandoa palavra-chave implements
Uma classe que implementa umainterface não está a herdar nadaapenas promete implementar osmétodos definidos na interface
class B extends A implements ipersistente{ // … definir na classe Store() e Restore()}
![Page 51: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/51.jpg)
Java Introdução (c)AB,2000 51
Programação JAVAPacotes Java: packages
Por uma questão de organização é possível combinar classes em packages.
As classes estão agrupadas mas não têm que estar relacionadas, pelo menos da mesma forma que uma classe derivada se relaciona com a sua classe base.
Os nomes das packages podem conter pontos finais.
Por convenção, os nomes das packages são constituídos por várias palavras (a primeira pode indicar o nome da organização que a desenvolveu)
![Page 52: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/52.jpg)
Java Introdução (c)AB,2000 52
Programação JAVAPacotes Java: packages
Adicionar uma classe a uma package:
package edu.escola;
public class Aluno{ // instruções….}
![Page 53: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/53.jpg)
Java Introdução (c)AB,2000 53
Programação JAVAPacotes Java: packages
Utilizar uma classe de uma package
import edu.escola.Aluno;
Utilizar todas as classes de uma package
import edu.escola.*;
![Page 54: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/54.jpg)
Java Introdução (c)AB,2000 54
Programação JAVAPacotes Java: packages
Packages da biblioteca Java (exemplos)
java.lang , inclui as classes mais importantes da biblioteca Java. É importado por definição. (Ex: Object,String, classes para tipos intrínsecos, …)
java.applet, inclui as classes necessárias para a criação de applets
java.awt, Abstract Window Toolkit, conjunto de ferramentas para processamento de janelas
java.util, classes de utilidade geral (Ex: Date, Random,Vector,...)
![Page 55: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/55.jpg)
Java Introdução (c)AB,2000 55
Programação JAVAPacotes Java: packages
Packages da biblioteca Java (exemplos)
java.net, classes para operações de rede sobre TCP/IP (Ex: URL, URLConnection,…)
java.beans, especificação de objectos de tipo “Java Beans”
java.math, tipos númericos especiais
java.sql, bases de dados/SQL
java.servlet, criação de servlets
![Page 56: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/56.jpg)
Java Introdução (c)AB,2000 56
Programação JAVA
Exemplo
O pacote java.io,a classe Systeme blocos try/catch
import java.io.*;public class Class1{
public static void main (String[] args){try {
byte cadeiaBytes[] = new byte[128];System.out.println("Digite uma frase: ");System.in.read(cadeiaBytes);String s = new String(cadeiaBytes);System.out.println(s);
}catch (IOException e)
{System.out.println(e.toString());e.printStackTrace();}
}}
![Page 57: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/57.jpg)
Java Introdução (c)AB,2000 57
Programação JAVAAWT
Abstract Window Toolkit
Conjunto de Ferramentas para Janelas
Contém classes para componentes gráficos para qualquer plataforma de interface GUI
A própria classe Applet é membro do AWT
A super-classe da maioria das classes que compõemo package AWT é a Component
Usar package javax.swing.*
(encapsula e melhora a awt)
![Page 58: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/58.jpg)
Java Introdução (c)AB,2000 58
Programação JAVAAWT
Component
Container
Window Panel
Dialog Frame
FileDialog
Applet
Button
Canvas
Checkbox
Label
List
ScrollbarTextComponent
TextArea TextField
Subclasses de Component (super-classe da maioria das classes do AWT)
![Page 59: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/59.jpg)
Java Introdução (c)AB,2000 59
Programação JAVAAWT
Exemplo: import java.awt.*;import java.applet.*;
public class Applet1 extends Applet{
Label m_label = new Label("Programação em JAVA");Button m_botao = new Button("Botão 1");TextField m_campoTexto = new TextField(10);
public void init(){
add ( m_label ); add ( m_botao ); add ( m_campoTexto );
}}
Applet
Label
Button
TextField
![Page 60: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/60.jpg)
Java Introdução (c)AB,2000 60
Programação JAVAAWT
Nota: o layout por defeito neste caso é FlowLayout
![Page 61: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/61.jpg)
Java Introdução (c)AB,2000 61
Programação JAVAAWT
Principais formas de Layout (apresentação dos componentes)
FlowLayout
BorderLayout
GridLayout
Os componentes são posicionados daesquerda para a direita pela ordem emque estão ligados
Permite posicionar componentes relativamenteaos limites da janela (North, South, East, West e Center)
Os componentes são posicionados numa filosofiade grelha
Nota: o método setLayout da Applet permite mudar o layout
![Page 62: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/62.jpg)
Java Introdução (c)AB,2000 62
Programação JAVAAWT
Exemplo #1:
utilização de BorderLayout
// exemplo anterior (Applet1)// ...
public void init(){ setLayout(new BorderLayout());
add ( "North", m_label ); add ( "Center", m_campoTexto ); add ( "South", m_botao );}
// ...
Aos objectos North e Southé atribuído o espaço verticalnecessário.
Aos objectos West e East éatribuído o espaço horizontalnecessário dentro de qualquerespaço vertical que ainda reste
Aos objectos Center é atribuídoo restante espaço
![Page 63: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/63.jpg)
Java Introdução (c)AB,2000 63
Programação JAVAAWT
Exemplo #1: utilização de BorderLayout
![Page 64: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/64.jpg)
Java Introdução (c)AB,2000 64
Programação JAVAAWT
Exemplo #2: utilização de BorderLayout
Button b1 = new Button("B1");Button b2 = new Button("B2");Button b3 = new Button("B3");Button b4 = new Button("B4");Button b5 = new Button("B5");
setLayout(new BorderLayout());
add("North", b1);add("West", b2);add("Center", b3);add("East", b4);add("South", b5);
![Page 65: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/65.jpg)
Java Introdução (c)AB,2000 65
Programação JAVAAWT
Paineis
GridLayout ( 4, 1 )
1234
![Page 66: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/66.jpg)
Java Introdução (c)AB,2000 66
Programação JAVAAWT
Paineis
painelm_painelTiposConta
painel m_painelValor
painel m_painelOperacoes
zona para Labelsem painelp1
![Page 67: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/67.jpg)
Java Introdução (c)AB,2000 67
Programação JAVAAWT
Paineis
FlowLayout
FlowLayout
BorderLayout
GridLayout ( 1, 2)
![Page 68: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/68.jpg)
Java Introdução (c)AB,2000 68
Programação JAVAAWT
Panel m_painelTiposConta;Panel m_painelValor;Panel m_painelOperacoes;
CheckboxGroup m_cbg;Checkbox m_cbContaOrdem;Checkbox m_cbContaMulti;
Label m_label1 = new Label("Valor");Label m_labelMsg = new Label("");
Button m_botaoDep = new Button("Depositar");Button m_botaoLev = new Button("Levantar");Button m_botaoSaldo = new Button("Saldo");Button m_botaoLimpar = new Button("Limpar");
TextField m_campoTexto = new TextField(15);
Painéis e outros componentes
![Page 69: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/69.jpg)
Java Introdução (c)AB,2000 69
Programação JAVAAWT
public void init(){ m_cbg = new CheckboxGroup(); m_cbContaOrdem = new Checkbox("Conta Ordem", m_cbg, false); m_cbContaMulti = new Checkbox("Conta Multibanco", m_cbg, true);
// ...
Painéis e outros componentes
![Page 70: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/70.jpg)
Java Introdução (c)AB,2000 70
Programação JAVAAWTPainéis e outros componentes
m_painelTiposConta = new Panel();m_painelTiposConta.setLayout(new FlowLayout(FlowLayout.CENTER));m_painelTiposConta.add(m_cbContaOrdem);m_painelTiposConta.add(m_cbContaMulti);
m_painelValor = new Panel();m_painelValor.setLayout(new FlowLayout(FlowLayout.CENTER));m_painelValor.add(m_label1);m_painelValor.add(m_campoTexto);m_painelValor.add(m_botaoLimpar);
m_painelOperacoes = new Panel();m_painelOperacoes.setLayout(new BorderLayout());
Panel p1 = new Panel();p1.setLayout(new GridLayout(1,2));p1.add(m_botaoDep);p1.add(m_botaoLev);
m_painelOperacoes.add("Center", m_botaoSaldo);m_painelOperacoes.add("South", p1);
![Page 71: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/71.jpg)
Java Introdução (c)AB,2000 71
Programação JAVAAWTPainéis e outros componentes
setLayout(new GridLayout(4,1));
add ( m_painelTiposConta );add ( m_painelValor );add ( m_painelOperacoes );add ( m_labelMsg );
![Page 72: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/72.jpg)
Java Introdução (c)AB,2000 72
Programação JAVAAWTInterceptar eventos em Applets
Exemplo:
O utilizador escreve livremente no componente TextField
Se carregar no Botão 1 então o texto escrito deve substituir “Programação em JAVA” na label
Nota: exemplo desenvolvido em J++ compatível com JDK
![Page 73: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/73.jpg)
Java Introdução (c)AB,2000 73
Programação JAVAAWT
import java.applet.*;import java.awt.*;import java.awt.event.*;
public class Applet1 extends Applet implements ActionListener{
Label m_label = new Label("Programação em JAVA");Button m_botao = new Button("Botão 1");TextField m_campoTexto = new TextField(10);
// pedimos desculpa por esta interrupção, a classe continua nos próximo slides...
Interceptar eventos em Applets
![Page 74: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/74.jpg)
Java Introdução (c)AB,2000 74
Programação JAVAAWT
//..
public void init(){
setLayout(new BorderLayout());add ( "North", m_label );add ( "Center", m_campoTexto );add ( "South", m_botao );
m_botao.addActionListener(this);
}
// ...
Interceptar eventos em Applets
![Page 75: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/75.jpg)
Java Introdução (c)AB,2000 75
Programação JAVAAWTInterceptar eventos em Applets
public void actionPerformed(ActionEvent evento){ Object objectoAlvo = (Object) evento.getSource(); if ( objectoAlvo instanceof Button ) {
Button b = (Button) objectoAlvo; String s = b.getLabel();
if ( s.compareTo("Botão 1") == 0 ) { m_label.setText( m_campoTexto.getText() ); } }}
} // fim da classe Applet1
![Page 76: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/76.jpg)
Java Introdução (c)AB,2000 76
Programação JAVAAWTInterceptar eventos em Applets
public void actionPerformed(ActionEvent evento){
if ( evento.getSource() == m_botaoLimpar ){ m_campoTexto.setText("");}
}} // fim da classe Applet1
Ou de uma forma mais simples...
![Page 77: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/77.jpg)
Java Introdução (c)AB,2000 77
Programação JAVAClasse GraphicsFuncionalidades gráficas em Applets
Graphics é argumento do método paint de Applet
public void paint(Graphics g){ g.setFont(new Font( "TimesRoman", Font.BOLD, 36));
g.setColor ( Color.red );
g.drawString ( "Java", 10, 100);}
Nota: repaint() provoca uma chamada a paint
![Page 78: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/78.jpg)
Java Introdução (c)AB,2000 78
Programação JAVAClasse GraphicsFuncionalidades gráficas em Applets
Graphics é argumento do método paint de Applet
public void paint(Graphics g){ g.setColor(Color.red); g.drawRect(10,10,110,50); g.fillRect(50,15,30,20);
g.setColor(Color.blue); g.drawOval(10,15,110,25);
g.setColor(Color.black); g.drawLine(10,25, 110, 25);
}
x
y
![Page 79: Java Introdução (c)AB,20001 JAVA Linguagem orientada por objectos (similar ao C++ mas mais simples) Utilizada para desenvolvimento de aplicações stand-alone,](https://reader033.fdocumentos.tips/reader033/viewer/2022051615/552fc16e497959413d8ed149/html5/thumbnails/79.jpg)
Java Introdução (c)AB,2000 79
Na WWW…
Sobre Java
www.sun.comwww.javasoft.com subsidiária da Sun
sunsite.unc.edu/javafaqwww.gamelan.com ligações a outros sites Java
www.programmingtutorials.com