So far we have been creating objects within a class. This is not necessary. As a matter of fact, inappropriate since main() is not part of the class definition. In addition, if we need creating objects of multiple classes, which class should main() reside?
As seen in the Student class example, the best place to create Student objects is outside the Student class since instantiating and using a class is NOT logically part of the class itself. So once a class is designed and implemented, it is typically used in another class. If we have just a Student class and we'd like to test all of its methods, we create a Tester class for this purpose, where objects of Student class are created in main() of the Tester class.
Another thinking paradigm switch is the method call. Compare the non object-oriented approach and the object-oriented approach below. Do you see how the method calls are different?