Les attributs servent à stocker la valeur dans l'objet, pour pouvoir être réutilisée plus tard.
Dans ton exemple, les variables sont volatiles et ne sont plus connues après l'exécution de ta méthode.
Prends du recul sur ta classe et imagine un programme plus complexe. Par exemple la gestion d'un Panier sur un site de e-commerce.
Ce panier sera constitué d'articles.
En pseudo-code (ça ne compile pas, j'ai fait ça à titre d'exemple en étant agnostique d'un langage) :
class Cart {
List<Article> articles
add(Article article) {
articles.add(article)
}
Number priceTotal() {
return loop(articles)
.sum(price)
}
}
Si tu ne stockes pas les articles de façon "interne" dans le panier... tu perdras la donnée et ne seras pas en mesure de connaître la liste de tous les articles quand tu passeras la commande ou de connaître le prix total à payer.