以下是我的代码
void main() {
user userOne=user('silver',19);
print(userOne.name);
superUser userTwo=superUser('sasha',1);
print(userTwo.name);
}
class user{
int age;
String name;
user(String name,int age){
this.name=name;
this.age=age;
}
void login(){
print("user has logged in");
}
}
class superUser extends user{
superUser(String name,int age):super(name,age);
void publish(){
print("publish update");
}
}尽管我在构造函数中初始化了变量,但我还是得到了这些错误。
Non-nullable instance field 'name' must be initialized.
Non-nullable instance field 'age' must be initialized.我是否应该将整型变量初始化为0,将字符串变量初始化为空字符串?
发布于 2021-08-28 18:11:41
您可以执行以下操作:
void main() {
user userOne=user('silver',19);
print(userOne.name);
superUser userTwo=superUser('sasha',1);
print(userTwo.name);
}
class user{
int age;
String name;
// Syntactic sugar for setting name and age
// before the constructor body runs.
user(this.name, this.age);
void login(){
print("user has logged in");
}
}
class superUser extends user{
superUser(String name,int age):super(name,age);
void publish(){
print("publish update");
}
}类名最好使用UpperCamelCase,意思是User,SuperUser,而不是user,superuser。
发布于 2021-08-28 18:08:40
在初始化之前,不能使用不可为空的属性。所以,你有两个选择:
1-声明延迟变量。
class user{
late int age;
late String name;
user(String name,int age){
this.name=name;
this.age=age;
}
void login(){
print("user has logged in");
}
}2-使其可为空。
class user{
int? age;
String? name;
user(String name,int age){
this.name=name;
this.age=age;
}
void login(){
print("user has logged in");
}
}https://stackoverflow.com/questions/68966988
复制相似问题