Dart基础第七篇:Dart面向对象之构造函数&get、set方法的使用

class Person{
  String name;
  int age;

  /**
   * 默认构造函数相当于:Person(String name,int age){
   *                  this.name = name;
   *                  this.age = age};
   */
  //Person(this.name, this.age,this._like);
  /**
   * 默认构造函数(带默认值) 也叫初始化 这个方法和上边的方法只能出现一个 而且使用这个方法的时候 实例化对象不需要给属性赋值
   */
  Person():name='默认值name',age=1,_like='默认值like'{

  }

  /**
   * 命名构造函数 差不多相当于Java中的静态方法
   */
  Person.getInfo(){
    print("我是命名构造函数");
  }

  /**
   * 我也是命名构造函数
   */
  Person.setInfo(String name,int age){
    print('$name----$age');
  }



  void getInfo(){
    print('${this.name}-------${this.age}-----${this._like}');
  }

  /**
   * 在Dart中没有public private protected修饰符 可以使用_来表示私有属性或私有方法
   * 下面这个方法就表示一个私有方法 只能在当前类中使用
   */
  void _privateMethod(){
    print('这是一个私有方法');
  }

  /**
   * 这是一个私有属性
   */
  String _like;

  /**
   * Dart内置的一个方法get 访问的时候 直接通过对象.属性调用
   */
  get getPersonDetail{
    return '姓名:$name 年龄:$age 爱好:$_like';
  }

  /**
   * Dart内置的set方法 和Java类似
   */
  set setPersonName(String name){
      this.name = name;
  }

}
void main(){
  //实例化对象
  //Person person = new Person('1', 1,'2');
  Person person = new Person();
  //调用对象的方法
  person.getInfo();
  //调用私有方法__privateMethod();
  person._privateMethod();
  //命名构造函数
  Person.getInfo();
  //这也是命名构造函数
  Person.setInfo('我也是命名构造函数', 12);
  //Person person2 = new Person('MrWang',1 ,'摄影');
  Person person2 = new Person();
  //内置的get方法
  print('${person2.getPersonDetail}');

  /**
   * 也是直接通过属性赋值 然后进行打印
   */
  //set方法
  person2.setPersonName = 'MrWang2';
  print('${person2.getPersonDetail}');

}
发布了66 篇原创文章 · 获赞 36 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/u013600907/article/details/99721134