Static methods in OOP
<p>I've always known what static methods are by definition, but I've always avoided using them at school because I was afraid of what I didn't know.</p>

<p>I already understand that you can use it as a counter throughout your entire project.</p>

<p>Now that I am interning I want to know when exactly static methods are used. From my observation so far, static classes/methods are used when it contains a lot of functions that will be used in many different classes and itself doesn't contain too many critical local variables within the class where it is not necessary to create an instant of it.</p>

<p>So as an example, you can have a static class called Zip that zips and unzips files and provide it to many different classes for them to do whatever with it.</p>

<p>Am I right? Do I have the right idea? I'm pretty sure there are many ways to use it.</p>