flutter 学习感悟

Flutter——Dart面向对象 Flutter——Dart面向对象1. 类与对象2. 构造函数3. 工厂构造&单例对象&初始化列表4. 类方法&对象操作符5. Dart 的继承6. 抽象类和接口混入Mixins 1. 类与对象 在Flutter中,使用class 关键字声明一个类,使用new加上构造函数生成一个对象,所有的对象都默认继承Object类。Dart中会默认生成getter 和 setter方法,属性和方法都通过点语法进行访问,Dart方法不支持重载。final修饰的属性必须定义初始值。 声明一个类: c 阅读详情

flutter

入口程序

dart

官网与安装

https://dart.dev/get-dart

语言特点

  • 万物皆对象,函数也是对象
  • 指定类型不是必须的,是弱类型语言
  • 代码在运行前解析
  • dart 统一的程序入口 main
  • 变量名和方法名前加下划线代表私有
  • 高级语言
  • 多继承
  • 变量区别大小写

dynamic 与object 的区别

  • object 是所有类型的基类,dynamic 更像是万能类型,可以赋值任意的对象
  • dynamic 初始化时,系统就提供了类型的所有可能组合,可以直接调用这个类型的方法和属性,而object 需要强转
as 类型转换
main() {
  dynamic t;  //万用类型
  Object b;
  b=Dog();
  t = Dog();
  t.name="hhh";
  t.eat();
  final a=100; //使用时被初始化
  const c=1000;//编译时常量
  (b as Dog).eat(); //object的类型强转,类似于kt
  //print();
}

基本数据类型(5种)

Number

  • int
  • double

String

  • 双引号和单引号没什么区别

Boolean

List

Map

常量

  const g = 123333;
  final h = 1111;

final 和 const 的区别

  • final是使用的时候初始化,const 是编译时常量
  • 共同的功能是声明变量不可修改

NaN

  int l;
  l??=23;//如果l为null的话给l赋值为23
  print(l);

const 与final 的区别

  • final 可以开始不赋值,只能赋值一次
  • final 有const的编译时常量的特性,最重要的它是运行时常量,具有惰性初始化->即运行时第一次使用时才初始化

函数

  • 方法里可以嵌套方法,函数也是对象,函数可以作为参数传递给其他函数
  • 方法形参的类型不一定要声明类型,此时默认当做dynamic 类型
bool isNums(int a){
  return a!=0;
}
isNums2(int a){
  return a!=0;
}

箭头函数

箭头函数后面是不能加代码块的,只能写一行语句,不能有分号

匿名函数

  var jjj=(username,age,sex){
    print("$username===$age===$sex");
  };
 
  jjj("hcy",22,33);

静态成员与静态方法

  • 静态方法不能访问非静态的方法和属性
    static

操作符

级联操作(…)

就是连续操作着一些方法,类似于lambda

  Dog dogs = new Dog();
  dogs
    ..name = "snb"
    ..age = "28"
    ..eat();
is 判断数据类型

判断是否属于某个类型

??
?.

如果不等于空就往下执行(类似kt)

  Dog dogs=new Dog();
  dogs?.eat();

闭包

全局变量,常驻内存,但可能污染数据
局部变量,不常驻内存,方法调用完,变量回收不污染数据

闭包的作用:使局部变量常驻内存。方法调用完不会被回收

  fun() {
    var a = 100;
    return () {
      a++;
      print(a);
    };
  }
  var v=fun();
  print(v);
  v();//101
  v();//102
  v();//103

  (fun())();//101
  (fun())();//101
  (fun())();//101

对象

-基于mixin的继承方式:一个类可继承对个父类===多继承
-根父类Object

实例化对象

  void test4(){
    var man=Man("hcy2019",12);
    man.eat();
  }

私有属性和私有方法 _

class Animal {
  var _sex = "nan";//私有属性

  void _eat() {
    print("====Animal=eat==");//私有方法
  }
}

实例化成员变量

class Box {
  int boxWeight;
  String boxMadeInPlace;
}
  • 默认了一个null构造方法
  • 隐式定义了get,set方法。这点类似于kt与java的交集

构造函数

  • 常规写法1
