Java créer un ID unique pour chaque objet instancié à l'aide de méthodes d'instance au lieu de la classe/méthodes statiques

Assez nouveau pour ce j'espère donc avoir la terminologie utilisée dans le titre de la droite.

Je suis à essayer de comprendre comment créer un méthode d'instance que va faire ce qui suit:

--Un numéro d'identification est retourné.

--Que chaque objet est créé à partir du constructeur de la classe(instancié?), un entier unique numéro d'identification est attribué. Le premier numéro de l'ID est 1, et que de nouveaux objets sont instanciés, les numéros seront attribués.

Je suis en mesure de trouver des exemples de la classe/méthodes statiques qui ne le ci-dessus, cependant je n'arrive pas à comprendre comment faire cela avec une méthode d'instance. Ma tentative est ci-dessous:

class Coordinates
{
    private int iD = 0;
    private float xCoordinate;
    private float yCoordinate;

    public Coordinates()
    {
        //Asks for input and assigns it to the two variables below
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Please enter the X Coordinate followed by the return key");
        xCoordinate = keyboard.nextDouble();
        System.out.println("Please enter the Y Coordinate followed by the return key");
        yCoordinate = keyboard.nextDouble();

        iD++;
    }

    public getiD()
    {
        return iD;
    }

}

Ma méthode main est comme suit:

public class Machine
{
    public static void main(String[] args)
    {
        Coordinates c1 = new Coordiantes();
        Coordinates c2 = new Coordiantes();
        Coordinates c3 = new Coordiantes();

        System.out.println("ID: " + c1.getID());
        System.out.println("ID: " + c2.getID());
        System.out.println("ID: " + c3.getID());


    }
}

Veuillez noter que je n'ai pas inclus la totalité de mon code pour des raisons de simplicité et de facilité à suivre. J'espère que j'ai ajouté assez.

Aussi, je ne veux pas utiliser java.util.UUID.

Vous avez besoin d'un static id générateur et une instance id champ de l'instance en cours.

OriginalL'auteur SeesSound | 2016-02-17