dart快速入门教程 (7.2)
7.4.抽离类为单独文件
新建一个文件,单独存放一个类,例如:Person类抽离到person.dart文件中
class Person {
final String name;
final num age;
final String gender;
const Person(this.name, this.age, this.gender);
}
引入这个Person类
import './person.dart';
void main() {
var p = new Person("xiaoqiang", 18, "男");
print(p.gender);
}
7.5.初始化列表
初始化列表就是在构造方法体执行之前进行一系列初始化操作,常用于设置final变量的值
void main() {
// 注意:new关键字可以省略
// var p = new Person("xiaoqiang", 12, "男");
// print(p.name);
// 创建对象的时候,可以使用fn构造方法
var p2 = new Person.fn("xiaohong", 12);
}
class Person {
String name;
num age;
final String gender;
Person(this.name, this.age, this.gender){
print(this.name);
print(this.age);
print(this.gender);
}
// 在构造方法后面加冒号来设置初始化列表,每个初始化变量之间用逗号隔开
Person.fn(name, age):gender="男", name="xiaoli"{
print(name);
print(age);
}
}
7.6.静态成员
可以使用static关键字来实现类级别的变量和函数,通俗的说静态成员就是可以直接通过类名称来调用
void main() {
print(Person.name);
Person.showName();
}
class Person {
static String name;
static num age;
static void showName () {
name = "xiaoqiang";
print(name);
}
void showAge () {
// 非静态成员是可以直接使用静态成员
age = 10;
print(age);
}
}
注意:静态成员不能访问非静态成员
void main() {
print(Person.name);
Person.showName();
var p = new Person();
p.showAge();
}
class Person {
static String name;
static num age;
String gender = '男';
static void showName() {
name = "xiaoqiang";
print(name);
// 报错 静态方法不能访问非静态的属性
print(gender);
}
void showAge() {
// 非静态成员是可以直接使用静态成员
age = 10;
print(age);
}
}
注意2: 定义静态常量 需要用 static const ,例如: static const gender = "男", 定义成常量后,在静态方法中可以访问
7.7.对象操作符
条件成员访问 ?.
void main() {
var p = new Person();
// 如果p为空就不执行showName方法 如果p不为空就会执行
p?.showName();
}
class Person {
String name;
static num age;
showName() {
print(name);
}
}
is 和 is!
void main() {
var p = new Person();
if (p is Person) {
p.showName();
} else {
print("不属于这个类");
}
}
class Person {
String name;
static num age;
showName() {
print(111);
print(name);
}
}
..级联操作
void main() {
new Person()
..name = "小强"
..age = 20
..showName();
}
class Person {
String name;
num age;
showName() {
print(111);
print(name);
}
}
7.8.call方法
当类的内部定义call方法,那么对象可以作为方法调用
void main() {
var p = new Person();
p();
p.showName();
}
class Person {
String name;
num age;
showName() {
print(111);
print(name);
}
call() {
print('call 方法被执行了');
}
}
螺钉课堂视频课程地址:http://edu.nodeing.com
dart快速入门教程 (7.2)的更多相关文章
- dart快速入门教程 (8)
9.dart中的库 9.1.自定义库 自定义库我们在前面已经使用过了,把某些功能抽取到一个文件,使用的时候通过import引入即可 9.2.系统内置库 以math库为例: import "d ...
- dart快速入门教程 (7.4)
7.12.多态 多态字面上理解就是多种状态,通俗的说,多态表现为父类定义一个方法不去实现,子类继承这个方法后实现父类的方法,这个方法有多种表现 // import 'person.dart'; voi ...
- dart快速入门教程 (7.3)
7.4.抽离类为单独文件 新建一个文件,单独存放一个类,例如:Person类抽离到person.dart文件中 class Person { final String name; final num ...
- dart快速入门教程 (7.1)
7.面向对象 dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,所有的类都是Object的子类,换句话说就是万物皆对象 7.1.类与对象 void main() { // 注意:ne ...
- dart快速入门教程 (2)
2.变量和数据类型 2.1.变量和常量 变量通俗的说就是可以变化的量,作用就是用来存储数据,你可以把一个变量看作是一个水果篮,里面可以装苹果.梨.香蕉等,常量就是一个固定的值,和变量是相对的,变量可以 ...
- dart快速入门教程 (1)
1.环境搭建 1.1.dart简介 Dart 是一种 易于学习. 易于扩展.并且可以部署到 任何地方 的 应用 编程 语言.Google 使用 Dart 来开发 大型应用.flutter使用dart语 ...
- dart快速入门教程 (6)
6.内置操作方法和属性 6.1.数字类型 1.isEven判断是否是偶数 int n = 10; print(n.isEven); // true 2.isOdd判断是否是奇数 int n = 101 ...
- dart快速入门教程 (5)
5.函数 5.1.函数定义 语法: 返回值类型 函数名(参数类型 参数1, 参数类型 参数2,...) { // 函数体 return '返回值' } 举例: void main() { print( ...
- dart快速入门教程 (4)
4.流程控制 4.1.分支结构 1.if语句 void main() { int score = 80; if (score >= 90) { print('优秀'); } else if (s ...
随机推荐
- (Java实现) 均分纸牌
题目描述 有 N 堆纸牌,编号分别为 1,2,-, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 ...
- Java实现 LeetCode 297 二叉树的序列化与反序列化
297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得 ...
- java实现第六届蓝桥杯垒骰子
垒骰子 题目描述 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体. 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰 ...
- MD760按键说明书
- iOS -实现imageView中的button响应点击事件的方法
<pre name="code" class="cpp" style="font-size: 13px;">/** imagev ...
- MIPI CSI-2
目录 1 MIPI简介 2 MIPI CSI-2简介 2.1 MIPI CSI-2 的层次结构 2.2 CSI-2协议层 2.3 打包/解包层 2.4 LLP(Low Level Protocol)层 ...
- k8s学习-资源清单
4.kubernetes使用 4.1.资源清单 api 文档.api 描述 4.1.2.说明 必须存在的属性 主要的对象 额外的参数项 例子 vim my-app.yml apiVersion: v1 ...
- PAT 1041 Be Unique (20分)利用数组找出只出现一次的数字
题目 Being unique is so important to people on Mars that even their lottery is designed in a unique wa ...
- Java学习之IO流及网络编程
一.字节 1.1字节输入流(java.io.InputStream) 此抽象类是表示字节输入流的所有类的超类 1.1.1定义了所有子类共性的方法: int read() 从输入流中读取数据的下 ...
- HashMap源码和并发异常问题分析
要点源码分析 HashMap允许键值对为null:HashTable则不允许,会报空指针异常: HashMap<String, String> map= new HashMap<&g ...