Variáveis e constantes
A linguagem Java possui três tipos de variáveis:
- Variáveis de instância
- Variáveis locais
- Variáveis de classe (estáticas)
Variáveis de instância
As variáveis de instância são variáveis declaradas dentro de uma classe, fora de qualquer método.
As variáveis de instância são associadas a objetos individuais, instancias da classe onde foram declaradas.
As variáveis de instância podem ter valores diferentes de objeto para objeto.
Normalmente, as variáveis de instância guardam as propriedades de um objeto, ou seja, o seu estado.
Exemplo:
class Carro{
public String marca;
public String modelo;
public float preco;
public void metodoA(){
…….
}
}
As variáveis marca, modelo e preco são variáveis de instância da classe Carro.
Acedemos a uma variável de instância a partir de uma instância (objeto).
Podemos criar várias instâncias (objetos) desta classe e atribuir valores diferentes a estas
variáveis, conforma a instância:
Carro c1 = new Carro(); //uma instância de Carro
c1.marca = “Ford”;
c1.modelo = “Focus”;
c1.preco = 12000.0F;
Carro c2 = new Carro(); //outra instância de Carro
c2.marca = “Opel”;
c2.modelo = “Corsa”;
c2.preco = 16500.0F;
Como podemos ver as variáveis marca, modelo, e preco têm valores diferentes para
instâncias (objetos) diferentes. De facto, existe uma cópia de cada uma destas variáveis para
cada instância.
NOTA: As variáveis quando declaradas e não inicializadas, são inicializadas automaticamente
pelo Java, com valores de defeito, da seguinte forma:
Variáveis de referência são inicializadas com o valor null.
Variáveis numéricas são inicializadas a zero.
Variáveis String são inicializadas com uma string vazia (“”).
Variáveis locais
As variáveis locais são variáveis declaradas dentro de métodos. Existem somente enquanto o
método executar. Quando o método termina, a variável é libertada.
Exemplo:
public class Triangulo
{
int side1, side2 ; //variaveis de instancia
public boolean testRightTriangle( int hypoteneuse )
{
//variaveis locais:
int side1Squared = side1 * side1 ;
int side2Squared = side2 * side2 ;
int hypSquared = hypoteneuse * hypoteneuse ;
return side1Squared + side2Squared == hypSquared ;
}
}
As variáveis side1Squared, side2Squared e hypSquared são variáveis locais ao
método testRightTriangle().
NOTA: as variáveis locais devem ser obrigatoriamente inicializadas uma vez que o Java não as
inicializa de forma automática.
Variáveis de classe (variáveis estáticas)
Uma variável de classe é qualquer variável declarada dentro de uma classe, com o modificador
static. O modificador static indica ao compilador que só existe uma única cópia desta
variável, seja qual fôr o número de instâncias. Também se chama a estas variáveis, variáveis
estáticas.
Acedemos a uma variável de instância a partir da classe.
Portanto se atribuímos um valor a uma variável de classe, e se criarmos 5 instâncias, o valor da
variável é o mesmo para as 5 instâncias.
Exemplo:
public class Circle {
static int num_circles = 0; // variavel de classe ou estática
public Circle(double x, double y, double r) {
this.x = x; this.y = y; this.r = r;
num_circles++;
}
public double area() {
return 3.14159 * r*r;
}
}
Nesse exemplo temos uma variável de classe, num_circles. Esta variável é incrementada
de cada vez que se instancia um objecto Circle.
Acedemos ao valor da variável num_circles a partir do nome da classe:System.out.println("Number of circles created: " + Circle.num_circles);
Constantes
Constantes são valores que são atribuídos uma vez e não podem ser modificados durante a
execução do programa.
As constantes são declaradas usando o modificador final:
public class Circle {
static final PI = 3.14159 ; //constante
public Circle(double x, double y, double r) {
this.x = x; this.y = y; this.r = r;
num_circles++;
}
public double area() {
return PI * r*r;
}
}
Normalmente, as constantes são também estáticas (usam o modificador static), embora tal
não seja obrigatório.
NOTA: uma regra de boa programação é declarar as constantes com nomes em letra
maiúscula para não se confundirem com as variáveis.
Modificadores de variáveis
Os modificadores das variáveis precedem a declaração de uma variável e influenciam o acesso
a ela, assim como o seu tipo.
Existem sete modificadores que podem ser atribuídos a uma variável dos quais apresentamos
os 5 mais usados:
| Modificador | Descrição |
| final | A variável é uma constante |
| private | Só pode ser acedida por código dentro da própria classe. |
| protected | Só pode ser acedida por uma subclasse ou por outra classe no mesmo package |
| public | Pode ser acedida por qualquer outra classe |
| static | É uma variável estática ou de classe |
class A{
public final String NOME = “Ana”; //constante
public static int total;
//estática
public final static LINHAS = 7; //constante estática
private int total; //variável privada
}
