I'm new to programming and tutorials have shown me how to write methods and classes, but I'm still not getting why they're useful. What problem do they solve?
Why do we need methods and classes in programming?
Answers
Start with functions. If you need to do the same calculation in several places, you can put the instructions in a function, give it a name, and call it wherever you need it. When the calculation changes, you can update that one function instead of hunting down every copy.
A method is usually a function associated with a class or object. It gives you a named operation in the context of that class. The exact rules for methods depend on the language.
Reply to this answer
Think of a deck of cards. It has data, such as the cards and their current order, and operations, such as shuffle and draw. A Deck class can put those things together. Each deck object can then have its own cards and order, while using the same definitions for how to shuffle and draw.
You could also keep the cards in a list and pass that list to separate functions. A class is another way to arrange the same work, and it can make it clearer which operations belong with the data.
Bexlow.7n:
That also gives you a place to handle cases like trying to draw from an empty deck, rather than leaving every caller to figure it out.
Reply to this answer
They're tools for managing complexity, not magic ingredients that make a program possible. Classes can help keep related data and behavior together, but a small task might be perfectly clear with just a few functions. Adding a class everywhere can make code harder to follow too.
Reply to this answer
Try making a small card deck using a list and a couple of functions first. Then try a version with a Deck class and methods. Make two decks and draw from each one independently.
Compare what you have to pass around and where the rules for drawing live. That makes the tradeoff more concrete than memorizing a definition.
Reply to this answer
Add your answer
Answers are reviewed before publication.
!tally~the+marbles:
So a method is still a function, but it's connected to a class or object?
n15~handoff_804:
Yes, that's a useful starting point. Some languages have different kinds of methods, so the details of what they can access will vary.