Escolar Documentos
Profissional Documentos
Cultura Documentos
var a = Aluno {
nome: “Fulano”
nota: 3
public override function toString() : String {
"Aluno {nome} ({nota})";
}
};
println(new Aluno);
println(a);
Binding:
permite associar variável ao
valor de uma expressão
Binding
var a = 1;
var b = bind a; // Expressão é ‘a’
println(“{a} {b}”); // 1 1
a = 2;
println(“{a} {b}”); // 2 2
var a = 1;
var b = bind a+1; // Expressão é ‘a+1’
println(“{a} {b}”); // 1 2
a = 2;
println(“{a} {b}”); // 2 3
var a = 1;
var quadrado = bind a*a;
println(“{a} {quadrado}”); // 1 1
a = 3;
println(“{a} {quadrado}”); // 3 9
DEPENDÊNCIA
Binding para non-bound function: argumentos
Binding para bound function: bloco
Binding (non-bound function)
var k : Integer = 2;
function fazAlgo(x : Integer, y : Integer) {
k * x + y;
}
var x = 1;
var y = 2;
var resultado = bind fazAlgo(x,y);
println(resultado); // 4
y = 1;
println(resultado); // 3
k = 0;
println(resultado); // 3
println(resultado); // 4
y = 1;
println(resultado); // 3
k = 0;
println(resultado); // 1
var x = 10;
var y = bind x with inverse;
println("x: {x} y: {y}");
x = 2;
println("x: {x} y: {y}");
y = 5;
println("x: {x} y: {y}");
Qual o resultado?
Variável (function)
var f : function(:Boolean):function(x:Byte,y:Byte):Byte;
var add = function(x:Byte,y:Byte) { x + y };
var sub = function(x:Byte,y:Byte) { x - y };
f = function(flag : Boolean) {
if (flag) add else sub
};
println(f(true)(1,2));
println(f(false)(1,2));
Qual o resultado?
Variável (function)
println(f(true)(1,2));
println(f(false)(1,2));
x = 11;
x = 30;
Considerações finais
Nem tudo de JavaFX foi abordado
Tratamento de exceções
Classes (herança múltipla, init, postinit, ...)
Organização do código em packages, classes,...
Modificadores de acesso: public-init, public-read, ...
Visão geral é suficiente para “aprofundar”