Dart/Flutter基础-类的操作

2019-08-16  本文已影响0人  SoundYoung
class DartBasicLei {

  //dart 也是面向对象的语言,所以也继承,封装,多态的属性

  //类中的属性

  String title = '我是类的属性';

  void printInfo () {

    print(this.title);

  }

}

void main() {

  //调用类

  DartBasicLei dartBasicLei = new DartBasicLei();

  dartBasicLei.title = '改变了类里面的属性';

  //调用类的方法

  dartBasicLei.printInfo();

  //回顾可选参数与类一起使用

  var person = new Person('李伟','20');

  person.setInfo('张强');

  print(person.name);

  // person._IdCard;//可以调用,因为在一个文件中

  //调用getter方法,具体见Rect类 getter setter 不常用  因为完全可以用rect.height取代

  Rect rect = new Rect(10, 20);

  rect.areaHeight = 6;

  rect.height = 8;

  print(rect.area);

}

class Person {

  String name;

  String sex;

  /** 构造函数 */

  //默认构造函数

  // Person () {

  //  print('这里是默认的构造函数');

  // }

  //带参数的构造函数

  // Person (String name,String sex) {

  //  print('这里是默认的构造函数');

  //  this.name = name;

  //  this.sex = sex;

  // }

  //构造函数的简写

  Person(this.name,this.sex);//效果跟上面一样

  //命名构造函数  比如  var nowtime = new DateTime.now(); .now就是一个命名构造函数

  Person.habit(){

    print('我喜欢换篮球');

  }

  //注意  命名构造函数可以有多个 但是构造函数只能有一个比如下面的两个,第一个是不可以的,报错

  // Person(String name) {

  //  this.name = name;

  // }

  //这个不会报错

  Person.nameInfo(String name) {

    this.name = name;

  }

  setInfo (String name,[sex='男']) {

    this.name = name;

    this.sex = sex;

  }

  /** 私有  公有*/

  String _IdCard ;//_表示私有,当调用import的其他的类的_变量的时候就没法使用了,但是当前文件下是没问题的

  void _getIdCard () {

    print('这是我的身份证号');

  }//如果想调用该私有方法,可以在私有方法的类中,写一个方法,然后共有方法调用私有方法即可如下面:

  void getPrivateMethod () {//方法为公有

    _getIdCard();

  }

}

//getter 和 setter 的使用

class Rect {

  double width;

  double height;

  Rect (this.width,this.height);

  get area {

    return width*height;

  }//注意get修饰的方法  方法名字后面没有()

  set areaHeight (value){

    this.height = value;

  }

}

//初始化赋值 没啥用了解下,别人这么写能看懂就行

class Animal {

  String name;

  String legsum;

  Animal():name='狐狸',legsum='4条腿' {

    print(name+legsum);//将输入 狐狸4条腿  说明在类初始化之前就已经赋值,因为构造函数是初始化就执行

  }

}class DartBasicLei {

  //dart 也是面向对象的语言,所以也继承,封装,多态的属性

  //dart中的属性

  String title = '我是类的属性';

  void printInfo () {

    print(this.title);

  }

}

void main() {

  //调用类

  DartBasicLei dartBasicLei = new DartBasicLei();

  dartBasicLei.title = '改变了类里面的属性';

  //调用类的方法

  dartBasicLei.printInfo();

  //回顾可选参数与类一起使用

  var person = new Person('李伟','20');

  person.setInfo('张强');

  print(person.name);

  // person._IdCard;//可以调用,因为在一个文件中

  //调用getter方法,具体见Rect类 getter setter 不常用  因为完全可以用rect.height取代

  Rect rect = new Rect(10, 20);

  rect.areaHeight = 6;

  rect.height = 8;

  print(rect.area);

}

class Person {

  String name;

  String sex;

  /** 构造函数 */

  //默认构造函数

  // Person () {

  //  print('这里是默认的构造函数');

  // }

  //带参数的构造函数

  // Person (String name,String sex) {

  //  print('这里是默认的构造函数');

  //  this.name = name;

  //  this.sex = sex;

  // }

  //构造函数的简写

  Person(this.name,this.sex);//效果跟上面一样

  //命名构造函数  比如  var nowtime = new DateTime.now(); .now就是一个命名构造函数

  Person.habit(){

    print('我喜欢换篮球');

  }

  //注意  命名构造函数可以有多个 但是构造函数只能有一个比如下面的两个,第一个是不可以的,报错

  // Person(String name) {

  //  this.name = name;

  // }

  //这个不会报错

  Person.nameInfo(String name) {

    this.name = name;

  }

  setInfo (String name,[sex='男']) {

    this.name = name;

    this.sex = sex;

  }

  /** 私有  公有*/

  String _IdCard ;//_表示私有,当调用import的其他的类的_变量的时候就没法使用了,但是当前文件下是没问题的

  void _getIdCard () {

    print('这是我的身份证号');

  }//如果想调用该私有方法,可以在私有方法的类中,写一个方法,然后共有方法调用私有方法即可如下面:

  void getPrivateMethod () {//方法为公有

    _getIdCard();

  }

}

//getter 和 setter 的使用

class Rect {

  double width;

  double height;

  Rect (this.width,this.height);

  get area {

    return width*height;

  }//注意get修饰的方法  方法名字后面没有()

  set areaHeight (value){

    this.height = value;

  }

}

//初始化赋值 没啥用了解下,别人这么写能看懂就行

class Animal {

  String name;

  String legsum;

  Animal():name='狐狸',legsum='4条腿' {

    print(name+legsum);//将输入 狐狸4条腿  说明在类初始化之前就已经赋值,因为构造函数是初始化就执行

  }

}
上一篇下一篇

猜你喜欢

热点阅读