1. 主函数

(1) 没有public static

(2) 命令参数List args

voidmain() {

}

2. 可以在class外定义变量,方法等

3. 没有public, private, protected关键字

4. 创建对象,new可选

5. 获取值${variableValue}, ${expression}

6. Class中属性默认public,若声明私有,只需在属性名前加_

classBicycle {intcadence;int _speed = 0;int get speed =>_speed;intgear;

Bicycle(this.cadence, this.gear);void applyBrake(intdecrement) {

_speed-=decrement;

}void speedUp(intincrement) {

_speed+=increment;

}

@override

String toString()=> 'Bicycle: $_speed mph';

}voidmain() {

var bike= Bicycle(2, 1);

print(bike);

}

7. getter/setter方法

//返回值类型/get/外部可访问属性/方法体

int get speed => _speed

//set/外部可访问属性(值)/方法体

set speed(int value) => _speed = value;

8. 未初始化的变量值均为null

9. 构造函数简化,避免重载

import 'dart:math';classRectangle {

Point origin;

num width;

num height;

Rectangle({this.origin = const Point(0, 0), this.width = 0, this.height = 0});

@override

String toString()=> 'Origin: (${origin.x}, ${origin.y}), width: $width, height: $height';

}voidmain() {

print(Rectangle(origin:const Point(3,4), width: 10, height: 20));

print(Rectangle(origin:const Point(10,20)));

print(Rectangle(width:20));

print(Rectangle());

}

10. 一个dart文件中可以定义多个class,也可以仅仅定义方法

//factory.dart

import 'shapes.dart';

Shape shapeFactory(String type){if(type == 'circle') return Circle(2);if(type == 'square') return Square(2);throw 'Can\'t create $type';

}

11. 字符串可用单引号或者双引号

12. 工厂构造函数 => 在抽象类中定义工厂函数,规定子类实例化方式

abstract classShape {//factory constructor

factory Shape(String type){if(type == 'circle') return Circle(10);if(type == 'square') return Square(10);throw 'can\'t create $type';

}

num get area;

}

13. Dart中没有interface关键字,每个类都可以做接口

import 'shapes.dart';class CircleMock implementsCircle {

num area;

num radius;

}

//A person. The implicit interface contains greet().

classPerson {//In the interface, but visible only in this library.

final_name;//Not in the interface, since this is a constructor.

Person(this._name);//In the interface.

String greet(String who) => 'Hi $who, I\'m $_name';

}//An implementation of the Person interface.

class Impostor implementsPerson {

@override

String get _name=> this._name;

@override

String greet(String who)=> 'Hi $who, do you know who I am?';

}//polymorphism

String greetBob(Person person) => person.greet('Bob');

main() {

print(greetBob(Person('chris')));

print(greetBob(Impostor()));

}

14. 同一对象级联操作

通过..符号可以在同一对象上级联操作。

querySelector('#confirm') //Get an object.

..text = 'Confirm' //Use its members.

..classes.add('important')

..onClick.listen((e)=> window.alert('Confirmed!'));

15. 函数无需声明可能抛出的异常类型

16. 捕获异常

try{//···

} on Exception catch(e) {

print('Exception details:\n $e');

}catch(e, s) {

print('Exception details:\n $e');

print('Stack trace:\n $s');

}

17. 在运行时,Dart保留泛型类型信息

var names = List();

names.addAll(['Seth', 'Kathy', 'Lars']);

print(names is List); //true

