import 'dart:core';
class Point {
num? x,y;
Point(this.x,this.y); //同名构造函数
Point.origin() //命名构造函数
{
x = 0;
y = 0;
}
Point.fromJeson(Map jeson):x = jeson['x'],y = jeson['y']; //命名构造函数,使用初始化列表
}
void main() {
var p1 = Point(1, 2);
print('${p1.x},${p1.y}');
var p2 = Point.origin();
print('${p2.x},${p2.y}');
Map data = {'x':3,'y':4};
var p3 = Point.fromJeson(data);
print('${p3.x},${p3.y}');
}
这段Dart代码定义了一个名为Point的类,并且展示了如何创建这个类的实例以及如何打印它的属性。以下是代码的详细解释:
导入核心库:
import ‘dart:core’;:这是Dart语言的核心库,它提供了最基础的功能,比如基本的数据类型和集合。
定义Point类:
class Point:这是类的定义。
num? x, y;:这是类中的两个属性,分别表示点的横坐标和纵坐标。?表示这些属性可以是null。
Point(this.x, this.y);:这是类的构造函数,用于创建Point类的实例。当创建实例时,必须提供x和y这两个参数。
Point.origin():这是一个命名构造函数,用于创建原点(坐标为(0,0))的Point实例。
Point.fromJeson(Map jeson):这是一个命名构造函数,用于根据JSON对象创建Point实例。这个构造函数接受一个Map类型的参数,其中包含x和y的值。
main函数:
void main():这是Dart程序的入口点。
var p1 = Point(1, 2);:创建了一个Point类的实例p1,并给它赋值了横坐标1和纵坐标2。
print(‘
p
1.
x
,
{p1.x},
p1.x,{p1.y}’);:打印p1实例的坐标。
var p2 = Point.origin();:创建了一个原点的Point实例p2。
print(‘
p
2.
x
,
{p2.x},
p2.x,{p2.y}’);:打印p2实例的坐标。
Map data = {‘x’:3,‘y’:4};:创建了一个包含x和y值的Map对象。
var p3 = Point.fromJeson(data);:创建了一个根据data对象创建的Point实例p3。
print(‘
p
3.
x
,
{p3.x},
p3.x,{p3.y}’);:打印p3实例的坐标。