CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] à quoi servent les attributs ?

Morrocan47
Morrocan47
Niveau 6
21 juillet 2019 à 07:25:05

Je suis débutant et je viens de regarder une vidéo sur les attributs, mais je saisis pas trop l'intérêt pour le moment :(

exemple :

public class Test{
	public Test(String x, int num) {
		
		
		this.mX=x;
		this.mN=num;
		
		System.out.println(mX + " = " + "num" + mN);
		
	}
	
	private String mX;
	private int mN;
}

peut-être remplacé par cette seule ligne :

public class Test{
	public Test(String x, int num) {
		
		
		
		System.out.println(x + " = " + "num" + num);
		
	}
	
	
}

Pourquoi on passe par des attributs qui complexifient le code au lieu de se servir de variables :question:
Si quelqu'un peut m'éclairer et me vulgariser ce à quoi ils pourraient servir plus tard, merci :noel:

LambdaFunction
LambdaFunction
Niveau 10
21 juillet 2019 à 08:00:30

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.

Nefr2
Nefr2
Niveau 34
21 juillet 2019 à 19:36:38

L'exemple que tu as trouvé est pas fou aussi il porte à confusion :ok:

 public Test(String x, int num) 

permet de construire un objet de type Test, il a pas vocation a effectuer des tâches comme afficher une somme. Ici en affichant un truc il voulait juste montrer qu'on peut utiliser les attributs quoi, mais c'est pas le but réel de la création d'objet :hap:

Un objet c'est comme un nouveau type de variable. Par exemple si je veux un objet Localisation, qui contient des coordonnés. Il me faudra deux attributs int longitude et int latitude. Et j’obtiendrai un "nouveau type de variable" qui stock des localisations sur le globe :ok:

PatateChaude16
PatateChaude16
Niveau 7
23 juillet 2019 à 16:16:44

C'est comme stocker la largeur et la longueur d'un objet rectangle :hap:

Pseudo supprimé
Pseudo supprimé 30 juillet 2019 à 00:27:04

Vu l'exemple que tu donnes l'auteur tu ne dois pas avoir entendu parler de programmation orientée objet. Va te documenter sur le sujet, tout deviendra plus clair

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment