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

Méthode statique JAVA

Hyderman
Hyderman
Niveau 2
29 août 2018 à 12:18:38

Bonjour,

J'ai un peu près compris la différence un static et non static mais j'ai quelques questions.

1.Une méthode avec une valeur de retour à la fin est toujours static ? ou une méthode static a toujours une valeur de retour ?
2.Une méthode static a toujours le mot clef static écrit avant le type ?

blackapplex
blackapplex
Niveau 10
29 août 2018 à 13:43:25

1) Je dirai que non et non, static c'est juste pour dire que l'instantiation de l'objet est pas une condition d'utilisation de la méthode (pour ce que je m'en rappelle)
2) je crois que oui

assis_toi
assis_toi
Niveau 9
29 août 2018 à 14:13:30

static permet d'appeler une méthode sans avoir besoin d'instancier un objet
pouvoir faire :
taclasse.fonction();

au lieu de :
taclasse f = new taclasse();
f.fonction();

godrik
godrik
Niveau 30
29 août 2018 à 15:56:28

Typiquement static est utilise pour les fonctions utilitaires qui ne dependent pas de la valeur d'un objet.

Dans la class String par exemple, append va etre une fonction non static parcequ'elle va changer l'etat d'un objet string. De la meme facon la fonction length va etre non static parcequ'elle va calculer la longeur d'un String en particulier.

La fonction valueOf prend (par exemple) un entier en parametre et va retourner un String qui represente cet entier. Cette fonction n'opere pas sur un String en particulier. Donc c'est une fonction typiquement static.

Hyderman
Hyderman
Niveau 2
29 août 2018 à 22:55:14

Par exemple dans cet exo j'ai une fonction static pourtant elle instancie un objet "res" et le retourne à la fin. Pourtant de ce que j'ai compris une fonction static n'instancie pas d'objet.

	static Livre2 lireLivre() {
		Scanner sc = new Scanner(System.in);
		Livre2 res = new Livre2();
		System.out.println("Entrez le nom de l'auteur : ");
		res.auteur = sc.nextLine();
		System.out.println("Entrez le titre");
		res.titre = sc.nextLine();
		System.out.println("Entrez l'editeur");
		res.editeur = sc.nextLine();
		return res;
  }
angivore
angivore
Niveau 10
30 août 2018 à 00:37:15

Une fonction statique peut instancier un objet, tout comme tu pourrais le faire dans n'importe quelle autre fonction. Ton exemple illustre une des utilisations des fonctions statiques: elles peuvent faire office de constructeur, pour pouvoir avoir différents constructeurs nommés (tu fais Livre2 livre = Livre2.lireLivre() plutôt que Livre2 livre = new Livre2(), et tu pourrais en définir d'autres avec des noms différents alors qu'avec le constructeur t'es bloqué tu ne peux en créer qu'un qui ne prend pas d'arguments )

Cependant ce n'est pas le seul cas d'utilisation, typiquement tu vas utiliesr un static à partir du moment où tu n'as pas besoin d'avoir un objet instancié au moment de l'appel de la fonction, comme ça tu peux effectivement utiliser ta fonction sans avoir d'instance vu que y'en a pas besoin de toute manière

Message édité le 30 août 2018 à 00:37:35 par angivore
Hyderman
Hyderman
Niveau 2
30 août 2018 à 15:59:25

Ok merci, je pense avoir compris les grandes lignes, il ne reste plus qu'à voir en pratique.

SpringBoost
SpringBoost
Niveau 6
02 septembre 2018 à 10:17:14

Le 30 août 2018 à 15:59:25 Hyderman a écrit :
Ok merci, je pense avoir compris les grandes lignes, il ne reste plus qu'à voir en pratique.

comme exemple intéressant tu as le design pattern singleton, très utilisé.

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