Constantes Globais

Olá, estou com uma dúvida com constantes.

Tenho uma classe que nela está declarado várias Constantes:

public class Jw_lic {
	public String JW_SIS = "Sistema IRD";
	public String JW_LIC = "Banco Cliente S/A";
                    ...
}

Como eu faço para que a Classe Principal enxergar essas constantes?
preciso de algo parecido com isso:

public class Principal {
	public static void main(String[] args) {
		String empresa = JW_LIC;
	}
}

ou herde a classe que tem as constantes ou crie uma interface…

public class Jw_lic { public static final String JW_SIS = "Sistema IRD"; public static final String JW_LIC = "Banco Cliente S/A"; ... }

public class Principal { public static void main(String[] args) { String empresa = Jw_lic.JW_LIC; } }

Sou novato, preciso de exemplos

Obrigado dok, funcionou certinho!
Porque é usado o parâmetro “final” ?
Parece que ele funciona sem ele né?

Como eu faço para herdar todas as constantes dessa classe?

O final é que caracteriza uma constante em Java. Colocando final o atributo não pode ser alterado.

:joia: :grin:

[quote=“mhferreira”]
Como eu faço para herdar todas as constantes dessa classe?[/quote]

Para você herdar estas constantes você terá que declarar a classe Principal da seguinte forma:

public class Principal extends Jw_lic

Mas lembre-se que Java não permite herança múltipla. Talvez não seja de grande valia fazer Principal herdar de Jw_lic.

[quote=“dok”][quote=“mhferreira”]
Como eu faço para herdar todas as constantes dessa classe?[/quote]

Para você herdar estas constantes você terá que declarar a classe Principal da seguinte forma:

public class Principal extends Jw_lic

Mas lembre-se que Java não permite herança múltipla. Talvez não seja de grande valia fazer Principal herdar de Jw_lic.[/quote]

Não tem jeito de fazer tipo um import? pois terei várias classes com constantes, e a classe principal precisará enxergar essas constantes

Se vc colocar todas as classes no mesmo pacote, vc terá que fazer algo parecido com isso:

public class Principal { public static void main(String[] args) { String variavel = Classe1.CONSTANTE1; String outravariavel = Classe2.CONSTANTE2; } }

Vc está querendo colocar tudo na mesma classe, o que pode bagunçar um pouco seu código.

Se acaso estas classes que possuem constantes estiverem em pacotes diferentes, em Java existe o import sim. Que é colocado no topo do arquivo especificando os pacotes ou classes que vc deseja importar.

[quote=“dok”]Se vc colocar todas as classes no mesmo pacote, vc terá que fazer algo parecido com isso:

public class Principal { public static void main(String[] args) { String variavel = Classe1.CONSTANTE1; String outravariavel = Classe2.CONSTANTE2; } }

Vc está querendo colocar tudo na mesma classe, o que pode bagunçar um pouco seu código.

Se acaso estas classes que possuem constantes estiverem em pacotes diferentes, em Java existe o import sim. Que é colocado no topo do arquivo especificando os pacotes ou classes que vc deseja importar.[/quote]

Desculpe a insistência, é que eu tenho dezenas de constantes na Classe 1 e outras dezenas de constantes na Classe 2.
E a minha Classe principal precisa dessas constantes para rodas. Terei que “puxá-las” uma a uma ou tem um jeito que chamo a Classe 1 e a Classe 2 ela já traz todas as constantes ? Por exemplo, digamos que se tratam de valores numéricos, e eu quero que a Classe principal já trate-os diretamente com o nome da constante para efetuar calculos. EX:
CONS1 + CONS2 + CONS3 …

vc pode herdar as duas assim

class classe1
{}

class classe2 extends classe1
{}

class principal extends classe2
{}

assim vc pega todas as constantes… mas isso eh horrivel!!!

vc pode criar 2 interfaces

interface inter1
{
constantes…
}
interface inter2
{
constantes…
}

class principal implements inter1,inter2
{}

assim vc pega todas as constantes!!!

Nossa obrigado shadow
Nunca tinha usado Interface. Parece que o trem é bão mesmo ! :lol: :lol:

Deu certinho aqui.

Só lembrando que para usar interfaces para herdar estas variáveis, elas terão que ser final, ou seja, não poderão ser alteradas.

ele n quer constantes??? constantes n mudam!!!

Grande informação. Putz não sabia disso, fiquei maravilhado com esta informação do shadow. Estou maravilhado com isso. :roll:

Eu sei disso, shadow. Eu estou tentando avisar sobre uma possível tentativa de colocar atributos que não sejam constantes, o que é muito comum as pessoas tentarem fazer.

:yven: :yraiva: :telazul:

Só lembrando que com Java 5, o mais elegante seria usar Enum.

:wink:

[quote=“vinci”]Só lembrando que com Java 5, o mais elegante seria usar Enum.

:wink:[/quote]

Fala Vinci blz?
Nunca ouvi falar desse tal Enum. Tem um exemplo ou algum material para disponibilizar?

Olha esse artigo, na seção Enumerations.

Lembrando, Enum só no Java 5. :wink:

Obs: aproveita e lê o artigo inteiro.

bom dia pessoal blza
por favor me corrijam se estiver errado
o enumeratons serve para se trabalhar com contantes
todas os valores inseridos em uma classe que estende utiliza enumerations são inalteraveis

public enum Color { //esse é o enunciado do classe?


//aqui dentro eu declaro minhas constantes?? tipo String red; String blue

}

é mais ou menos essa a idéia ? :???:
por favor ajudem um leigo
desde ja obrigado

1 - Implementar interfaces para pegar cosntantes é uma péssima prática, deixa o códiog cofuso (você não sabe de onde as cosntantes vieram), tente usar a constante e a interface sem implementar:

int japoneis abc = Constantes.JAPONEIS

2 - Em Java 5, use static import para pegar cosntantes assim

3 - Enuns servem para definir um itnervalo de valores possíveis e não se preocupar em ficar dadno valor as suas cosntantes, a idéia é por aí