Dart教程Dart中的类与对象的基本概念与使用
在Dart中,如何定义和使用类与对象?能否举例说明类的属性和方法的创建,以及如何实例化对象?另外,Dart的构造函数有哪些特殊用法,比如命名构造函数和工厂构造函数该怎么使用?类继承和mixins在Dart中有什么区别,实际开发中该如何选择?最后,Dart有没有访问控制机制,比如私有属性要怎么实现?
Dart中,类是创建对象的蓝图。定义类使用class
关键字,比如:
class Person {
String name;
int age;
// 构造函数
Person(this.name, this.age);
// 方法
void introduce() {
print('My name is $name and I am $age years old.');
}
}
创建对象时,调用类名并传入参数:
void main() {
var person = Person('Tom', 25);
person.introduce(); // 输出: My name is Tom and I am 25 years old.
}
构造函数可以有命名形式或带默认值:
// 命名构造函数
Person.fromData(Map data) {
name = data['name'];
age = data['age'];
}
// 带默认值
Person.withDefault({this.name = 'Unknown', this.age = 0});
Dart还支持getter、setter和静态成员等高级特性。掌握这些基本概念后,你可以构建更复杂的面向对象程序了。
更多关于Dart教程Dart中的类与对象的基本概念与使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Dart中的类和对象是面向对象编程的基础。
类的定义:使用class
关键字定义类。例如:
class Person {
String name;
int age;
// 构造函数
Person(this.name, this.age);
// 方法
void sayHello() {
print('Hello, my name is $name and I am $age years old.');
}
}
对象的创建:通过new
或直接调用构造函数创建对象。
void main() {
Person person = new Person('Tom', 25);
person.sayHello(); // 输出: Hello, my name is Tom and I am 25 years old.
}
构造函数:除了默认构造函数,还可以定义命名构造函数和带初始值的构造函数。如:
Person.namedConstructor(String name) : this(name, 0);
成员变量与方法:类中可以定义变量(属性)和函数(方法)。Dart支持 getter 和 setter 来访问私有变量。
继承与接口:通过extends
实现继承,implements
实现接口。例如:
class Student extends Person {
String school;
Student(String name, int age, this.school) : super(name, age);
void study() => print('$name is studying at $school');
}
总结来说,Dart中的类和对象提供了封装、继承和多态等特性,是构建复杂应用程序的核心工具。
Dart是一种面向对象的语言,类和对象是其核心概念。以下是一个简明教程:
- 类的定义
class Person {
// 实例变量
String name;
int age;
// 构造函数
Person(this.name, this.age);
// 方法
void greet() {
print('Hello, my name is $name');
}
}
- 创建对象
var person = Person('Alice', 30);
person.greet(); // 输出:Hello, my name is Alice
- 构造函数简写 Dart提供方便的构造参数赋值方式:
Person(this.name, this.age);
- 命名构造函数
class Point {
double x, y;
Point(this.x, this.y);
Point.origin()
: x = 0,
y = 0;
}
var p = Point.origin();
- 继承
class Student extends Person {
String school;
Student(String name, int age, this.school) : super(name, age);
}
- getter/setter
class Rectangle {
double width, height;
double get area => width * height;
set area(double value) => width = value / height;
}
- 静态成员
class MathUtils {
static const pi = 3.14159;
static double circleArea(double r) => pi * r * r;
}
Dart的类支持继承、接口实现、混入(mixins)等面向对象特性,语法简洁高效。