日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

dart 替代java_Dart与Java的语法区别

發布時間:2023/12/19 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dart 替代java_Dart与Java的语法区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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的语法区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。