美文网首页Flutter
Dart类的基础知识(一)

Dart类的基础知识(一)

作者: SoundYoung | 来源:发表于2019-08-07 17:34 被阅读3次

    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条腿  说明在类初始化之前就已经赋值,因为构造函数是初始化就执行

      }

    }

    相关文章

      网友评论

        本文标题:Dart类的基础知识(一)

        本文链接:https://www.haomeiwen.com/subject/uzjadctx.html