Comment by rom1v

11 hours ago

> The difference in the code is exactly one word: value.

What is unclear to me is why the decision to use a Point instance as a value or as a reference is made in the class definition rather than by the caller.

> Point[] point = new Point[10];

For the same class, I might need an array of values in one place and an array of references elsewhere within the same codebase.

What about the case of just needing one, not a collection? And when a function receives a Point, how does it know if it's a value or a reference?