Bonjour,
J'ai une question assez bête, mais peut-on définir des constructeurs dans une classe JavaFx et si oui comment cela se présente-t-il?
Merci d'avance.
Version imprimable
Bonjour,
J'ai une question assez bête, mais peut-on définir des constructeurs dans une classe JavaFx et si oui comment cela se présente-t-il?
Merci d'avance.
Non ce n'est pas possible.
Par contre tu peux faire des méthodes statiques/function de niveau script factory comme il en existe dans les classes Color (voir Color.color() ou Color.rgb()) ou Font (voir Font.font()).
D'accord, alors je suis allé voir les méthodes dont tu me parles et j'ai essayé de coder ce genre de méthode mais j'y arrive pas. Est-ce que tu peux me donner un exemple plus concret s'il-te-plait?
Pas très compliqué :
Pareil/similaire pour les autres méthodes factory existantes dans cette classe.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 public function rgb(r: Integer, g: Integer, b: Integer): Color { rgb(r, g, b, 1.0); } public function rgb(r: Integer, g: Integer, b: Integer, o: Number): Color { var red: Number = Math.max(0, r); red = Math.min(255, red); red /= 255.0; var green: Number = Math.max(0, g); green = Math.min(255, green); green /= 255.0; var blue: Number = Math.max(0, b); blue = Math.min(255, blue); blue /= 255.0; color(red, green, blue, o); } public function color(r: Number, g: Number, b: Number): Color { color(r, g, b, 1.0); } public function color(r: Number, g: Number, b: Number, o: Number): Color { var red: Number = Math.max(0.0, r); red = Math.min(1.0, red); var green: Number = Math.max(0.0, g); green = Math.min(1.0, green); var blue: Number = Math.max(0.0, b); blue = Math.min(1.0, blue); var opacity: Number = Math.max(0.0, o); opacity = Math.min(1.0, opacity); Color { red: red green: green blue: blue opacity: opacity } } public class Color { public-init var red: Number = 1.0; public-init var green: Number = 1.0; public-init var blue: Number = 1.0; public-init var opacity: Number = 1.0; }
Ok Merci beaucoup pour t'as réponse.
Il n'y a pas vraiment de constructeur parce que l'idiome typique est d'initialiser les variables publiques de la classe lors de l'instanciation :
var c = Circle { radius: 50, fill: Color.RED }
De plus, avec le méchansme on replace, il est possible d'initialiser des variables privées dépendantes des publiques.
Voir aussi init {} et postinit {}.