dart 替代java_Dart与Java的语法区别相关推荐

  1. C#和java的语法区别

    通过这几天,看java视频,总结了一下java与C#的部分语法区别. 1.基本类型 Java是由byte,short,int,long,float,dboule组成,所有类型都是有符号的. C#除了这 ...

  2. c#和java的区别_C#和java的语法区别

    通过这几天,看java视频,总结了一下java与C#的部分语法区别. 1.基本类型 Java是由byte,short,int,long,float,dboule组成,所有类型都是有符号的. C#除了这 ...

  3. c 和java的语法区别吗,c跟java的区别

    c跟java是程序员的两大语法,他们之间的区别你了解吗?下面由学习啦小编给大家带来的c跟java的区别,希望各位客官喜欢! Java和C语言的区别 一. Java封装了很多类和接口,而这些是C语言没有 ...

  4. php和java的语法区别_PHP 和 Java 的主要区别有哪些?

    PHP 和 Java 的主要区别有哪些? 部分说法属于个人看法,如有纰漏,敬请谅解 一.某"高级"攻城师看法: 1.php适合处理单线程,java适合处理多线程: 2..php适合 ...

  5. Grade for Android 之二:Groovy 与Java的语法区别

    Groovy对Java开发者来说是尽可能的自然过渡.Groovy设计者设计Groovy时,遵循最小改变原则,尤其是有Java开发背景的开发者学习Groovy时. 如下列出了Java和Groovy的主要 ...

  6. oc和java_oc与java c++语法区别

    头文件: 实现文件, 类似于C++的.cpp文件: 一.函数的对比 helloworld方法 Java 语言: public void helloWorld(bool ishelloworld) { ...

  7. java和c语言的语法区别_c语言和java的语法区别是什么?

    c语言和java的语法区别 单文件的编译时间java比C语言快: C语言可以直接操作内存,java不能直接操作: C语言可以封装动态库,java不行: C语言的代码不容易跨平台,java的代码容易跨平 ...

  8. java c语言语法对比_c语言和java的语法区别是什么

    c语言和java的语法区别是什么 发布时间:2020-06-10 11:53:18 来源:亿速云 阅读:172 作者:Leah c语言和java的语法区别是什么?针对这个问题,今天小编总结这篇有关c语 ...

  9. Python同Java同Js语言语法区别之四判断字符串列表字典是否相等

    字符串列表字典是否相等 前言 Python 字符串or数字 列表 字典 总结 Java 字符串 数组 Map 总结 JS 字符串 数组 对象 总结 前言 作为一枚测开工程师,需要的技能是全栈的,项目中 ...

最新文章

  1. 2022-2028年中国阻尼涂料市场研究及前瞻分析报告
  2. MVC 之 架构的基本原理及Asp.Net实现MVC
  3. SAP RETAIL初阶MM41创建商品主数据BASIC DATA里的Valuation Class
  4. oracle 日志写满,Oracle归档日志写满错误解决方法
  5. java中标准输入输出流
  6. mysql讀取sql_MySQL数据库之python json及mysql读取json文件存sql等问题
  7. Fiddler 抓包(一)—iOS
  8. 刘谦春晚再掀魔术热 网上木马趁火打劫
  9. 怎么把Word转成PDF?转换方法很简单
  10. 如何在2022年建立自己的NFT市场平台
  11. [回归初作]——edge浏览器的小游戏
  12. 微信小程序:父子组件的通信
  13. world 字体 选取高亮_Word2003选取文字的N种方法
  14. 论文阅读:How Does NLP Benefit Legal System:A Summary of LAI如何使用NLP技术帮助法律智能:关于法律智能的综述
  15. 常用fastboot命令
  16. 在…视域下是什么意思_“视域”与“视阈”之辨
  17. 高职计算机应用与信息检索,高职计算机应用主题式教学模式实践
  18. SQL Server数据库SP命令祥解
  19. 想嫁有钱人,金融家的回复令人拍案叫绝
  20. vmware上的Linux没法下载vmware tools、没法安装vim和gcc或者其他软件,怎么办

热门文章

  1. 使用 ADS 渲染 SAP Adobe Form 的性能分析
  2. CRM端 equipment hierarchy change成功的标志
  3. Webdynpro check error - check function in Workbench
  4. initializeAdvisorChain
  5. 把本地修改的Docker镜像推送到Docker hub
  6. Kubenetes里pod和service绑定的实现方式
  7. h5日期选择控件_成都h5开发工程师培训_H5入门需要知道的知识
  8. Redis启动报错:[20000] 07 Apr 17:55:34.562 # Creating Server TCP listening socket 127.0.0.1:6379: bind: N
  9. 2021 icme_2021第十届制造工程与工艺国际会议(ICMEP 2021)
  10. 矩阵置零Python解法