Les variables de JavaFX Partie 3
>> 02 March 2009
Les variables selon la visibilité
Les variables peuvent selon leurs visibilité être :
Variables de script
Variables d'instance
Variables locales
Variables de script :
Ce sont des variables déclarées au niveau d'un script, en dehors de toutes classes, fonctions ou bloc. Elles sont visibles dans l'ensemble du script.
Les variables de script sans modificateurs d'accès ne sont pas visibles de l'extérieur du script. Ces variables ont une vie qui dure tant que le script est exécuté.
Exemple :
/**
@author : Kaesar ALNIJRES
*/
package javafxapplication3;
var s = "Bonjour";
class UtiliseChaine {
function affiche() {
println(s);
}
}
println(s);
var u = new UtiliseChaine();
u.affiche();
Variables d'instance
Ce sont des variables déclarées dans une classe en dehors des fonctions et blocs. Elle sont accessibles par leur nom dans la classe et ses sous classes. En dehors de la classe, elle sont accessibles en préfixant leurs noms par le nom d'un objet de la classe.
Sans modificateurs d'accès, ces variables sont visibles uniquement au niveau du script. La durée de vie de ces variables est la durée de vie de la classe.
Exemple :
/**
@author : Kaesar ALNIJRES
*/
package javafxapplication3;
class Point{
var x:Integer;
var y:Integer;
function affiche()
{
println("x = {x}");
}
}
var p=Point
{
x:11;
y:10;
}
println("x de Point = {p.x}");
Variables locales
Ce sont des variables déclarées à l'intérieur d'un bloc d'instructions, dans une fonction par exemple. Elle sont visibles uniquement à l'intérieur de leur bloc.
La vie de ces variables s'arrête quand le bloc est quitté.
Les variables locales n'ont pas de modificateurs d'accès.
Les paramètres d'une fonction sont locales à cette fonction.
Exemple :
/**
@author : Kaesar ALNIJRES
*/
package javafxapplication3;
class Point{
var x:Integer;
var y:Integer;
function affiche()
{
var z=x+y;
println("x = {x} et z = {z}");
}
}
var p=Point
{
x:11;
y:10;
}
p.affiche();
Modificateurs d'accès pour les variables
package les variables sont accessibles uniquement au niveau de leur package
protected les variables sont accessibles dans leur package, dans leur classe et ses sous classes
public les variables sont visibles partout.
Public-read les variables déclarées avec " var " sont visibles en lecture partout
public-init les variables déclarées avec " var " sont visibles en lecture/écriture partout
on replace
Une clause utilisable avec des variables permettant d'exécuter un bloc de code quand la valeur d'une variable change de valeur, y compris l'initialisation de cette variable.
Les instruction dans le bloc peuvent être sans ou avec des paramètres passés à la clause " on replace "
Exemple :
Dans cet exemple le changement de la valeur de " x " affiche le message lié
/**
@author : Kaesar ALNIJRES
*/
package javafxapplication3;
var x=1 on replace {println("La valeur de x est maintenant {x}")};
println("x = {x}");
x=5;
on replace oldValue
Utiliser oldValue avec on replace revient à sauvegarder l'ancienne valeur de la variable.
Exemple :
/**
@author : Kaesar ALNIJRES
*/
package javafxapplication3;
var x=1 on replace oldValue {
println("La valeur de x est maintenant {x}");
println("l'ancienne valeur de x a été avant le changement {oldValue} ")
};
x=5;
x=6;
on replace oldValue [ firstIndex .. lastIndex ] = newElements { ... }
Les trois options :
firstIndex (premier élément)
lastIndex (dernier élément)
newElements (nouveaux éléments)
Sont utilisables avec des séquences et concerne la partie qui change.
Exemple :
/**
@author : Kaesar ALNIJRES
*/
package javafxapplication3;
var seq = [1..5] on replace oldValue[firstIdx .. lastIdx] = newElements {
println("Ancienne valeur {oldValue} premier élément ={firstIdx} dernier {lastIdx}");
println("Nouveaux éléments = {newElements}. La seq est maintenant = {seq}");
}
println("");
insert 7 into seq;
println("");
delete seq[0];
isInitialized
Cette fonction prend une variable en argument et retourne " true " si la variable a été initialisée, sinon " false ". Utile dans le bloc " init " et avec la clause " on replace "
Exemple :
/**
@author : Kaesar ALNIJRES
*/
package javafxapplication3;
class Point{
var x: Integer;
var y: Integer;
function affiche() {
if(isInitialized(x))
{
println("x initialisée ");
}
else
println("x non initialisée ");
}
}
var p = Point{x: 11
};
p.affiche();
var p2=Point{y:2};
p2.affiche();
Pseudo-variables
Ce sont des variables prédéfinies. Les valeurs retournées par ces variables sont utiles au moment de l'exécution d'un script.
Trois pseudo variables sont déjà disponibles
__PROFILE__ désigne l'environnement d' exécution du script
"mobile", "desktop" ou "navigateur"
__FILE__ C'est l'URL du fichier contenant le script exécutable.(String)
__DIR__ C'est l'URL du dossier du lancement du script (String)
Exemple :
/**
@author : Kaesar ALNIJRES
*/
package javafxapplication3;
println("Environement du script : ");
println(__PROFILE__);
println("");
println("L'exécutable est dans le fichier :");
println(__FILE__);
println("");
println("Le dossier contenant le script : ");
println(__DIR__);
0 comments:
Post a Comment