in swift I can create private properties as in below
class Person {
private(set) var name: String
private(set) var age: Int
init(name: String, age: Int){
self.name = name
self.age = age
}
}
var demo5 = Person(name: "Max", age: 34);
demo5.name = "Min". ,<—— error Cannot assign to property: 'name' setter is inaccessible
But in dart this is allowing to set the value of _denominator , how can I stop this , or in dart from main I can access even private properties
main() {
final frac = Fraction(1, 7);
frac._denominator = 9; // <—— working
print(frac._denominator); // <—— gives 9
}
class Fraction {
int _numerator;
int _denominator; //<— its private
Fraction(this._numerator, this._denominator);
int get numerator => _numerator;
int get denominator {
return _denominator;
}
}
>Solution :
Use final
keyword while creating variable.
class Fraction {
final int _numerator;
final int _denominator;
Fraction(this._numerator, this._denominator);
///set denominator(int value) => _denominator = value; //like this