Hey everyone, I've got a question about class instantiation. I often hear people say that you have to instantiate a class to "bring it to life," otherwise, it's just a model. So I'm curious: how is a class interpreted when it's never actually instantiated? For example, in my game, I have a class called `CalculMouvement` that handles movement calculations and another class `ApplicationDesMouvements` that applies those movements. But if I never create instances of these classes, are they recognized as objects? What's the difference in how the program interprets them compared to a real object? Thanks for any insights!
4 Answers
When you have instance methods, those definitely need an instance to work correctly since they rely on specific instance data. But static methods, on the other hand, don't require an instance. If a class is just intended to house static methods, it might as well be a static class since it won't be used as an object. If you're only accessing those methods to manipulate instances of other classes, it might be worth consolidating them within those classes instead, especially if they are varied in functionality.
A static class acts like a namespace for organizing functions, but it doesn't necessarily follow the object-oriented principles that classes often represent. If you find yourself not needing to create any instances of a class, maybe a function or set of functions would suffice instead of using a whole class.
I appreciate the advice! I'll rethink whether I need those classes or if simpler functions could work.
In some programming languages, everything has to be a class, which is a bit restrictive. If you're using C#, which allows for more flexibility, it’s good to understand how non-instantiated classes are treated. These classes create functions in instruction memory while defining data structures in data memory, but without an instance, you're essentially just writing functions.
If a class isn't instantiated, it functions merely as collections of functions in memory. When those functions get called, there's no 'this' context since there’s no object associated with them. So, it’s essentially just stored procedures at that point.
Got it, that makes sense! So the lack of an instance means they’re just floating around until invoked.

I see what you're saying! So you're suggesting that if I only have static methods, I might be better off defining that logic in the classes that actually create instances?