В Java есть специальный тип метода, который называется конструктором . Конструкторы в Java используются для инициализации объекта, поэтому они вызываются в момент создания объекта.

Конструкторы в Java

В Java есть специальный тип метода, который называется конструктором. Конструкторы в Java используются для инициализации объекта, поэтому они вызываются в момент создания объекта.

При инициализации в конструкторе задаются начальные значения для переменных.

Далее пример с комментариями:

// GameUnit.java

// класс, описывающий точку в двумерном пространстве
class Point2D
{
    int x; // аттрибуты класса
    int y;


    // конструктор по умолчанию
    Point2D()
    {
        this.x = 0;
        this.y = 0;
    }

    // конструктор с двумя параметрами
    // при вызове различие происходит по параметрам - это назывется перегрузка метода
    Point2D(int x, int y)
    {
        this.x = x; // устанавливаем значения для переменных
        this.y = y;
    }

    public String toString()
    {
        return String.format("[Object Point{ x = %d, y = %d }]", x, y);
    }
}

// класс, описывающий точку в трехмерном пространстве
class Point3D extends Point2D
{
    int z;

    // конструктор по умолчанию
    Point3D()
    {
        // инициализация родительского конструктора
        // super - ссылается на родительский конструктор
        super();
        this.z = 0;
    }

    Point3D(int x, int y, int z)
    {
        super(x,y); // вызов второго родительского конструктора
        this.z = z;
    }

    @Override
    public String toString()
    {
        return String.format("[Object Point{ x = %d, y = %d, z = %d }]", x, y, z);
    }

}


// класс игрового объекта
class GameUnit
{
    private Point2D position2d;  // аттрибутом класса может быть пользовательский класс
    private Point3D position3d;


    // конструктор по умолчанию
    GameUnit()
    {
        position2d = new Point2D();
        position3d = new Point3D();
    }

    // конструктор с 2d точкой
    GameUnit(Point2D position)
    {
        this.position2d = position; // инициализируем объект значениями
    }

    // конструктор с 3d точкой
    GameUnit(Point3D position)
    {
        this.position3d = position;
    }


    // возвращает текущую 2D позицию игрового объекта
    Point2D getPosition2D()
    {
        return position2d;
    }

    // возвращает текущую 3D позицию игрового объекта
    Point3D getPosition3D()
    {
        return position3d;
    }

}


// главный класс
public class Program
{
    public static void main(String[] args)
    {
        Point2D startPosition = new Point2D(10,10);
        GameUnit unit = new GameUnit(startPosition); // создаем объект, конструктор вызывается автоматически

        // возвращаем позицию объекта x
        System.out.println(unit.getPosition2D());


        Point3D  startPosition2 = new Point3D(10,10,20);
        GameUnit unit2 = new GameUnit(startPosition2); // создаем объект, конструктор вызывается автоматически

        // возвращаем позицию объекта x
        System.out.println(unit2.getPosition3D());
    }
}


//[Object Point{ x = 10, y = 10 }]
//[Object Point{ x = 10, y = 10, z = 20 }]

Таким образом, если Вы уже знаете какой либо объектно-ориентированный ЯП, то понимание конструкторов в Java для Вас не станет проблемой.