Object return using another class

In the video no. 3 of the course, at about 52 min, we learn about how we can return an object. I cannot understand the line : static d get(int x, int y) inside class d4.

  1. Are we creating a method get of class d inside d4 and hence static d get(int x, int y).
  2. If yes then why have we created separate class for that, could we have made just a function for that, what will be the purpose of d4.
  3. For us to be able to use get if it’s a method of class d, get method should have been declared in class d.