175-2108-6175
网站建设资讯详细

Dart编程语言与Java的区别

日期:2021-12-08  作者:千语创想  浏览:6681

Dart是Flutter 的主要开发语言,其实对于Java开发人员来说,Dart还是相对好理解的,今天简单比较与Java的一些区别。

区别

构造函数

在Dart的构造中可以没有方法体。

//这样写很简单

User(this.cadence, this.speed, this.gear);


//也可以写成这样

Bicycle(int cadence, int speed, int gear) {

  this.cadence = cadence;

  this.speed = speed;

  this.gear = gear;

}

可选参数

在Dart中可以使用可选参数、无论是构造还是普通方法。


Book({this.money = 100, this.size = 0, this.author = null});

1

调用的时候要指定参数名

main() {

  print(Book(money:100 , size: 88, author:'test'));

  print(Book(money:99,   size:100));

  print(Rectangle());

}


关键字

在 Dart 中没有诸如 public、private、protected 这样的关键词。

如果一个标识符以 (_) 开头,则该标识符 在库内是私有的

Dart2中,可以不使用new关键字创建,也可以使用。

变量

Dart中变量初始值为null,即使是int类型也是null。

Dart支持自识别,可以是用var定义变量,也可以直接指定具体类型。

如果你以后不打算修改一个变量,使用 final 或者 const。 一个 final 变量只能赋值一次;一个 const 变量是编译时常量。

基本类型

int和double是num的子类。没有float类型。

Dart中所有的类都是Object的子类。

String可以使用单引号或者双引号。

String支持模板,使用 ${expression} 的方式来实现字符串模板的效果,如果该表达式仅仅是一个标识符,还可以去掉花括号 $variableName。

字符串前加r代表原始字符串。

只有true和flase是bool类型,这两个对象也是编译时常量。当Dart需要一个布尔值的时候,只有true对象才被认为true,其他都是false。

方法

Dart是一个真正面向对象的语言,方法也是对象并且具有一种类型Function。

可以使用上文说的可选方法。

支持直接设置默认参数值。

所有函数都返回一个值,如果没有指定返回值,则 默认把语句 return null; 作为函数的最后一个语句执行。

可以把方法当做参数调用另一个方法。

printElement(element) {

  print(element);

}


var list = [1, 2, 3];


// Pass printElement as a parameter.

list.forEach(printElement);

方法也可以赋值给一个变量

var loudify = (msg) => '!!! ${msg.toUpperCase()} !!!';

assert(loudify('hello') == '!!! HELLO !!!');

操作符

??

expr1 ?? expr2

如果 expr1 是 non-null,返回其值; 否则执行 expr2 并返回其结果。


.? 可以避免表达式左边对象为null时候抛出异常。

级联操作符,级联操作符 (…) 可以在同一个对象上 连续调用多个函数以及访问成员变量。

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

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

  ..classes.add('important')

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

类型判定操作符

as、 is、 和 is! 操作符是在运行时判定对象 类型的操作符:

as 类型转换

is 如果对象是指定的类型返回 True

is! 如果对象是指定的类型返回 False

只有当 obj 实现了 T 的接口, obj is T 才是 true。例如 obj is Object 总是 true。

断言

Dart中支持assert这个断言方法。如果方法结果true,继续执行,如果false则抛出异常。这个方法在正式包中将不执行。

// assert(条件);

总结

Dart和Java还是很相似的,对于Java程序员也是相对容易上手的。

来千语创想移动应用开发平台学习更多APP开发知识:app开发app制作app开发源码下载app开发框架app开发工具等免费获取。

千语创想-专业APP开发app定制服务商,提供一站式移动应用解决方案,满足您的各类需求,欢迎免费评估需求和获取报价。


转载请注明来自:https://www.qianyuthink.com/news/7638.html