Dart Methods

Methods adalah function yang memberikan perilaku dari sebuah object.
Instance Methods
Metode instance pada objek dapat mengakses variabel instance dan this. Metode distanceTo () dalam contoh berikut adalah contoh metode instance
import 'dart:math';
class Point {
double x, y;
Point(this.x, this.y);
double distanceTo(Point other) {
var dx = x - other.x;
var dy = y - other.y;
return sqrt(dx * dx + dy * dy);
}
}
void main(){
var point = Point(10, 10);
print("Value is "+point.distanceTo(point).toString());
}
Value is 0.0
Operators
Operator adalah metode instance dengan nama khusus. Dart memungkinkan kita menentukan operator dengan nama berikut:
< | + | | | [] |
> | / | ^ | []= |
<= | ~/ | & | ~ |
>= | * | << | == |
– | % | >> | Â |
contoh penggunaan operator
class Vector {
final int x, y;
Vector(this.x, this.y);
Vector operator +(Vector v) => Vector(x + v.x, y + v.y);
Vector operator -(Vector v) => Vector(x - v.x, y - v.y);
// Operator == and hashCode not shown.
// ···
}
void main() {
final v = Vector(2, 3);
final w = Vector(2, 2);
assert(v + w == Vector(4, 5));
assert(v - w == Vector(0, 1));
}
Getter and Setters
Getter dan setter adalah metode khusus yang menyediakan akses read dan write ke properti objek. Ingatlah bahwa setiap variabel contoh memiliki inplicit getter dan setter jika sesuai. Kita dapat membuat properti tambahan dengan menerapkan getter dan setter, menggunakan get dan set kata kunci:
class Rectangle {
double left, top, width, height;
Rectangle(this.left, this.top, this.width, this.height);
// Define two calculated properties: right and bottom.
double get right => left + width;
set right(double value) => left = value - width;
double get bottom => top + height;
set bottom(double value) => top = value - height;
}
void main() {
var rect = Rectangle(3, 4, 20, 15);
assert(rect.left == 3);
rect.right = 12;
assert(rect.left == -8);
}
Dengan getter dan setter, kita dapat memulai dengan variabel instance, kemudian menggabungkannya dengan metode, semuanya tanpa mengubah kode klien.
Sample source code bisa di download di github pada link berikut dart-tutorial