Passing an instance is passing a function pointer. Along with a ton of other things, of course. Java introduced the concept of "single abstract method" types to do function pointer-like things.
A class like Person.java is often a data class that will need to be used in comparisons and possibly hashCode-based collection keys. It is important to create equals (Object) and hashCode () ...