class Box {
  int boxWeight;
  String boxMadeInPlace;
  Box(int boxWeight, String boxMadeInPlace) {
    this.boxMadeInPlace=boxMadeInPlace;
    this.boxWeight=boxWeight;
  }
}
  • 常规写法2 === 同样定义相同的构造函数会报错
class Box {
  int boxWeight;
  String boxMadeInPlace;

//  Box(int boxWeight, String boxMadeInPlace) {
//    this.boxMadeInPlace=boxMadeInPlace;
//    this.boxWeight=boxWeight;
//  }
  Box(this.boxWeight, this.boxMadeInPlace);
}
  • 常规写法3 命名构造函数
class Box {
  int boxWeight;
  String boxMadeInPlace;

//  Box(int boxWeight, String boxMadeInPlace) {
//    this.boxMadeInPlace=boxMadeInPlace;
//    this.boxWeight=boxWeight;
//  }
  //Box(this.boxWeight, this.boxMadeInPlace);

  Box.madeBox(int weight, String boxP) {
    this.boxWeight = weight;
    this.boxMadeInPlace = boxP;
  }
}

类似于java的静态方法,但又似是而非

  • 常规写法4
class Box {
  int boxWeight;
  String boxMadeInPlace;
  Box(boxWeight, boxMadeInPlace)
      : boxWeight = boxWeight,
        boxMadeInPlace = boxMadeInPlace;
}

重载 operator

Mixins 混入功能 关键字with

  • 类似于多继承,是一种全新的特性
  • mixins的类不能有构造器
  • 一个类可以mixins多个mixins类
  • 作为mixins的类只能继承自object,不能继承其他类
  • mixins 的类或者继承里的类里有同样的方法,后面的方法会替换前面的方法
class T = Dog with Box;

void main() {
  //var box = new Box(100, "made in china");
  //print("${box.boxMadeInPlace}=====${box.boxWeight}");
  //box.tests(100);
//  var dog=new Dog();
//  dog.eat();

  T t = new T();
  t.tests(100);//类Box里的方法 
  t.eat();//类Dog里的方法

}

泛型 表示

泛型

泛型就是解决 类 接口 方法的复用性,以及对不特定数据类型的支持(类型校验)

泛型方法
  T tes1t<T>(T value) {
    return value;
  }

继承

  • 子类使用extends继承父类
  • 子类会继承父类里所有的可见的属性和方法,但不能继承构造函数(父私有的属性和方法不能被子类引用的)
  • 子类能复写父类的方法

抽象类

主要用于定义标准

  • 抽象类不能被直接实例化,只有继承的子类才能被实例化

多态

子类的实例赋值给父类的引用

接口

普通类或抽象类都可以作为接口被实现

库

引入

  • dart:xx dart语言提供的库文件
  • package:xx 第三方的库文件

指定一个库的前缀 as

引用库的一部分

  • show 只引用一点
  • 除此之外都引用

异步

注释 基本与java一致

组件

一切皆组件

容器组件

图片组件

文本组件

图标及按钮组件

图标组件分类功能可否交互
Icon(图标组件)展示图标不可交互
IconButton 图标按钮组件展示图标,响应事件可以
RaisedButton 凸起按钮组件触摸效果,响应事件可以

列表组件

表单组件

form组件 用于整个表单提交使用

async 和 await

2019,我在几个新的技术领域的尝试和心得 又到一年结束时,回顾这一年,我在几个新的技术领域取得了一些小小的收获,这其中,有App相关的,也有App领域之外的。接下来,我来谈谈自己的一些实践和心得体会。 1)《Android插件化开发指南》的英文版出版  在社区一众朋友的帮助下,我把这本书翻译成英文,并经过几番修改,终于由CPC Press在国外出版了,在中文版的基础上加上了对Android O和P的插件化支持。书的英文名是《Android App-Hook and Plug-In technology》。我不知道老外对这个技术的接受程度有多少,但总算是了却了一桩心愿,让全世界知道Android技术在中国做的有多深入。 接下来,我会在微 立即下载

相关推荐

DRAM刷新refresh相关知识归类-基础小知识(三)

