class Person {
String name;
int age;
Person(this.name, this.age);
void introduce() {
print("Hello, my name is $name and I am $age years old.");
}
}
void main() {
var person = Person("Alice", 30);
person.introduce();
}
运行结果:
在上面简单的介绍了下如何在 Dart 中定义类,接下来我来为大家解读一下这段代码。
Person(this.name, this.age);
这是一个构造函数,是一种语法糖的写法void introduce() { ... }
这是一个方法,它可以访问类中的属性var person = Person("Alice", 30);
这是一个实例化对象的过程,我们可以通过 .
来访问对象的属性和方法在 JavaScript (ES6 及以后) 中,类的定义方式如下:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
introduce() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const person = new Person("Alice", 30);
person.introduce();
构造函数
属性访问
字符串插值
$
符号进行字符串插值(如 "$name"
)${}
语法进行字符串插值类型系统
强类型
语言,需要显式地定义变量和返回值的类型静态方法和静态属性是类级别的成员,这意味着它们不属于任何特定的实例,而是属于类本身 在 Dart 和 JavaScript 中都是可行的,尽管它们的实现方式略有不同
static
来定义静态方法和属性class Utility {
static String appName = "MyApp";
static void printAppName() {
print("The app name is $appName.");
}
}
void main() {
print(Utility.appName); // 直接访问静态属性
Utility.printAppName(); // 调用静态方法
}
运行结果:
static
关键字,可以创建静态方法class Utility {
static appName = "MyApp"; // ES2020 开始支持静态属性
static printAppName() {
console.log(`The app name is ${this.appName}.`);
}
}
console.log(Utility.appName); // 直接访问静态属性
Utility.printAppName(); // 调用静态方法
语法:
属性定义:
类型系统:
访问方式:
在上方的类定义中已经带着大家过了一遍类的定义了我这里就是想给大家单独说一下这个语法糖的构造函数。
我们上面是这样定义的:
Person(this.name, this.age);
其实这个语法糖的构造函数是这样的:
Person(String name, int age) {
this.name = name;
this.age = age;
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。