官术网_书友最值得收藏!

Accessing private fields

In Dart, as discussed when we covered packages, the privacy is at the library level, but it is still possible to have private fields in a class even though Dart does not have the keywords public, protected, and private. A simple return of a private field's value can be performed with a one-line function:

String getFirstName() => _name;

To retrieve this value, a function call is required, for example, Person.getFirstName(); however, it may be preferable to have a property syntax such as Person.firstName. Having private fields and retaining the property syntax in this manner is possible using the get and set keywords.

Using true getters and setters

The syntax of Dart also supports get and set via keywords:

int get score  => score + bonus; 
set score(int increase)  => score += increase * level; 

Using either get/set or simple fields is down to preference. It is perfectly possible to start with simple fields and scale up to getters and setters if more validation or processing is required.

The advantage of the get and set keywords in a library is that the intended interface for consumers of the package is very clear. Further, it clarifies which methods may change the state of the object and which merely report current values.

主站蜘蛛池模板: 龙陵县| 民丰县| 洱源县| 五莲县| 栾城县| 南汇区| 邓州市| 自治县| 永兴县| 达日县| 个旧市| 永靖县| 沙湾县| 建昌县| 沈阳市| 汪清县| 额尔古纳市| 福海县| 江安县| 绥棱县| 南华县| 张家港市| 抚顺县| 交口县| 遂宁市| 宁化县| 扎囊县| 广东省| 丽水市| 赤峰市| 罗山县| 玉田县| 涟源市| 本溪| 石台县| 平利县| 沛县| 修武县| 泰顺县| 嵊泗县| 遂平县|