RAM每一位数据都是通过芯片内的一个小电容充电(或低电平)存储的。但随着时间的推移,电容逐渐失去电荷。为避免丢失存储的数据,必须定期刷新以将电荷(如果存在)恢复到其原始级别。此刷新过程包括读取每个位的值,然后将其写回。在此“刷新”期间,内存被占用,无法执行加载或存储位等正常操作。知道了应该这么做,但怎么去做以及有什么办法更有效率去做,就是接下来要整理的内容。

Paul 安的博客 1万+

Flutter与Dart-入门

针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

2401_84121798的博客 970

Qt多线程实战:如何优雅地处理Modbus设备通信中的线程安全问题

本文深入探讨了在Qt框架下实现Modbus设备通信时的多线程安全问题,提供了优雅的解决方案。通过生产者-消费者模型、任务队列与锁机制等设计模式,有效解决了界面卡顿、数据包错乱等问题。文章还详细介绍了对象生命周期管理、信号槽连接类型选择等关键实现细节,帮助开发者构建稳定可靠的Modbus通信模块。

weixin_30897233的博客 483

Flutter学习总结

1. Flutter 是什么? Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。 2. Flutter 特性有哪些? 快速开发(毫秒级热重载) 绚丽UI(内建漂亮的质感设计Material Design和Cupertino Widget和丰富平滑的动画效果和平台感知) 响应式(Reactive,用强大而灵活的API.

阿福的专栏 1051

扫地机器人视觉+IMU融合导航路径规划技术详解

本文介绍了基于视觉-惯性里程计(VIO)的扫地机器人自主导航系统。系统硬件由RGB摄像头、IMU传感器和编码器组成,软件架构采用分层设计,包括传感器数据采集层、数据融合层、SLAM定位层和路径规划层。核心技术包括:1)融合视觉特征提取(ORB算法)与IMU预积分的VIO;2)基于栅格地图的SLAM构建;3)结合A*全局规划和动态窗口法(DWA)局部避障的路径规划。文章提供了完整的Python实现代码,涵盖传感器数据融合、特征匹配和运动估计等关键功能模块。该系统实现了扫地机器人的精准定位和环境感知能力。

电脑管家 1459

从零搭建ECG心电图仪:模拟前端电路设计与噪声对抗实战

在电子工程和生物医学信号处理领域,微弱信号的采集与放大是核心挑战。其基本原理在于利用高精度模拟电路,从强大的环境噪声中提取出有用的差分信号。这项技术的核心价值在于将理论上的传感器信号转化为稳定、可靠的可用数据,是连接物理世界与数字系统的关键桥梁。在医疗监护、工业传感和科学测量等场景中,高性能的模拟前端设计直接决定了整个系统的精度与可靠性。本文聚焦于生物电信号采集这一具体应用,深入探讨如何运用差分放大器、低通滤波器和陷波滤波器等经典模块,构建一个能够有效对抗工频干扰和接触噪声的实用电路,最终实现从人体体表清晰

weixin_30616969的博客 458

使用Flutter一年后,这是我得到的经验

本文在开源项目GitHub中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…525)][外链图片转存中…(img-ceKOMKww-1710686006525)][外链图片转存中…(img-zuduLPiA-1710686006525)]

m0_57502067的博客 449

【2025国赛C题】高教社杯全国大学生数学建模竞赛C题思路+代码+论文

【2025国赛C题】高教社杯全国大学生数学建模竞赛C题思路+代码+论文

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2901

Flutter 学习总结 和心得

该文章主要讲述自己两个月以来 通过闲暇时间编写 简单学习Dart 和 编写 Flutter 的知识点总结和心得,可能不够系统并且有点乱。仅供个人回忆和思考。 备注: Flutter 中万物皆为 Widget Dart 简单了解 这边我主要通过 Flutter 中文官网学习 Flutter 中文官网 学习Dart 中 主要查阅的中文博客 Dart 讲解 上述文章 已经将Dart 基础讲解的很透彻...

魔都大白 438

学Simulink——基于故障诊断与容错控制的场景实例:并网逆变器在短路故障下的动态响应及恢复策略

