Bom pessoal,
Eu queria saber qual a diferença entre static e const,
se são praticamente a msm coisa e só muda o nome,
ou se são completamente diferentes e eu entendi errado
q servem pra msm coisa
Vlw ai quem pode ajudar.
Qual(is) a(s) diferença(s) entre static e const?
3 Respostas
não são a mesma coisa... constante é algo que não tem o seu valor alterado... ou seja... o modificador final é que define uma constante...
uma constante pode estar em varios escopos... quando vc tem uma variável com static e final, ai vc tem uma constante que é unica para todo o programa a qualquer instancia do programa...
por exemplo, digamos que vc tenha uma classe chamada Conta, e que não seja possivel alterar o número da conta após a conta criada, então o número da conta é algo constante dentro do escopo de cada conta assim...public class Conta {
private final String numero;
public Conta(final String numero) {
this.numero = numero;
}
public String getNumer() {
return numero;
}
//...
}
para esta classe... cada conta tem uma constante... que é o seu número, para cada Conta criada esse valor nunca muda...
.............
O modificador static é para indicar que aquela propriedade, não depende de uma instancia da classe, e sim que ela vale para todas as classes do programa...
por exemplo
public class Conta {
private static Conta ultimaContaCriada;
public static getUltimaContaCriada() {
return ultimaContaCriada;
}
private final String numero;
public Conta(final String numero) {
this.numero = numero;
ultimaContaCriada = this;
}
public String getNumer() {
return numero;
}
//...
}
System.out.println(Conta.getUltimaContaCriada());
quando vc junta os 2... static + final... vc tem 1 constante que é a mesma em todo seu aplicativo... o seu valor não muda... pois o modificador final indica que é constante... e o modificador static indica que não depende de instancia da classe.... assim por exemplo
public class Conta {
public static final Banco BRASIL = new Banco("Brasil");
private static Conta ultimaContaCriada;
public static getUltimaContaCriada() {
return ultimaContaCriada;
}
private final String numero;
public Conta(final String numero) {
this.numero = numero;
ultimaContaCriada = this;
}
public String getNumer() {
return numero;
}
//...
}
neste caso o banco brasil é uma constante... ele não sera modificado nunca... e vc pode acessar através de Conta.BRASIL, por exemplo
System.out.println(Conta.BRASIL);
const é uma palavra chave não usada em Java. Em seu lugar é usado o final, que indica que determinada variável não pode ter sua referência alterada.
É importante não confundir final com static, uma vez que são coisas (bem) diferentes. Veja a explicação de Lavieri e pesquise aqui no fórum que achará várias explicações. 
um atributo declarado como static pertence a class e uma const nao pertence a class e sim a um objetov instanciado. Tipo vc pode acessar uma variavel static sem precisa dar aquele new para o objeto lembra? Mas para const vc deve fazer isso.
Agora converte isso em code e manda ver… flw 