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/eclipse récupérer la valeur d'une variable d'une classe a l'autre

briocheOchoco
briocheOchoco
Niveau 1
30 juin 2021 à 09:31:33

bonjour j'aimerais si possible avoir un exemple et/ou une explication de comment récupérer la valeur d'une variable dans une autre classe au sein du même package

par exemple si j'ai int chiffre =12;comment récupérer ça dans une autre classe/package merci de vos réponses

cybevil
cybevil
Niveau 27
30 juin 2021 à 10:39:46

On utilise des getters, attention qu'il faut qu'une instance de l'objet Chiffre soit créé avant de pouvoir appelez le getter.

Chiffre.class

package model;

public class Chiffre {

	private int numChiffre;

	public Chiffre(int numChiffre) {
		this.numChiffre = numChiffre;
	}

	public int getNumChiffre() {
		return numChiffre;
	}

}

Main.class

package application;

import model.Chiffre;

public class Main {

	public static void main(String[] args) {

		Chiffre c1 = new Chiffre(7);
		
		System.out.println(c1.getNumChiffre());

	}

}
Message édité le 30 juin 2021 à 10:41:25 par cybevil
briocheOchoco
briocheOchoco
Niveau 1
30 juin 2021 à 11:07:53

ah ouais ok merci beaucoup je galerais merci

infireman
infireman
Niveau 9
30 juin 2021 à 15:09:34

Ou tout simplement


public class Chiffre {
    public int numChiffre;
}

Si les utilisateurs de la classe s’attendent à pouvoir récupérer et modifier la variable, c’est que par définition elle doit être publique. Et vous allez me dire « il faut pouvoir vérifier que la valeur donnée est bonne ». Et bien déjà OK ça pourrait être une raison de le mettre en privé mais ça n’a pas l’air d’être le cas ici et de plus, dans un code propre, ce n’est pas au moment de set la variable qu’il faut vérifier qu’elle est bonne mais au moment de l’utiliser dans l’algo par exemple

cybevil
cybevil
Niveau 27
30 juin 2021 à 15:42:15

Le 30 juin 2021 à 15:09:34 :
Ou tout simplement


public class Chiffre {
    public int numChiffre;
}

Si les utilisateurs de la classe s’attendent à pouvoir récupérer et modifier la variable, c’est que par définition elle doit être publique. Et vous allez me dire « il faut pouvoir vérifier que la valeur donnée est bonne ». Et bien déjà OK ça pourrait être une raison de le mettre en privé mais ça n’a pas l’air d’être le cas ici et de plus, dans un code propre, ce n’est pas au moment de set la variable qu’il faut vérifier qu’elle est bonne mais au moment de l’utiliser dans l’algo par exemple

Dans un code propre on respecte le principe d'encapsulation, oui juste passer l'attribut en public marche mais évitons de propager de mauvaise pratique.

Message édité le 30 juin 2021 à 15:43:16 par cybevil
DengJu
DengJu
Niveau 6
30 juin 2021 à 15:57:03

Le 30 juin 2021 à 15:09:34 infireman a écrit :
Ou tout simplement


public class Chiffre {
    public int numChiffre;
}

dans un code propre, ce n’est pas au moment de set la variable qu’il faut vérifier qu’elle est bonne mais au moment de l’utiliser dans l’algo par exemple

Il faut vérifier aux 2 moments, la redondance c'est plus sécurisé :ok:

cybevil
cybevil
Niveau 27
30 juin 2021 à 15:59:59

dans un code propre, ce n’est pas au moment de set la variable qu’il faut vérifier qu’elle est bonne mais au moment de l’utiliser dans l’algo par exemple

Alors non dans un code propre on effectue les tests pouvant être effectué en amont dans le setter de la classe et s'il y a des tests spécifiques à la limite hors de la classe et encore.

infireman
infireman
Niveau 9
30 juin 2021 à 17:29:25

Si dans un calcul on a besoin qu’une variable soit positive par ex, il vaut mieux mettre le Check directement là ou c’est utilisé, puisque c’est dans ce contexte précis qu’on a besoin de cette condition et pas forcément dans le cas général alors que si on le fait dans le setter on n’a plus le check directement au dessus de là ou c’est utilisé et c’est au programmeur de se rappeler que le setter (qui n’a pas forcément de rapport avec l’algorithme qui utilise la variable) fait déjà le Check

boucif
boucif
Niveau 24
30 juin 2021 à 20:16:34

Le 30 juin 2021 à 15:09:34 :
Ou tout simplement


public class Chiffre {
    public int numChiffre;
}

Si les utilisateurs de la classe s’attendent à pouvoir récupérer et modifier la variable, c’est que par définition elle doit être publique. Et vous allez me dire « il faut pouvoir vérifier que la valeur donnée est bonne ». Et bien déjà OK ça pourrait être une raison de le mettre en privé mais ça n’a pas l’air d’être le cas ici et de plus, dans un code propre, ce n’est pas au moment de set la variable qu’il faut vérifier qu’elle est bonne mais au moment de l’utiliser dans l’algo par exemple

Tu as les getter setter
https://www.w3schools.com/java/java_encapsulation.asp

En plus dans eclipse tu as une fonctionnalité pour les créer normalement

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