本文详细介绍了使用Simulink进行并网逆变器短路故障模拟与保护策略设计的方法。通过构建高精度逆变器模型,模拟IGBT击穿和桥臂直通故障,分析动态响应特性。重点设计了基于Stateflow的微秒级快速保护逻辑,包括过流检测、PWM闭锁和故障报警。同时提出完整的恢复策略流程,涵盖放电、去磁、自检和软启动等关键步骤。仿真结果表明,该方法能在200μs内有效限制短路电流,保护器件安全,并实现系统可靠恢复。文章还探讨了硬件保护协同、多级保护和预测保护等高级策略,为新能源系统的安全运行提供了重要参考。

amy_mhd的博客 143

4、机器人建模、规划与控制及运动学知识解析

本博客深入解析了机器人建模、规划与控制的核心内容,涵盖运动学与动力学的基本原理,并结合典型应用场景探讨了移动机器人与操作器的控制策略。同时,博客还介绍了机器人技术的发展趋势及其在工业和服务领域的广泛应用。

desk3的博客 122

【Flutter】flutter_bloc学习感悟(只有感悟)

初识flutter_bloc 初次接触flutter_bloc,网友们说很强大,就想学习一下,原理学不会,至少先学一下怎么使用。 了解flutter_bloc 经过简单的学习、了解,发现它并没有想象中那么复杂,但是却实现了局部刷新(或叫rebuild)Widget的功能。 我们都知道,在flutter中通过一个简单的setState方法就可以刷新整个页面,flutter_bloc是如何做到局部刷新的呢? flutter_bloc的实现 粗浅的学习,看到了flutter_bloc架构的强大。 发现几个

流浪的青蛙‘s Blog 532

泛微系统流程表单获取节点操作者

泛微系统流程表单获取节点操作者 select typename 流程类型, workflowname 流程名称, nodename 节点名称, (case when nodetype=0 then '创建' when nodetype=1 then '审批' when nodetype=2 then '提交' when nodetype=3 then '归档' else '' end) as 节点类型, groupname 节点操作组, (case when type=1 then '部门+安

烧硬盘 4613

一个写了3年半flutter的小伙,突然写了2个月uniapp的感悟!

前言因为某些原因,在过去的三年半时间,我除了flutter之外,很少接触其他的框架,期间除了学习了Android(主要是Kotlin、jetpack)、GoLang Gin之外基本上很少接触其他的框架。而在最近的两个月,突然来了一个要求用uniapp实现的项目,在接下这个前,我是有些抵触的。第一点是觉得自己短期内去学一个新的框架,学到的东西不足以完成整个项目,第二点是不想脱离舒适圈。当然,最后我还...

我本可以容忍阳光,如果我不曾见过太阳,然而阳光已使我荒凉,成为更新的荒凉。 1435

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Flutter 随机颜色 颜色处理工具类

十六进制记法 #FF000000 取值范围为:00 - FF。

代码小疯子 3099

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

36岁程序员的感悟

摘要: 大龄程序员面临技术迭代、时间碎片化和思维固化等挑战,需要调整学习方式:先实践后理解原理,合理规划学习目标。保持开放心态和持续学习尤为重要,同时需警惕思维僵化,将新技术引入实际工作。35岁后需思考职业方向,技术与管理能力兼备是关键。建议主动培养管理思维,勇于承担责任,学会任务拆解和风险控制,灵活调整技术方案并做好迭代规划。

jzlhll123的专栏 455

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Flutter 淡入淡出效果

笔者之前工作是在金融公司可能并不是特别追求技术,而笔者又是喜欢追求技术的人,所以格格不入,只能把目标放在互联网大厂了。也希望大家都去敢于尝试和追逐自己的梦想!BATJ大厂Android高频面试题《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!存中…(img-CWo5yZxJ-1711817846236)][外链图片转存中…(img-nOIlju8G-1711817846236)]

2401_84009300的博客 737

阿里开发者们的第18个感悟:每次困难出现时,就是成长的机会出现了

