Manual de Java
Manual de Java
JAVA
Aplicações em Java
A criação de uma aplicação é feita recorrendo a:
O java é uma linguagem que faz a distinção entre letras minúsculas e maiúsculas.
Em Java, um projecto é composto por várias classes, sendo apenas uma a classe
principal, ou seja, a classe que é chamada quando a aplicação é executada. Cada
classe origina um ficheiro com extensão “.jsl”.
void Esta palavra reservada indica que o subprograma não devolve qualquer
valor.
1
Estrutura de um programa em java:
Import java.io.*;
public class Nome_Class Início da classe
{
tipo nome_var1, nome_var2, ... Declaração de variáveis globais.
Declaradas fora dos subprogramas
2
2. Estrutura de dados em Java
Comentários
// uma linha
/*
várias linhas
*/
Operadores Aritméticos
+ (adição)
- (subtracção)
* (multiplicação)
/ (divisão) O resultado de uma divisão é um valor inteiro, excepto se
os dois operadores forem reais.
% (resto da divisão)
Operadores lógicos
&& (e/and)
|| (ou/or)
! (não/not)
Operadores de comparação
== (igual)
> (maior que)
>= (maior ou igual que)
< (menor que)
<= (menor ou igual que)
!= (diferente)
Variáveis e Constantes
3
Tipos de dados
byte (número inteiro [-128;127])
short (número inteiro [-32768;32767])
int (número inteiro [-2 147 483 648;-2 147 483 647])
long (número inteiro [-9 223 372 036 854775 808; ...07])
float (numero real [-3.4*1038; 3.4*1038])
double (número real [-1.7*10308; 1.7*10308])
Instrução de i/o
System.out.println(“ mensagem “+nome_var1+”...”+nome_var2);
System.out.print(“ ... ”);
System.in.read(); //faz a espera de enter
Instrução de atribuição
nome_var = valor a atribuir;
Data do sistema
//Biblioteca
import java.util.Date;
Classe Math
Trata-se de uma classe com um conjunto de funções matemáticas:
- Math.sqrt() calcula a raíz quadrada
4
- Math.pow(base, expoente) calcula a potência de um
nº elevado a outro
- Math.random() gera um número aleatório entre 0 e 1.
Para o valor ser entre 0 e 100, basta multiplicar por 100.
O valor gerado é do tipo real, podendo ser convertido
para inteiro.
Conversões
a=Integer.valueOf(b).intValue(); converte o valor de b para inteiro em a.
a=Float.valueOf(b).floatValue(); converte o valor de b para real em a.
a=(int)b; converte o valor de b para inteiro em a.
a=(float)b; converte o valor de b para real em a.
Estrutura condicional
if (condição)
{
instruções se true;
}
else
{
instruções se false;
}
Estrutura de selecção múltipla
switch (nome_var)
{
case valor1: instruções;
break;
case valor2: instruções;
break;
.....
default: instruções;
break;
}
Estruturas de repetição
while (condição)
{ instruções; }
do
{ instruções; }
while (condição)
while (true)
{ instruções; }
5
Ciclo que apenas termina quando a janela é fechada
Tratamento de excepções
Uma excepção é algo que ocorre durante a execução de um conjunto de instruções e
que não se comporta de acordo com o previsto. Esta situação é controlada com a
instrução:
try
{
instruções a realizar;
}
catch (IOException e)
{
//informação caso as instruções não sejam executadas normalmente.
instruções;
}
5. Arrays
Declaração do array:
tipo_dados [] nome_array = new tipo_dados[nº de posições do array]
Criação de elementos do array:
nome_array[indice]=valor_a_atribuir
Acesso aos elementos do array:
nome_array[indice]
Os elementos do array são numerados de 0 a n elementos.
6
Exercícios (Aplicações em java)
Exercício 7: Aceitar um valor e verificar se esse valor está entre 0 e 20. Caso não esteja,
deve ser dada uma informação de valor incorrecto. Se o valor for menor que
10, deve dizer a informação de negativo, caso contrario deve ser dada a
informação de positivo.
Exercício 10: Aceitar uma sequência de valores entre 0 e 20, até a confirmação de
continuação ser negativa. No final pretende-se o nº, a soma e a média dos
valores introduzidos.
Exercício 11: Aceitar um valor e apresentar todos os valores desde 1 até ele.
7
Exercício 13: Uma companhia de venda de flores a floristas e ao público, oferece aos
primeiros isenção de impostos e um desconto que depende da importância a
pagar segundo a seguinte tabela:
Compras Desconto
Inferior a 50 € 2%
De 50 a 250 € 5%
Superior a 250€ 10%
Os outros compradores não só não têm desconto como ainda estão sujeitos a
um imposto de 6% sobre o valor da compra.
Desenvolva um algoritmo que, após a realização de um compra, calcule o
valor que efectivamente o cliente vai pagar, seja florista ou público em geral.
Exercício 14: Desenvolva um programa que calcule a nota de um aluno, sabendo que
esta é definida da seguinte forma:
60% - média dos 2 testes da disciplina
20% - média dos 3 trabalhos práticos
20% - trabalho final
Exercício 16: Elabore um programa que aceite a idade de 20 alunos de uma turma e
determine quantos têm menos de 14 anos, quantos têm entre 14 e 16 anos e
quantos têm mais de 16 anos de idade.
Exercício 17: Desenvolva um programa que lhe permite jogar um jogo. O computador
deve gerar um nº aleatório entre 0 e 100. A tarefa do utilizador é tentar
adivinhar esse nº. No final deve ser dada a informação do nº de tentativas
Exercício 18: Desenvolva um programa que aceite as notas (entre 0 e 20) de 20 alunos,
através de uma tabela unidimensional. Pretende-se no fim a média das notas
desses 20 alunos.
Exercício 19: Altere o programa anterior, de forma que além de aceitar as notas dos
alunos, apresente um pequeno menu, para realização de tarefas sobre o array:
1-Alteração de uma nota
2-Média das notas dos alunos
8
3-Consultar a nota de um aluno
4-Aluno(s) com a nota mais alta
5-Terminar
9
Applets em Java
1. O ambiente gráfico
Para que o applet possa ser executado no browser é necessário fornecer um pequeno
código em html, código este que é inserido no ficheiro “Page.htm”:
<html>
<body>
<applet code=Applet.class width=320 height=200></applet>
</body>
</html>
Bibliotecas necessárias:
import java.awt.*;
import java.applet.*;
Início do Applet
public class nome_applet extends Applet
Ao contrário das aplicações em java, no applet não existe a classe main. No seu
lugar, aparece uma classe:
10
2. Estrutura de um applet com subprogramas
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{ Identifica o subprograma principal, e
public void paint (Graphics g) consequentemente o início do applet
{
nome_subp(g); Chamada do subprograma
}
public void nome_subp(Graphics g)
{ Subprograma
instruções;
}
...
}
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{
public void paint (Graphics g)
{
setBackground(Color.gray);
//Chamada ao subprograma <desenhaquad>
desenharqua(g);
}
//Criação do subprograma <desenharqua>
public void desenharqua (Graphics g)
{
g.setColor(Color.black);
g.drawRect(200,200,200,200);
}
}
11
3. Desenho de objectos gráficos em applets
Linha g.drawLine(x,y,x1,y1);
x coordenada horizontal de início.
y coordenada vertical de início.
x1 coordenada horizontal de fim.
y1 coordenada vertical de fim.
12
A construção de uma animação em java, faz-se com recurso a um simples ciclo
for. Dentro deste criam-se as formas com alteração de coordenadas.
while (true)
{
for (k=1; k<=400; k++)
{
g.setColor(Color.black);
g.drawRect(k,50,30,20);
try { Thread.sleep(25); }
catch (Exception e) {}
}
}
13
Exercícios (Gráficos em applets java)
Exercício 2: Construir um applet contendo a figura seguinte. O raio dos círculos é de 30.
Exercício 4: Elabore um applet que desenhe uma casa com o seguinte aspecto.
14
Interfaces gráficos em Applets
A diferença entre um applet gráfico e um applet com interface gráfico, é que o segundo
tem mecanismos que interagem com o utilizador.
Nos applets java com interfaces gráficos, a classe que indica o início do programa é
representada da seguinte forma:
public void init () Para que o applet possa ser inicializado no browser
Estrutura do applet
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{
public void init ()
{
instruções
}
}
1. Criação de objectos
Labels
add(new Label("descrição mensagem", Label.RIGHT));
ou
Label nome_var=new Label("descrição mensagem", Label.CENTER);
add (nome_var);
(Label.CENTER, Label.LEFT, Label.RIGHT)
Caixas de texto
add(new TextField(“descrição”,tamanho_campo));
ou
TextField nome_var = new TextField(“descrição”,tamanho_campo);
add (nome_var);
A descrição pode ser omitida.
getText() devolve uma string com o conteúdo do campo de texto
Para converter uma string numa caixa de texto para um valor inteiro/real:
nome_var=Integer.valueOf(Applet1.nome_var.getText()).intValue();
nome_var=Float.valueOf(Applet1.nome_var.getText()).floatValue();
Para converter o valor inteiro/real para string:
nome_var.setText(Integer.toString(a*b));
nome_var.setText(Float.toString(a/b));
Para restringir a alteração a uma caixa de texto: nome_var.setEditable(false);
Para colocar o cursor na caixa de texto: nome_var.requestFocus();
Para seleccionar o conteúdo da caixa de texto: nome_var.selectAll();
Para colocar um determinado conteúdo numa caixa de texto:
nome_var.setText(“...”);
15
Botões
add(new Button("nome botão"));
ou
Button nome_var=new Button("nome botão");
add (nome_var);
Botões Radio
CheckboxGroup nome_var=new CheckboxGroup();
add(new Checkbox("opção 1",nome_var,true));
add(new Checkbox("opção 2",nome_var,false));
Caixas de Selecção
add(new Checkbox("descrição caixa",true));
Caixas de Escolha
Choice nome_var=new Choice();
add(nome_var);
nome_var.addItem("opção 1");
nome_var.addItem("opção 2");
16
2. Organização dos Elementos Gráficos (Gestores de Layout)
setLayout(new FlowLayout(FlowLayout.LEFT,h,v));
FlowLayout.CENTER, LEFT, RIGHT
h espacamento vertical entre elementos
v espacamento horizontal entre elementos
SetLayou(new GridLayout(l,c,h,v)
l Nº de linhas
c Nº de colunas
h espaçamento horizontal entre elementos
v espaçamento vertical entre elementos
17
18
4. Gestão de Eventos
actionPerformed()
Nota: Os objectos são colocados no applet pela ordem pela qual foram adicionados
19
Após a definição de todos os objectos de constituem o applet bem como a
associação de eventos aos botões, é necessário proceder à criação dos eventos, isto é, a
definição do conjunto de instruções que serão executadas quando o utilizado selecciona
o botão.
class evento_11 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{ int a,b;
a=Integer.valueOf(Applet1.caixa_1.getText()).intValue();
b=Integer.valueOf(Applet1.caixa_2.getText()).intValue();
Applet1.caixa_3.setText(Integer.toString(a*b));
}
}
Notas:
A referência aos objectos é feita com nome_applet.nome_obj
Para que nas classes que implementam os eventos se possa ter acesso a
variáveis globais, estas têm que ser declaradas na classe principal, como
public static tipo nome_var;
20
Exercícios (Interfaces gráficos em applets java)
Exercício 5: Elabore um applet que aceite dois valores, calcule e apresente o resultado
da sua soma. O applet deve apresentar o seguinte aspecto:
21
Exercício 6: Elabore um applet que aceite dois valores e apresente 5 botões (soma,
subtracao, multiplicacao, divisao e limpar), que permitem calcular e
apresentar respectivamente o resultado da soma, subtracção, multiplicação
e divisão dos 2 valores introduzidos, mostrando ainda uma label indicando
os valores e a operação executada. O botão de limpar serve para limpar os
editores e a label. O applet deve apresentar o seguinte aspecto:
Exercício 9: Elabore um applet que gere um número aleatório entre 0 e 100. Trata-se de
um jogo que tem como objectivo, adivinhar o número gerado, devendo ser
dada a informação se o nº introduzido é maior ou menor. Deve também ser
dada a informação do nº de tentativas até o jogador ter acertado no nº. O
applet deve ter o seguinte aspecto:
22