没有为类'Person'定义方法'set_age'。飞镖

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没有为类'Person'定义方法'set_age'。飞镖相关的知识,希望对你有一定的参考价值。

我是dart的新手,在尝试将值设置为变量(这是私有变量)并且使用getterssetters时遇到此错误,>

但我收到此错误:

未为类“人”定义方法“ set_age”。

这是我的代码的样子。

class Person{
  String firstName, lastName;
  int _pAge;
  double pSalary;

//  syntactic sugar
  Person(this.firstName, this.lastName, this.pSalary);

//  Named constructor
  Person.origin(){
    firstName = "";
    lastName = "";
    _pAge = 0;
    pSalary = 0.0;
  }

  String fullName() => this.firstName + " " + this.lastName;

//  getters and setters for _pAge
  set set_age(int age){
    _pAge =  age;
  }

  int get get_age => _pAge;
}

main() {
  Person p1 = new Person("Jananath", "Banuka", 15000.00);
  Person p2 = new Person("Thilina", "Kalansooriya", 55000.00);

  p1.set_age(10); //this is where the error is coming from

  print(p1.fullName());
  print(p2.fullName());
}

我是dart的新手,尝试将值设置为变量(这是私有变量)时遇到此错误,并且我使用的是getter和setter方法,但出现此错误:方法'...] >

答案

您正在将您的设置员称为方法。您应该更改设置器的使用方式或将设置器更改为方法:

class Person1 {
  int _pAge;

  set set_age(int age) =>_pAge = age;
  int get get_age => _pAge;
}

class Person2 {
  int _pAge;

  void set_age(int age) => _pAge = age;
  int get_age() => _pAge;
}

void main() {
  final p1 = Person1();
  p1.set_age = 10;
  print(p1.get_age);

  final p2 = Person2();
  p2.set_age(10);
  print(p2.get_age());
}
另一答案

p1.set_age = 10;

以上是关于没有为类'Person'定义方法'set_age'。飞镖的主要内容,如果未能解决你的问题,请参考以下文章

js的继承

js的继承

2022 年,把 Python 学得跟 Java 一样熟练——02 类定义

2022年,把 Python 学到跟 Java 一样熟练——02类定义

js的继承

39_方法值和方法表达式