创建对象时父类的中this的两种使用方式有什么区别

来源:5-7 带你揭开Flutter中的面向对象(标准构造方法、初始化列表)

慕圣9125389

2021-03-28

class Person{
String name;
int age;

Person(this.name,this.age){
// 1
print(this.name);
}
}

class Student extends Person{
String _school;
String city;
String country;
String name;

Student(String name, int age,
this._school,{this.city=‘未知’,this.country=‘中国’})
: super(name, age){
//2
print(super.name);
}

}

void main(){
var student = Student(‘张三’,12,‘三班’);
//3
print(student.name);
}

在第一处输出为:null
第二处输出为:张三
第三处输出为:null

创建对象时父类构造函数中函数体内的this和参数中的this有什么区别呢

写回答

1回答

CrazyCodeBoy

2021-03-30

在Dart中:

Person(this.name,this.age)
//等价于
Person(name, age)

函数体中的this表示的是当前对象本身。

注意:只有通过this.name=xxx 赋值过的变量才能通过获取到this.name值,不然获取到的是null。

0
2
CrazyCodeBoy
回复
慕圣9125389
this是指向的是当前类的对象,不会指向子类。
2021-04-05
共2条回复

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3270 问题

查看课程