Dart教程Dart中的类与对象的基本概念与使用

在Dart中,如何定义和使用类与对象?能否举例说明类的属性和方法的创建,以及如何实例化对象?另外,Dart的构造函数有哪些特殊用法,比如命名构造函数和工厂构造函数该怎么使用?类继承和mixins在Dart中有什么区别,实际开发中该如何选择?最后,Dart有没有访问控制机制,比如私有属性要怎么实现?

3 回复

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是一种面向对象的语言,类和对象是其核心概念。以下是一个简明教程:

  1. 类的定义
class Person {
  // 实例变量
  String name;
  int age;
  
  // 构造函数
  Person(this.name, this.age);
  
  // 方法
  void greet() {
    print('Hello, my name is $name');
  }
}
  1. 创建对象
var person = Person('Alice', 30);
person.greet(); // 输出:Hello, my name is Alice
  1. 构造函数简写 Dart提供方便的构造参数赋值方式:
Person(this.name, this.age);
  1. 命名构造函数
class Point {
  double x, y;
  
  Point(this.x, this.y);
  
  Point.origin() 
    : x = 0,
      y = 0;
}

var p = Point.origin();
  1. 继承
class Student extends Person {
  String school;
  
  Student(String name, int age, this.school) : super(name, age);
}
  1. getter/setter
class Rectangle {
  double width, height;
  
  double get area => width * height;
  set area(double value) => width = value / height;
}
  1. 静态成员
class MathUtils {
  static const pi = 3.14159;
  
  static double circleArea(double r) => pi * r * r;
}

Dart的类支持继承、接口实现、混入(mixins)等面向对象特性,语法简洁高效。

回到顶部