Professional Documents
Culture Documents
Java
Parte 2: Classes e objectos
LEEC@IST
Java 1/24
Classes (1)
Sintaxe
Qualif* class Ident
[ extends IdentC] [ implements IdentI [,IdentI]* ] {
[ Atributos | Mtodos ]*
}
Java 2/24
Classes (2)
Qualificadores de classe:
LEEC@IST
Java 3/24
Classes (3)
public class Conta {
/* atributos */
/* mtodos */
}
LEEC@IST
Java 4/24
Atributos (1)
Sintaxe
Qualif* Tipo Ident [ = Expr ] [, Ident = Expr ]* ;
LEEC@IST
Java 5/24
Atributos (2)
Tipos possveis do atributo:
Primitivos:
boolean
char
byte
short
int
long
float
double
Java 6/24
Atributos (3)
Qualificadores de atributo:
Visibilidade:
public: atributo acessvel onde quer que a classe seja acessvel.
private: atributo acessvel apenas na classe.
protected: atributo acessvel na classe, subclasses e classes no
mesmo pacote.
Java 7/24
Atributos (4)
Princpio de encapsulamento da informao:
Os atributos no devem ser acedidos fora do objecto a que
pertencem, devendo ser apenas alterados por mtodos
(modificadores).
A visibilidade dos atributos deve ser private ou protected.
Evitar, o mais possvel, o qualificador public.
LEEC@IST
Java 8/24
Atributos (5)
Inicializao dos atributos:
Expr pode ser uma constante, um outro atributo, a chamada
a um mtodo, ou uma expresso envolvendo qualquer
destes.
Por omisso, quando um atributo no inicializado -lhe
atribudo um valor inical, dependente do seu tipo:
boolean false
char \u0000
byte, short, int, long 0
float, double +0.0
refernca para um objecto null
Java 9/24
Atributos (6)
LEEC@IST
Java 10/24
Atributos (7)
public class Conta{
/* atributos */
private static long numProxConta = 0;
protected long numConta; // nmero da conta
protected String dono; // proprietrio da conta
protected float quantia; // saldo actual
/* mtodos */
}
LEEC@IST
Java 11/24
Atributos (8)
LEEC@IST
Java 12/24
Objectos
Sintaxe
Ident = new Classe ([ Expr [ , Expr]* ]);
LEEC@IST
Java 13/24
Garbage collector
LEEC@IST
Java 14/24
Construtores (1)
LEEC@IST
Java 15/24
Construtores (2)
public class Conta{
/* atributos */
private static long numProxConta = 0;
protected long numConta; // nmero da conta
protected String dono; // proprietrio da conta
protected float quantia; // saldo actual
/* construtores */
Conta() {
numConta = numProxConta++;
}
Conta(String s, float q) {
numConta = numProxConta++;
dono = s;
quantia = q;
}
/* mtodos */
}
LEEC@IST
Java 16/24
Construtores (3)
LEEC@IST
Java 17/24
Construtores (4)
LEEC@IST
Java 18/24
Construtores (5)
public class Conta{
/* atributos */
private static long numProxConta = 0;
protected long numConta; // nmero da conta
protected String dono; // proprietrio da conta
protected float quantia; // saldo actual
/* construtores */
Conta() {
numConta = numProxConta++;
}
Conta(String s, float q) {
this(); /* chamada explcita */
dono = s;
quantia = q;
}
/* mtodos */
}
LEEC@IST
Java 19/24
Inicializao de atributos de
instncia (1)
LEEC@IST
Java 20/24
Inicializao de atributos de
instncia (2)
O construtor chamado aps:
Inicializao por omisso dos atributos de instncia da
classe.
Inicializao dos atributos de instncia na declarao dos
mesmos.
LEEC@IST
Java 21/24
Inicializao de atributos de
instncia (3)
public class Conta{
/* atributos */
private static long numProxConta = 0;
protected long numConta; // nmero da conta
protected String dono; // proprietrio da conta
protected float quantia; // saldo actual
/* construtores */
Conta() {
numConta = numProxConta++;
}
Conta(String s, float q) {
this();
dono = s;
quantia = q;
}
/* mtodos */
}
LEEC@IST
Java 22/24
Inicializao de atributos de
instncia (4)
public class Conta{
/* atributos */
private static long numProxConta = 0;
{ /* bloco de inicializao */
numConta = numProxConta++;
}
protected long numConta; // nmero da conta
protected String dono; // proprietrio da conta
protected float quantia; // saldo actual
/* construtores */
Conta() {}
Conta(String s, float q) {
dono = s;
quantia = q;
}
/* mtodos */
}
LEEC@IST
Java 23/24
Inicializao de atributos
estticos
LEEC@IST
Java 24/24