android开发7年,掌握java,kotlin,flutter,python,oc
- google推出,开源
- 跨平台
- 执行速度快
- dart语言易学,容易上手
- 客户端技术发展了这么多年,大前端是一个必然趋势,最近很火的,react native(facebook)、weex(阿里),包括flutter,代表了一种必然的趋势, 没有一个公司愿意,同样的工作,只是因为平台不同,进行俩次,而且还会导致效果不同步的情况(这个大家一定要重视)
- 人效角度讲,一个人干俩个人的活,而且人效还能提升
- ui框架丰富
1.虽然是夸平台,但是对原生的依赖还是比较强
只要是一个稍微有技术追求的android程序员,他肯定会了解kotlin,flutter,如果你在面试过程中, 提到这俩个点,绝对是加分项,特别是flutter,俩次google flutter大会,个人都参与了, 能感觉到大公司对这个事情的重视,咸鱼,今日头条,小公司考虑人效的问题,也在逐渐尝试
1.闭包
- 闭包是一个方法(对象)
- 闭包定义在其他方法内部
- 闭包能够访问外部方法内的局部变量,并持有期其状态
2.计算属性
- 顾名思义,计算属性的值是通过计算而来,本身不存储值
- 计算属性赋值,其实是通过计算转换到其他实例变量
num get area() => w * h
set area(value) {
w = value * 20
}
3.构造方法
- 如果没有自定义的构造方法,则会有默认构造方法
- 如果存在自定义构造方法,则默认构造方法失效
- 构造方法不能重载
- 使用命名构造方法,可以实现多个构造方法
类名.实现
4.工厂构造方法
- 工厂构造方法类似于设计模式中的工厂模式
- 在构造方法前添加关键字factory实现一个工厂构造方法
- 在工厂构造方法中可返回对象(*)
5.初始化列表
- 初始化列表会在构造方法体执行之前执行
- 使用逗号分隔初始化表达式
- 初始化列表
6.对象call方法
- 如果类实现了call方法,则该类的对象可以作为方法使用
7.对象操作符
- ? 条件运算符
- as 类型转换
- is 类型判断
- .. 级联操作(重点)
1.继承
- 使用关键字extends继承一个类
- 子类会继承父类可见的属性和方法,不会继承构造方法
- 子类能够复写父类的方法,getter和setter
- 单继承,多态性
2.继承中的构造方法
- 子类的构造方法默认会调用父类的无名无参构造方法
- 如果父类没有无名无参构造方法 则需要显示的调用父类的构造方法
- 在构造参数后使用:显示调用父类构造方法
3.构造方法的执行顺序
- 父类的构造方法在子类的构造方法开始执行的位置调用
- 如果有初始化列表,初始化列表会在父类构造方法之前执行
4.抽象类
- 抽象类使用abstract表示,不能被直接实例化
- 抽象方法不用abstract修饰,无实现
- 有抽象方法的类一定要声明为抽象类
5.接口
- 类和接口是统一的,类就是接口
- 每个类都隐式的定义了一个包含所有实例成员的j接口
- 如果是复用已有类的实现,使用继承(extends)
6.Mixins
- Mixins类似于多继承,是在多类继承中重用的一个类代码的方式
- 作为Mixins的类b不能有显示声明的构造方法
- 作为Mixins的类只能继承自Object
- 使用关键字with连接y一个或多个Mixins
7.枚举
- 枚举是一种有穷序列集的数据类型
- 使用关键字enum定义一个枚举
- 常用于代替常量,控制语句等
8.泛型
- dart中类型是可选的,可使用泛型限定类型
- 使用泛型有效的减少代码重复
1.Text->TextView
2.Image->ImageView 3.