Outils pour utilisateurs

Outils du site


lang:java:variable

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
lang:java:variable [2020/03/05 00:08] – Ajout de "Initialisation complexe d'une variable constante" rootlang:java:variable [2023/04/11 09:28] (Version actuelle) – [Pointeur sur la méthode d'une classe] : précision sur les types permettant de stocker des pointeurs sur fonction root
Ligne 1: Ligne 1:
 +====POO====
 ===Type primitif=== ===Type primitif===
  
Ligne 5: Ligne 6:
   * Caractère : ''char''   * Caractère : ''char''
  
-  * Nombre entier : ''byte'', ''short'', ''int'', ''long''+  * Nombre entier : ''byte'', ''short'', ''int'', ''long''. Il n'existe pas de type non signé.
  
   * Nombre à virgule : ''float'', ''double''   * Nombre à virgule : ''float'', ''double''
Ligne 11: Ligne 12:
 [[http://imss-www.upmf-grenoble.fr/prevert/Prog/Java/CoursJava/TypeDeDonneePrimitifs.html|Types de donnée primitifs]] {{ :lang:java:variable:cours_java_types_de_donnee_primitifs_2020-02-11_23_58_01_.html |Archive le 11/02/2020}} [[http://imss-www.upmf-grenoble.fr/prevert/Prog/Java/CoursJava/TypeDeDonneePrimitifs.html|Types de donnée primitifs]] {{ :lang:java:variable:cours_java_types_de_donnee_primitifs_2020-02-11_23_58_01_.html |Archive le 11/02/2020}}
  
-===Initialisation complexe d'une variable constante===+===Pointeur sur la méthode d'une classe===
  
 +On passe par un foncteur :
 +
 +<code java>
 +import java.util.function.Function;
 +
 +public class Test {
 +  public Boolean f() {
 +    System.out.println("Fonction");
 +    return true;
 +  }
 +}
 +
 +Function<Test, Boolean> f = Test::f;
 +Test t = new Test();
 +f.apply(t);
 +</code>
 +
 +Liste des types permettant de stocker des pointeurs sur fonction :
 +
 +<code>
 +Supplier       ()    -> x
 +Consumer           -> ()
 +BiConsumer     x, y  -> ()
 +Callable       ()    -> x throws ex
 +Runnable       ()    -> ()
 +Function           -> y
 +BiFunction     x,  -> z
 +Predicate      x     -> boolean
 +UnaryOperator  x1    -> x2
 +BinaryOperator x1,x2 -> x3
 +</code>
 +
 +[[https://stackoverflow.com/questions/29945627/java-8-lambda-void-argument|Java 8 lambda Void argument]] {{ :lang:java:variable:java_8_lambda_void_argument_-_stack_overflow_11_04_2023_08_28_43_.html |Archive du 29/04/2015 le 11/04/2023}}
 +
 +Et pour une fonction qui a plus de 2 paramètres, il faut le définir soit même.
 +
 +<code java>
 +@FunctionalInterface
 +interface Function6<One, Two, Three, Four, Five, Six> {
 +  public Six apply(One one, Two two, Three three, Four four, Five five);
 +}
 +</code>
 +
 +[[https://stackoverflow.com/questions/27872387/can-a-java-lambda-have-more-than-1-parameter|Can a java lambda have more than 1 parameter?]] {{ :lang:java:variable:can_a_java_lambda_have_more_than_1_parameter_-_stack_overflow_11_04_2023_08_28_54_.html |Archive du 10/01/2015 le 11/04/2023}}
 +===Passage en copie ou référence===
 +
 +Quand une variable est passé en paramètre, elle est copié si c'est un type primitif, elle est passé en référence sinon.
 +
 +====Programmation fonctionelle===
 +
 +===Initialisation complexe d'une variable constante===
  
 Plutôt que Plutôt que
Ligne 40: Ligne 92:
 </code> </code>
  
 +Ce n'est pas encore le style d'écriture parfait mais ça permet de mettre la variable ''final''.
  
  
-===Passage en copie ou référence=== 
- 
-Quand une variable est passé en paramètre, elle est copié si c'est un type primitif, elle est passé en référence sinon. 
lang/java/variable.1583363315.txt.gz · Dernière modification : 2020/03/05 00:08 de root