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 22:35] – [Type primitif] : Pas de type non signé 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 10: Ligne 11:
  
 [[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}}
 +
 +===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=== ===Initialisation complexe d'une variable constante===
Ligne 41: Ligne 94:
 Ce n'est pas encore le style d'écriture parfait mais ça permet de mettre la variable ''final''. Ce n'est pas encore le style d'écriture parfait mais ça permet de mettre la variable ''final''.
  
-===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> 
- 
-===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.1583444126.txt.gz · Dernière modification : 2020/03/05 22:35 de root