在Dart语言中,字段(Field)是类中用于存储数据的成员变量

在Dart语言中,字段(Field)是类中用于存储数据的成员变量。字段可以是实例变量(与类的实例相关联)或静态变量(与类本身相关联)。Dart的字段可以具有访问修饰符,以控制它们在类内外的可见性和可访问性。

字段的基本概念

实例变量:每个对象都有自己的实例变量副本。它们在对象创建时初始化,并在对象销毁时销毁。

静态变量:静态变量与类本身相关联,而不是与类的实例相关联。所有实例共享同一个静态变量。

访问修饰符:

public:默认情况下,字段公共的,可以在类的外部访问。

private:在字段名前加下划线_,使其成为私有字段,只能在定义它的库中访问。

字段的声明和初始化

字段可以在类中直接声明和初始化。Dart支持在声明时初始化字段,也可以在构造函数中进行初始化。

示例代码

dart

class Person

// 公共实例变量

String name;

// 私有实例变量

int _age;

// 静态变量

static int count = 0;

// 构造函数

Person(this.name, this._age) {

count++; // 每次创建实例时,计数器增加

}

// 方法

void introduce() {

print('Hello, my name is $name and I am $_age years old.');

}

}

void main() {

var person = Person('Alice', 25);

person.introduce(); // 输出: Hello, my name is Alice and I am 25 years old.

print('Total persons: ${Person.count}'); // 输出: Total persons: 1

}

字段的访问控制

公共字段:可以直接在类外部访问。

dart

print(person.name); // 输出: Alice

私有字段:只能在定义它的库中访问。

dart

// print(person._age); // 错误:无法在库外部访问私有字段

静态字段:通过类名访问。

dart

print(Person.count); // 输出: 1

字段的封装

Dart中通常使用getter和setter方法来封装字段,以提供对字段的受控访问。这在需要验证或计算字段值时特别有用。

示例代码

dart

class Rectangle {

double _width;

double _height;

Rectangle(this._width, this._height);

// Getter for width

double get width => _width;

// Setter for width

set width(double value) {

if (value <= 0) {

throw ArgumentError('Width must be positive');

}

_width = value;

}

// Getter for height

double get height => _height;

// Setter for height

set height(double value) {

if (value <= 0) {

throw ArgumentError('Height must be positive');

}

_height = value;

}

double get area => _width * _height;

}

void main() {

var rect = Rectangle(10, 20);

print('Area: ${rect.area}'); // 输出: Area: 200

rect.width = 30; // 使用setter

print('New width: ${rect.width}'); // 输出: New width: 30

}

通过使用getter和setter,可以更好地控制对字段的访问和修改,确保数据的完整性和安全性。

特别声明:[在Dart语言中,字段(Field)是类中用于存储数据的成员变量] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

官媒点名,暴露68岁阎维文的真实处境,原来『李双江』一个字都没说错(被官媒点名批评)

曾经的好口碑和高名声,原本是阎维文身上最闪亮的标签,但一次意外,却让这一切瞬间崩塌。为何当这些国际声乐巨星享受奢华时没人指责,而当阎维文穿着一件价值7000元的卫衣时,却被人批评为败坏形象?最终,在那个让他一…

官媒点名,暴露68岁阎维文的真实处境,原来『李双江』一个字都没说错(被官媒点名批评)

三位归化奥运冠军贡献0金0银0铜!这笔账,该怎么算? 面子工程还是长远布局?(奥运归化选手)

记得北京冬奥会那会儿,谷爱凌在首钢大跳台惊天一跃,手里还攥着个韭菜盒子,全网沸腾。那时候,大家恨不得把滑雪🎿板焊在脚上,觉得中国冰雪运动站起来了

三位归化奥运冠军贡献0金0银0铜!这笔账,该怎么算? 面子工程还是长远布局?(奥运归化选手)

右手指有时发麻是怎么回事(右手手指头发麻)

右手指有时发麻可能与神经压迫、血液循环障碍、颈椎病变、腕管综合征、糖尿病周围神经病变等因素有关。可以通过调整姿势、物理治疗、药物治疗等方式缓解。 长期保持固定姿势或局部受压可能导致尺神经、桡神经等被压迫,表现为间歇性手指麻木

右手指有时发麻是怎么回事(右手手指头发麻)

400亿票房打水漂?『沈腾』这喜剧,咋就跟奖项隔着一道坎(40亿票房电影)

可你听听,多少人提起他,都是“票房”、“喜剧”,奖项这词儿,总感觉有点远。你突然让他演个深沉的,或者带点悲情的,有些人可能一时半会儿还缓不过来,觉得“这『沈腾』怎么了?可如果评价体系,始终把喜剧当成“不够严肃”、…

400亿票房打水漂?『沈腾』这喜剧,咋就跟奖项隔着一道坎(40亿票房电影)

医学院主题铜浮雕壁画展现医学精神传承与人文关怀(医学院标语用语大全)

医学院主题铜浮雕壁画通常融合中西医学文化符号,展现医学精神传承与人文关怀,广泛应用于医学院校、医院等公共空间,兼具艺术装饰与文化教育功能。 中西医融合理念:以心电图作为视觉纽带,串联中医经典(如《黄帝内经》《

医学院主题铜浮雕壁画展现医学精神传承与人文关怀(医学院标语用语大全)