Professional Documents
Culture Documents
Programação JAVA
Antonio L. Bajuelos
Departamento de Matemática
Universidade de Aveiro
1
1
A Linguagem de Programação JAVA
Características Gerais (cont...)
Orientada a Objectos:
A portabilidade é uma das características que se inclui nos
objectivos principais duma linguagem orientada a objectos.
Em JAVA ela foi obtida de maneira inovadora com relação
ao grupo actual de linguagens orientadas a objectos.
JAVA suporta herança, mas não herança múltipla.
A ausência de herança múltipla pode ser compensada pelo
uso de herança e interfaces, onde uma classe herda o
comportamento de sua superclasse além de oferecer uma
implementação para uma ou mais interfaces.
JAVA permite a criação de classes abstractas.
2
A Linguagem de Programação JAVA
Objectos em JAVA
Objectos são instâncias de uma classe.
Quando um objecto é criado ele precisa ser
inicializado, ou seja para uma única classe de nome
EstudanteDaUA podemos ter vários objectos durante
a execução de um programa. Exemplos:
Estudante da UA, Paulo; No.MEC 24124; Curso:
Matemática Aplicada e Computação
Estudante da UA, Ana Maria, No.MEC 17254, Identificação
893249, Curso: Lic. em Biologia
A classe representa somente o molde para a criação
dos objetos e não contém informação.
INSTANCIAS: Um objecto existente durante um
momento da execuç
execução de um programa é uma instancia
de uma classe.
Linguagens e Ambientes de Programação
Antonio L. Bajuelos 7
3
A Linguagem de Programação JAVA
Programa Hello Internet! (cont...)
Explicação passo a passo ...
4
A Linguagem de Programação JAVA
Programa Hello Internet! (cont...)
Explicação passo a passo ...
public
É um qualificador do método que indica que este é
acessível externamente a esta classe (para outras
classes que eventualmente seriam criadas).
static
É um outro qualificador ou specifier, que indica
que o método deve ser compartilhado por todos os
objectos que são criados a partir desta classe.
Os métodos static podem ser invocados, mesmo
quando não foi criado nenhum objecto para a
classe.
5
A Linguagem de Programação JAVA
Programa Hello Internet! (cont...)
Explicação passo a passo ...
System.out.println(“Hello Internet!”);
Chamada do método println para o atributo out da classe ou
objecto System,
O argumento é uma constante que vem entre aspas é do tipo
String.
println assim como writeln de Pascal, imprime a String e
posiciona o cursor na linha abaixo,
Analogamente print não avança linha.
... }
Finalmente o fecha chaves termina com a declaração da
classe HelloInternet
6
A Linguagem de Programação JAVA
Atributos (cont ...)
A classe Circulo é especificada em um ficheiro
separado do ficheiro da classe que contém o método
main (início do programa).
7
A Linguagem de Programação JAVA
Classe Circulo e declaração de atributos:
A classe Circulo, esta classe contém três atributos . A
declaração de atributos segue sintaxe semelhante a de
C++
EspecificadorModoAcesso NomeTipo NomeAtributo;
public float raio;
public float x;
public float y;
Todos os atributos pertencentes a classe são do tipo
float (Ponto flutuante 32-bit).
Os atributos estão especificados como public o que
significa que podem ser modificados a partir de uma
classe que usa um objecto Circulo.
Esta classe Circulo não possui métodos.
8
A Linguagem de Programação JAVA
Colecta automática de lixo:
A desalocação do objecto é feita pela linguagem,
(automatic garbage collection), o programador não
precisa se preocupar com ela.
Após o fecha chaves de main, a memória do objecto
umcirc já pode ser liberada, o que normalmente não
ocorre de imediato.
O ambiente da linguagem executa um tread em baixa
prioridade que libera de tempos em tempos os
espaços inutilizados de memória, tirando proveito por
exemplo de eventuais pausas de iteração do usuário
com o programa.
9
A Linguagem de Programação JAVA
Os identificadores em JAVA
Iniciam com uma letra, carácter “_” ou “$”;
Caracteres subsequentes podem conter dígitos;
Java diferencia maiúsculas de minúsculas;
Não existe tamanho máximo para identificadores;
Palavras-chave não podem ser usadas como
identificadores;
10
A Linguagem de Programação JAVA
Tipos básicos e Constantes:
char - Caractere UNICODE 16-bit
O tipo char (caracter unicode) é representado com
16-bits sem sinal, o que permite endereçar de 0 a
65535.
O objectivo desta opção é permitir
internacionalização da linguagem, bem como a
padronização.
Constantes do tipo caracter aparecem entre
apóstrofes: ‘a’, ‘1’, ‘$’.
boolean - Valor true ou false
boolean pertenceAoConjunto; //declara variavel
pertenceAoConjunto=true; //exemplo
Linguagens e Ambientes de Programação
Antonio L. Bajuelos 31
11
A Linguagem de Programação JAVA
Tipos básicos e Constantes: Resumo
Exemplos:
long i=15; //conversão automática
int i=15L; //erro de compilação
float f=(float)3.14; //conversão explícita
12
A Linguagem de Programação JAVA
Constantes:
Constantessão definidas no escopo de uma classe, não
de um método
São chamadas de constante de classe
Para definir uma constante utiliza-se os
modificadores static final
Exemplo de uso de constante:
public class ExemploConstante {
public static final double TAXA_DE_JUROS=0.2;
public void main (String args[]) {
System.out.println(“A taxa de juros mensal é ”
+TAXA_DE_JUROS);
}
}
13
A Linguagem de Programação JAVA
Atributos e Métodos:
Os métodos determinam o comportamento dos
objectos de um classe.
Quando um método é invocado, se diz que o objecto
está recebendo uma mensagem (para executar uma
acção).
O programa a seguir exemplifica chamadas de
métodos, para tal define um objecto que serve como
contador, a implementação representa a contagem no
atributo num que é um número inteiro.
Os métodos são simples:
No exemplo a seguir:
incrementa adiciona um ao contador em qualquer estado e
comeca inicializa a contagem em zero. Decrementa faz o
oposto de incrementa.
Linguagens e Ambientes de Programação
Antonio L. Bajuelos 40
} 0
} 1
14
A Linguagem de Programação JAVA
A palavra reservada this:
this
this é uma palavra chave (reservada) utilizada num método
como referência para o objecto corrente, ela tem o significado
de: “o objecto para o qual este trecho de código está sendo
executado”.
Exemplo:
Suponha uma classe que possui a seguinte declaração de atributo:
public int qualquer;
Se quisermos em um método desta classe alterar o atributo
qualquer para o valor 3, basta escrever qualquer=3; , mas este
código escrito dentro de um método da classe que declara
qualquer, é totalmente equivalente a this.qualquer=3;
Esta última é uma opção mais clara e é capaz de eliminar
ambiguidades entre os nomes dos atributos de uma classe e os
nomes dos argumentos de um dos métodos desta (quando estes
nomes forem iguais).
O uso de this também é válido fazer para chamadas de métodos
para o objecto corrente.
15
A Linguagem de Programação JAVA
Comparação JAVA e Pascal
//Classe circulo versao JAVA public void move(float
public class Circulo { dx,float dy)
public float raio,x,y; {
public void inicializa(float this.x+=dx; this.y+=dy;
ax,float ay,float ar) }
{ public void mostra()
this.x=ax; this.y=ay; {
this.raio=ar; System.out.println("("+
} this.x+","+
public void altera_raio(float a) this.y+","+
{ this.retorna_raio()+")");
this.raio=a; }
} } //declaração da classe.....
public float retorna_raio()
{
return this.raio;
}
Linguagens e Ambientes de Programação
Antonio L. Bajuelos 46
16
A Linguagem de Programação JAVA
Comparação JAVA e Pascal (cont...)
...cont...
PROCEDURE Mostra(copieme:Circulo);
BEGIN
writeln('X:',copieme.x,' Y:',copieme.y,' R:',copieme.r);
END;
BEGIN
Inicializa(ac,0.0,0.0,10.0);
Mostra(ac);
Move(ac,1.0,1.0);
Mostra(ac);
ac.x:=100.0;
AlteraRaio(ac,12.0);
Mostra(ac);
read(leitura);
END.
17
A Linguagem de Programação JAVA
Construtores (cont...)
//Classe Ponto //Classe principal, Principal.java
public class Ponto { public class Principal {
public float x,y; public static void main(String
public Ponto(float ax,float ay) args[ ]) {
{ Ponto ap;
this.x=ax; this.y=ay; ap=new Ponto((float)0.0,(float)0.0);
} ap.mostra();
public void move(float dx,float ap.move(1,1);
dy) ap.mostra();
{ ap.x=100;
this.x+=dx; this.y+=dy; ap.mostra();
} }
public void mostra() }
{ Resultados:
System.out.println("("+this.x+ (0,0)
","+this.y+")"); (1,1)
} (100,1)
}
Linguagens e Ambientes de Programação
Antonio L. Bajuelos 52
class Point {
Point p = new Point(10,20);
int x,y; Point p2 = new Point();
Point( int x, int y ) {
this.x = x;
this.y = y; }
Point( ) {
this(0,0); }
}
18
A Linguagem de Programação JAVA
VECTORES e MATRIZES
Vectores são objectos, eles possuem papel importante no
estilo de programação desta linguagem que exclui ponteiros.
Por serem objectos, vectores são obrigatoriamente alocados
de maneira dinâmica.
Exemplo:
class VectorTest {
public static void main (String args[ ]) {
int vector[ ]=new int[3];
vector[0]=0; vector[1]=10; vector[2]=20;
System.out.println(vector[0]+" "+
vector[1]+" "+ vector[2]+" ");
} Resultados:
} 0 10 20
Linguagens e Ambientes de Programação
Antonio L. Bajuelos 55
19
A Linguagem de Programação JAVA
Aritmética do JAVA
No JAVA, podem ser realizadas cinco operações
aritméticas (OA) (básicas:
Adição +
Substracção -
Multiplicação *
Divisão /
Módulo (resto) %
20
A Linguagem de Programação JAVA
Operações lógicas, Comparações e Condicionais (cont...)
As operações lógicas também podem ser utilizadas em conjunto
( “e” e “ou”).
Sintacticamente, estas operações efectuam-se em JAVA como a
seguir se exemplifica:
Exemplo de operação “e” (AND):
if ((x < 5) && (x >1))
System.out.println(“x esta entre 1 e 5”);
else
System.out.println(“x e maior que 5 ou menor que 1”);
Exemplo de operação “ou” (OR):
if ((x > 5) || (x < 1))
System.out.println(“x e maior que 5 ou menor que 1”);
else
System.out.println(“x esta entre 1 e 5”);
21
A Linguagem de Programação JAVA
Operações lógicas, Comparações e Condicionais (cont...)
Exemplo de um shift à direita de 1 posição (x >> 1):
class Teste {
public static void main (String args[])
{
int x = 30; y;
y = (x >> 1);
System.out.println (“y = “+y);
}
}
Resultados: em binário: 0001 1110 Æ 0000 1111
em decimal: y = 15
22
A Linguagem de Programação JAVA
Operações lógicas, Comparações e Condicionais
(cont...)
O operador “+”, quando aplicado a Strings,
concatena-as numa só String resultante final.
De acordo com as regras de sintaxe curta que
vimos atrás, podemos aplicar as mesmas
expressões, mas agora com Strings de texto.
Exemplo:
String s = “Nome = Pedro Alexandre ”;
s += “Coelho”;
System.out.println(s);
23
A Linguagem de Programação JAVA
Controle de Fluxo e Ciclos (cont...)
O Switch (para substituir ifs):
class Teste {
public static void main (String args [ ])
throws java.io.IOExeption {
boolean concorda;
System.out.println (“Você concorda ou não (S/N)?”);
char c = (char) System.in.read();
switch (c) {
case ‘s’:
case ‘S’:
System.out.println(“Você respondeu SIM”);
concorda = true; break;
case ‘n’:
case ‘N’:
System.out.println(“Você respondeu NÃO”);
concorda = false; break;
default: System.out.println(“Resposta não válida”);
break;
}
}
}
Linguagens e Ambientes de Programação
Antonio L. Bajuelos 70
24
A Linguagem de Programação JAVA
Ciclo for
Trata-se de um ciclo vocacionado para utilizações que
envolvam variações de uma variável, dentro de um
determinado intervalo. Sintaxe:
for (valor_inicial; valor_final; variação)
{
.....
}
Exemplo: Escrever os primeiros 1000 números no
écran:
int k;
for (k = 1; k <= 1000; k++)
System.out.println(k);
Resultados: 20 18 16 14 12 8 6 4 2 0
25
A Linguagem de Programação JAVA
Break, Continue e Labels (cont ...)
Quando continue é encontrado, a parte restante do
código para aquela iteração é ignorada. Contudo, na
iteração seguinte, o código prossegue normalmente.
Exemplo:
int k;
for (k = 20; k >=0; k = k - 2)
{
if (k == 10) continue;
System.out.print(k);
}
Resultados: 20 18 16 14 12 8 6 4 2 0
26