Dart1. const和final的区别|||class 和单例

本文深入探讨了Dart语言的特性,包括常量与最终变量的使用区别,类的继承与抽象类的实现,以及单例模式的应用。同时,通过实例展示了HTTP请求的构造与处理方式。

test_demo.dart

void main(List<String> args) {
  print('hello word sys');
  const ls1 = [1, 2, 3, 4, 5];
  //ls1[2] = 3;  //const类型,理面的子数据不能修改,这样写直接报错
  const ls2 = [1, 2, 3, 4, 5];
  print(identical(ls1, ls2));
  final ls3 = [1, 2, 3, 4, 5];
  ls3[0] = 10;//final 类型理面的数据可以修改
  print(ls3);
}

输出如下

class.dart

void main(List<String> args) {
  var p = Person();
  p.showInfo();

  var cl1 = HttpClient();
  var cl2 =HttpClient();
  print(identical(cl1,cl2));

  var req = Request('http://www.baidu.com','post');
  req.showInfo();

}

abstract class Animal{
  void say();
}

class PersonInfo{
  void showInfo(){
    print('this is show person info');
  }
}

class Person extends Animal with PersonInfo{
  @override
  void say() {
    // TODO: implement say
    print('people say');
  }

}

//单例
class HttpClient{
  static final HttpClient _client = HttpClient._internal();

  HttpClient._internal(){

  }

  factory HttpClient(){
    return _client;
  }
}

/// 可选类型
class Request {
  
  String method;
  String url;
  Map<String,dynamic> params;

  Request(this.url,[this.method='get',this.params]) {
    this.params = {};
  }

  void showInfo() {
    print('method $method --> url = $url --> params = $params');
  }
}

输出如下:

this is show person info
true
method post --> url = http://www.baidu.com --> params = {}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值