I we don't need public static methods then why would we need private static methods either? So, no static methods at all?<p>The reason to define a public static method is it serves as a simple entry-point to the functionality of your class.<p>And what is a constructor if not syntactic sugar for a "static method", which creates and returns an instance?<p>I also don't see the point about 'static coupling". The class whose static method you are calling could come as an argument, so it would not be static coupling after all?