Sou novo no Fórum, e também na programação Java, a minha dúvida é a seguinte:
Tenho que fazer um programa que para cada objeto da classe Funcionario criado, ele atribua um ID sequencial, pensei em utilizar um construtor na classe Funcionario da seguinte forma:
[code] class Funcionario
{
private int id;
Funcionario ()
{
this.id=this.id +1;
}
}
[/code]
Mas o atributo seria de cada objeto entao o primeiro teria o ID=1, e o segundo também ID=1.
Pra resolver o problema eu teria que criar dois ID’s, um geral como static que seria da classe, e outro só dos objetos, ou teria outra maneira de resolver isto?
Obrigado pela atenção, acho que não me expliquei muito bem, é o seguinte:
Para cada instância da classe Funcionario eu preciso de um ID único, o primeiro instanciado tem ID=1 o segundo ID=2 e assim sucessivamente, se eu declarar o ID estático quando eu mudar o ID eu mudo pra todos não?
ex:
Funcionario f1 = new Funcionario ();
Funcionario f2 = new Funcionario ( );
f1.id=1;
f2.id=2;
Quando tentar imprimir o ID de f1 ele vai estar como 2 e não como 1, porque o atributo é da classe e não do objeto. Eu preciso que seja um ID para cada instância. Acho que me expliquei melhor agora.
class Funcionario{
private int id;
private static int ultimoId;
public static Funcionario getInstance(){
Funcionario func = new Funcionario();
return func;
}
private Funcionario (){
ultimoId++;
id = ultimoId;
}
}
public class Main{
public static void main(String args){
Funcionario func = Funcionario.getInstance();
}
}
Mas isso é só uma sugestão, do jeito que vc disse também daria certo,
mas de qualquer forma não acho muito legal esse tipo de solução, principalmente
se vc for persistir essa classe numa base de dados e quiser usar esse campo
como chave…