Atributos e métodos que pertencem à classe e não precisam de instâncias para serem usados/acionados. Precedidos da cláusula static
.
Registro
Veja exemplo da classe Registro
que define um atributo e um método estáticos. Métodos estáticos só podem se referir a atributos estáticos.
In [1]:
public class Registro {
static int contador = 0;
static int proximoContador() {
contador++;
return contador;
}
}
Out[1]:
In [2]:
Registro.contador = 5;
System.out.println("Contador: " + Registro.contador);
Out[2]:
In [3]:
System.out.println("Contador: " + Registro.proximoContador());
Out[3]:
In [4]:
Registro r1 = new Registro(),
r2 = new Registro();
r1.contador = 5;
r2.contador = 7;
System.out.println("Contador r1: " + r1.contador);
System.out.println("Contador r2: " + r2.contador);
System.out.println("Contador r1: " + r1.proximoContador());
System.out.println("Contador r2: " + r2.proximoContador());
Out[4]:
In [5]:
public class Chat {
/* Parte Estática
****************/
static int contador = 0;
static int proximoContador() {
contador++;
return contador;
}
/* Parte Instância
*****************/
String nome;
Chat(String nome) {
this.nome = nome;
}
void mensagem(String msg) {
System.out.println(nome + "[" + proximoContador() + "]: " + msg);
}
}
Out[5]:
In [6]:
Chat doriana = new Chat("Doriana"),
quincas = new Chat("Quincas"),
melissa = new Chat("Melissa");
doriana.mensagem("Quem aqui gosta de dinossauros?");
quincas.mensagem("Eu gosto!");
melissa.mensagem("Dinossauros? Por que dinossauros?");
doriana.mensagem("Deixa de ser chata Melissa, você gosta ou não gosta?");
melissa.mensagem("Ainda não entendi por que dinossauros.");
Out[6]:
In [7]:
public class Grafico {
boolean preenchido;
char caractere;
Grafico(boolean preenchido, char caractere) {
this.preenchido = preenchido;
this.caractere = caractere;
}
void plota(int valor) {
for (int v = 1; v < valor; v++)
System.out.print((preenchido) ? caractere : ' ');
System.out.println(caractere);
}
}
Out[7]:
In [ ]:
In [8]:
Grafico g1 = new Grafico(true, '#');
Grafico g2 = new Grafico(false, '*');
g1.plota(10);
g1.plota(12);
g1.plota(8);
System.out.println();
g2.plota(4);
g2.plota(5);
g2.plota(7);
Out[8]:
In [ ]: