请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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有什么区别呢

正在回答 回答被采纳积分+3

1回答

CrazyCodeBoy 2021-03-30 00:38:00

在Dart中:

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

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕圣9125389 #1
    函数体中的this表示的是当前对象本身的意思是在父类的函数体中this指向的是子类的对象么?
    如果是这样的话,那么这种写法是怎么保证this.name指向的是父类的
    Person(this.name,this.age)
    回复 有任何疑惑可以回复我~ 2021-04-04 11:05:31
  • CrazyCodeBoy 回复 提问者 慕圣9125389 #2
    this是指向的是当前类的对象,不会指向子类。
    回复 有任何疑惑可以回复我~ 2021-04-05 21:13:37
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信