美文网首页
Dart/Flutter基础-类的操作

Dart/Flutter基础-类的操作

作者: SoundYoung | 来源:发表于2019-08-16 11:15 被阅读0次
    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/Flutter基础-类的操作

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