The method in question is not a static method. Such methods are called "instance method". That means, they need an instance for a call. Actually, this instance (something on the left side of the dot ('.'), like in the call
) is passed during the call to the instance method as an additional (hidden) parameter. In the method implementation, this instance is known by a keyword "this" (which is usually omitted where it is unambiguous).
Look at your method
: you never use "this" (that is, never use any instance members of
. So, having an instance method here makes no sense; you can declare
as static. This way, you will perform the call without an instance:
1) You cannot do it with
as it is an instance method.
2) You should declare this method as static, and then you can.
: If you call it OOP, you are gravely mistaken. You are not even close yet. "Real" OOP will start when you start overriding abstract/virtual method, and not formally, but where it is really critical to have late binding. Right now, you are pretty far from this step, it looks like. Not to worry: you should move there, eventually.