摘要: 2018年12月20日,云栖社区3岁。阿里巴巴常说“晴天修屋顶”,所以我们特别制作了这个专辑——分享给开发者们20个阿里故事,50本书籍。 2015年12月20日,云栖社区上线。2018年12月20日,云栖社区3岁。 阿里巴巴常说“晴天修屋顶”。 在我们看来,寒冬中,最值得投资的是学习,是增厚的知识储备。 所以社区特别制作了这个专辑——分享给开发者们20个弥足珍贵的成长感悟,50本书单...

xuciyisheng的博客 252

2020年总结

2020年即将过去,2021马上就会到来,回望这一年垮杆了很多公司,商铺,这一年因为疫情各行各业都收到影响,也应该庆幸现在已经控制住,生活也逐步恢复正常,虽然还是有一定影响,但是防护做好那都不是事,反观国外疫情不容乐观,处于水深火热之中。 在这一年时间除了疫情也经历的事情,有喜有悲,有乐有哀,也有些许无奈,有很多事都需要一个人去抗,那种感觉无法用言语去将它描述出来,就像是在你心头上用抓轻轻的挠,十分的不舒服,不善于编写总结我就...

lizhong 623

android小程序开发实例!BTAJ大厂最新面试题汇集,绝对干货

前言 Flutter 作为Google出品的一个新兴的跨平台移动客户端UI开发框架,正在被越来越多的开发者和组织使用,包括阿里的咸鱼、腾讯的微信等。 今天,我主要讲解Flutter中文本组件方面的Widget,包括Text、RichText、TextField,希望你们会喜欢。 学会深入思考,总结沉淀 我想说的第一条就是要学会深入思考,总结沉淀,这是我觉得最重要也是最有意义的一件事。 ‌先来说深入思考。在程序员这个圈子里,常能听到一些言论:我这个工作一点技术含量都没有,每天就CRUD,再写写i

m0_56259515的博客 160

2021年终总结

兜兜转转,日子晃到了2021年尾。今年感觉过的可真快。 2021年终总结一、最大的收获二、最大的遗憾三、学习相关3.1 博客、书籍相关3.2 业余爱好3.3 游戏风云3.4 社会所得3.5 最有价值的购物3.6 其他杂谈 一、最大的收获 在2021年6月6号,亲爱的老婆给我生了一个可爱的女儿,郭梧悠。我博客的头像就是我女儿四个月左右照的,优快云昵称也是小棉袄的名称。如今宝宝再过6天就七个月啦,每天都要看她的照片和视频,仿佛有了无穷的动力。闺女的出生也改变了自己的生活态度。比如更积极,不论每天过的多么操蛋,

菜鸟博客 8773

2个月面试腾讯、B站、网易等11家公司的面经总结!分享一点面试小经验

前言 19年6月份从网易云音乐离开,放弃了留学机会,开始了人生的第一次创业,前后尝试了两个项目,因为个人能力与时机因素都失败了,虽然没能享受到创业所能够带来高杠杆物质上的回报,但是对个人软技能和自我边界认知上都有了很大的提升,对于这段经历有以下四点想送给准备创业和走在创业路上的朋友们。 创业本质是一个不断降低商业模式风险的过程。(创业前最好去北京798的智能硬件展厅看一看) 当你对于自己的未来感到模糊,对当下感到厌倦的时候,跳出舒适圈,快速尝试是最好的解决方案。 打开自己,多结识各路“牛鬼蛇神”,你当下的

m0_53537576的博客 408

2018年工作总结

时间过得真快,翻看了下去年的工作总结仿佛还在眼前一样。在写一篇总结结束18年的工作吧。心随意动,想到哪儿就写到哪儿吧。 发现真的很巧,17年就写了25篇博客,18年仍然是25篇。没有完成30篇博客的任务,差不多两个星期写一篇吧,这么算起来确实自己很懒了。相比与那些真正的博客大神还有很大的差距。 今年因为各种原因,选择了从上家公司辞职,准备的比较仓促,从离职到入职不到三个星期时间就搞定了。现在想想确...

菜鸟博客 3138
上一篇: Android用kotlin修改一个图片编辑库做一个作业点评的功能
下一篇: Android 打开系统文件管理器兼容android8,9,10和读取第三方文件管理的文件(微信文件管理)
泡温泉的咸鱼
博客等级 码龄11年 39粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值