基础

  • 主函数

    void main ( ) { }

  • 声明变量

    • var a num a int a double a bool a = true
    • final b = 0; 声明只能赋值一次的变量
    • const a = 1; 常量
    • var a = const [1,2]; 声明一个不可变的list

数据类型

  • 数据类型

    • Number

      • Int --整数型
      • double -- 浮点型
    • String
    • Boolean
    • List -- 数组
    • Map -- 键值对
  • 特殊运算符 ~/ 向下取整

  • 字符串操作
    • ''' hello dddd''' 表示多行字符串,保留换行

    • 'hello \n Dart' 会换行

    • String aa = r''hello \n Dart" 不会换行.会输出\n

    • 'abc' * 2 == 'abcabc'

    • 'abc'[1] == 'b'

    • 字符串插值 " a + b = ${a + b}" ${xx}是个表达式 只有一个变量插值可省略写成 $a

  • Map键值对

    • 创建 var qq = {'first' : 'Dart' , 'second' : 'java'};
    • 创建不可变Map var q = const { ,,,, }
    • 构造创建 var q = new Map()
    • 获取value qq['frist']
    • 循环传递两个值 qq.forEach ( f ); void f( key , value ){.......}
  • dynamic 类型 -- 动态类型
    • var a = 10; a = "xxx";
    • dynamic a = 20; a="xxx";
    • 泛型应用: var lis = new List\<dynamic\>(); 这样声明的lis 可以使用各种类型的数据

运算符

  • ??= b ??= 10; b是空的则是10,有值则不做改变.
  • a~/=b 类似于 a+=b
  • var c = a ?? b a为空时表达式为b的值

函数

  • void main () {} void位置是返回类型 void指的是不需要返回类型
  • Dart定义函数 xxx(){} js中定义函数 function xx () {}
  • void fun(String name , int age) {xxxx}
  • 可选参数写法
    • fun(String name , {int age, String kk}) fun('张三',age:20) 位置不固定
    • fun(String name , [int age , String kk]) fun('张三' , 20 ) 位置固定
  • 参数默认值
    • fun(String name , {int age = 30, String kk})
  • 匿名方法
    • () {} 可赋值给 变量 或者直接调用 .. 不能直接定义在最外层
    • ((){})() 自调.自执行

面向对象

