JavaFX et ses fonctions
>> 17 February 2009
Les fonctions sont une partie importante de tous les langages informatiques, JavaFX ne déroge pas à cette règle. Je vous présente ici les déclarations, définitions, et usages des fonctions dans JavaFX.
Niveaux des fonctions
Les fonctions sont des fonctions d'un script (au niveau du script) ou bien des fonctions d'instance (déclarées dans une classe). Plusieurs modificateurs sont utilisables avec des fonctions en JavaFX
Les modificateurs
Les modificateurs suivants sont applicables aux fonctions
abstract
bound
override
package
protected
public
Les fonctions d'instance
Sont des fonctions déclarées à l'intérieur d'une classe
Exemple :
package javafxapplication3;
class Personne
{
var nom: String;
function afficheNom()
{
println("Nom de la Personne : {nom}")
}
}
var p=Personne
{
nom:"Kaesar ALNIJRES";
}
p.afficheNom();
Les fonctions au niveau script
Les fonctions de scripts sont déclarées au niveau d'un script en-dehors de toutes classes
/*
* test.fx
@author: ka
*/
package javafxapplication3;
def msg="Bonjour";
function afficheMessage()
{
println("Le message est {msg}") ;
}
Utilisation
Les fonctions sans arguments et sans valeur de retour
Remarquez dans l'exemple suivant que l'utilisation de la fonction intervient avant sa définition. Il est possible d'appeler une fonction avant ou après sa définition.
Note :
La règle de nommage des fonctions et variables est exactement la même que dans Java ;
minuscule, Majuscule, Majuscule, etc.
Exemple :
/*
* test.fx
@author: ka
*/
package javafxapplication3;
def msg="Bonjour";
afficheMessage();
function afficheMessage()
{
println("Le message est {msg}") ;
}
Exemple :
Le même exemple mais la valeur de retour est déclarée explicitement comme " Void "
/*
* test.fx
@author: ka
*/
package javafxapplication3;
def msg="Bonjour";
afficheMessage();
function afficheMessage():Void
{
println("Le message est {msg}") ;
}
Des fonctions avec des paramètres
Dans l'exemple suivant, déclarer et appeler une fonction avec un paramètre. Le choix des nom des paramètres est laissé au développeur, le type doit être parmi les types disponibles dans JavaFX ; des types prédéfinis ou définis par le développeur.
Une fonction qui prend une String
Exemple :
/*
* test.fx
@author: ka
*/
package javafxapplication3;
afficheMessage("Bonjour");
function afficheMessage(chaine:String)
{
println("Argument = {chaine}") ;
}
Une fonction qui prend deux arguments de type Integer
Exemple :
Une fonction qui prend deux chiffres et ajoute les deux
/*
* test.fx
@author: ka
*/
package javafxapplication3;
function ajouter( arg1: Integer, arg2: Integer ) {
result = arg1 + arg2;
println("{arg1} + {arg2} = {result}");
}
var result;
ajouter(10,10);
Une fonction qui prend des objets d'une classe définie dans le script
/*
* test.fx
@author: ka
*/
package javafxapplication3;
class Message
{
var s: String;
}
var msg1=Message
{
s:"Bonjour";
}
var msg2=Message
{
s:"Le monde !!";
}
function afficher( arg1: Message, arg2: Message ) {
println("Le premier message = {arg1.s} et le second {arg2.s}");
}
afficher(msg1,msg2);
Des fonctions avec valeur de retour
Il suffit d'indiquer la valeur de retour après les parenthèses de la fonction, après les deux points. Si aucun valeur de retour n'est indiquée " Void " est retournée par défaut.
Exemple :
Une fonction qui prend deux Integers et retourne le résultat de l'addition des Integers.
/*
* test.fx
@author: ka
*/
package javafxapplication3;
function ajouter( arg1: Integer, arg2: Integer ): Integer {
return arg1 + arg2;
}
var result = ajouter(10,10);
println("le résultat retourné : {result}");
Note :
Utiliser le mot clé " return " pour retourner une valeur d'une fonction, n'est pas obligatoire. Par défaut le résultat de la dernière expression est retourné
Exemple :
/*
* test.fx
@author: ka
*/
package javafxapplication3;
function ajouter( arg1: Integer, arg2: Integer ): Integer {
arg1 + arg2;
}
var result = ajouter(10,10);
println("le résultat retourné : {result}");
Fonction spéciale : run
Cette fonction présente le point d'entrée de scripts. Elle reçoit les arguments passés à la ligne de commande après le nom d'un script sous forme d'une séquence " String ", comme suite :
javafx nomScript arg1 arg2
Si la fonction "run" n'est pas fourni, Les instructions à exécuter sont placées au niveau du script. Dans ce cas le compilateur va générer une fonction "run" sans arguments et placer le code à exécuter dans cette " run " d'une façon transparente pour l'utilisateur.
Note :
le noms de la séquence " args " dans l'exemple est au choix du développeur.
Exemple :
/*
* test.fx
@author: ka
*/
function run(args : String[]) {
// expressions Java utilisées dans le script
def chiffre1 = java.lang.Integer.parseInt(args[0]);
def chiffre2 = java.lang.Integer.parseInt(args[1]);
var result = ajouter(chiffre1,chiffre2);
println("le résultat retourné : {result}");
}
function ajouter( arg1: Integer, arg2: Integer ): Integer {
arg1 + arg2;
}
Passer des arguments à la ligne de commande dans NetBeans
Exemple :
package javafxapplication3;
var result;
function run(args : String[]) {
// expressions Java utilisées dans le script
def chiffre1 = java.lang.Integer.parseInt(args[0]);
def chiffre2 = java.lang.Integer.parseInt(args[1]);
result=ajouter(chiffre1,chiffre2);
println("Le résultat de 2 arguments de run = {result}");
}
function ajouter( arg1: Integer, arg2: Integer ): Integer {
arg1 + arg2;
}
Un clic droit sur le projet -> properties
Sélectionnez -> Run
- Un clic sur " Browse " pour sélectionner " test " comme la classe principale " Main Class " (Le fichier contenant l'exemple est test.fx).
- Dans le champ " Main Class " n'oubliez de préfixer la classe principale par le nom du package (Si la classe est définie dans un package)
- Dans le champ " JVM arguments " Entrez le nom de la classe principale avec si besoin le nom du package -> suivi des arguments à passer au programme (ici 1 et 2)
- Un clic sur " OK " pour valider
Exécuter le projet
Un clic droit sur le projet -> Run Project
Le résultat de l'addition des deux arguments passés à run est affiché
0 comments:
Post a Comment