class-类
  • class 声明类 new创建对象.new可省略 所有对象默认继承于Object类

  • class 属性默认有getter和setter方法--java需要自定义

  • class final声明的属性是只读的

  • class 方法不能重载

  • //举例
    class Person {String name;int age;void work(){print("name is $name , age is $age")},Person (String name , int age){//构造方法this.name = name;this.age = age;};Person (this.name,this.age);//构造方法简写Person.ddd (){}; //带名称的构造方法
    }
    //调用
    var person = new Person();//new Person('Tom'.20)--有构造时
    person.name = 'Tom';
    person.age = 20;
    person.work();  //name is Tom , age is 20
  • 使用_表示私有性. 默认一个Dart文件就是一个库 .. Dart中可见性以Library(库)为单位 java的可见性设置十分多

  • class的计算属性

    • class Rect{num width,height;num get area => width * height;// area{ return w*h }set area(val) {//给计算属性area赋值时,处理数据,给其他属性赋值width = val / 20;};
      }
      var re = new Rect();
      re.height = 20;
      re.width = 10;
      print(re.area); //200
  • 构造方法-创建对象时调用的方法 可设置多个构造 .. 详情看上上面的person

    • 命名构造方法
    • 常量构造方法----如果类是不可变状态,可以吧对象对应为编译期常量
      • 使用const声明构造方法,并且所有变量都为final,使用const声明对象.可以省略
    • 工厂构造方法
      • 类似于设计模式中的工厂模式 - -构造方法前加factory
      • 最大的不同 , 工厂构造可以返回对象. ---???
    • 初始化列表 ---???
  • static 声明静态成员 --???
  • 对象操作符
    • ?.安全访问成员 person?.work() 对象存在时调用work不存在则不执行
    • as 类型转换
    • is is! 是否是指定类型
    • 级联操作 person..name='xx'..age=20..work();
  • 对象call方法
    • 如果class实现了call(),则该class的对象可以作为方法使用
继承
  • extends --继承父类可见的属性和方法. 子类可以复写父类方法/getter/setter
  • 单继承/多态性
  • @override -- 指的是该方法是复写的
  • 子类构造方法会默认调用父类的无名无参的构造方法. 如果父类没有,则需要显示调用
  • 构造方法执行顺序: 子类初始化列表 - 父类构造 - 子类构造
抽象类
  • 抽象类 abstract ,不能实例化.只能被继承实例化
接口
  • 类和接口是统一的

转载于:https://www.cnblogs.com/Vayne-N/p/11519153.html

Dart语言--基础内容相关推荐

  1. Dart语言基础,看完这篇文章就够了(二)

    文章内容是我在学习Flutter过程中对知识点的梳理和总结.如有不对的地方,欢迎指出. 本文承接Dart语言基础,看完这篇文章就够了(一),进一步了解Dart语法知识. 文章目录 1 流程控制语句 2 ...

  2. Dart语言基础Map、List、Set操作合辑

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. ** 你可能需要 CSDN 网易云课堂教程 掘金 EDU学院教程 知乎 Flutter系列文章 Flutter完全采用 ...

  3. dart语言基础_变量声明

    作为Flutter的首席语言,如果要玩Flutter的同学就不得不学习一下dart语言.当然,其实也不需要怎么学习,因为你会在dart语言中发现许多其它语言的影子,可以说是集百家所长,颇有某企鹅的风范 ...

  4. Flutter 学习 - Dart 语言基础

    文章目录 前言 一.Dart 概述 Dart 重要的概念 二.变量与基本数据类型 三.函数 四.运算符 五.流程控制语句 六.异常处理 七.面向对象 构造函数 继承类 抽象类 枚举类型 八.泛型 九. ...

  5. 2021超详细的Dart语言基础总结~你值得拥有~

    文章目录 前言:dart语言简介 一.变量 1.1.类型推导 1.2.默认值 1.3.Final 和 const修饰符 二.内建类型 2.1.数据类型 2.2.集合的相关操作 三.函数 3.1.函数的 ...

  6. Dart 语言基础入门 Dart 语言核心库一览

    也许你迷茫,但是我想说,在你迷茫的同时,保持本心,过好今天就好. 学习Dart语言,首先我们需要使用到一个语言调试工具 DartPad DartPad 是基于 Web 的 交互式 Dart 服务的 U ...

  7. 给 Android 开发者的 Dart 语言基础

    本文基于官方的文档,整理出 Dart 语言中与 Java 和 Kotlin 语言类似和特有的部分,因此本文的读者需要具备一定的 Java 及 Kotlin 语言基础,相信大家读完本文就可以看懂大部分的 ...

  8. flutter DateTime 日期时间详细解析 Dart语言基础

    也许你迷茫,但是我想说,在你迷茫的同时,保持本心,过好今天就好. 学习Dart语言,首先我们需要使用到一个语言调试工具 DartPad 在 Dart 中,DateTime 对象代表某个时刻,时区可以是 ...

  9. OC语言基础内容 类的定义 第一个OC

    OC基础day01 第一个OC程序 OC与C的基本区别 C语言的源文件 XXX.c OC语言的源文件 XXX.m 在C语言中 用printf打印信息 OC中用NSLog()打印信息 OC中的改变 OC ...

最新文章

  1. 高效的深度学习:将深度学习模型变得更小、更快、更好的综述
  2. EasyUI学习总结(一)——EasyUI入门
  3. 文本框仅可接收decimal
  4. 怎么将文件转换成linux文件,你如何在linux中创建一个将文件转换为大写...
  5. Unity脚本在层级面板中的执行顺序测试3
  6. 快速定位网络故障步骤
  7. eclipse经常出现弹窗Refreshing workspace
  8. 衣米魔兽世界怀旧服:相关网友和测试玩家的提问,王乾亨以及衣米魔兽官方的解释与回答内容精选
  9. 2 电感耦合方式的射频前端
  10. IT招聘网站(程序员跳槽指南)
  11. kuberbetes容器生命周期 - 容器探测(liveness/readiness probes)
  12. 设置背景图片自动适应屏幕
  13. Qt OpenGL 旋转、平移、缩放
  14. 安装MySql时初始化 MySQL 数据库失败的几个总结
  15. 炒股小白入门知识——黄金交叉与死亡交叉
  16. 史上最全的iOS面试题及答案
  17. matlab注册表版本号,通过注册表发现Windows版本信息
  18. X4扭曲字体或图形 coreldraw_coreldraw x4中文版
  19. 谷歌搜索引擎更改已访问链接的颜色以增强区分度
  20. 浙江正高级计算机职称,大事!浙江将停止评审教授级高工!

热门文章

  1. Objective-C:MRC(引用计数器)获得对象所有权的方式(init、retain、copy等)
  2. Linux下基本栈溢出攻击【转】
  3. 为网站文字前面添加图标 在线调用 Font Awesome 字体icon小图标 美化网站
  4. Linux基础之文件管理三兄弟(cp、mv、rm)
  5. Linux基础知识(一)
  6. Bonjour/Zeroconf with Arduino
  7. Hibernate【XXXX.hbm.xml】总结
  8. SharePoint Portal Server与SharePoint Services之间的关系
  9. 一问就想不起来的问题,来看看?
  10. C语言程序设计第三次作业——选择结构(1)