Dart系列(八-九) Dart中的方法定义


发文时间:2021年03月04日 01:49:26     编辑:Aaron      标签:记录Dart语言的学习历程 487


Dart是谷歌开发的计算机编程语言,后来被Ecma (ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。

方法的定义 - 调用 - 私有 - 公有(公共)  - 构造函数 - 命名构造函数

//新建一个类
class NameData{

  String name='张三';//属性值也可以设置为空
  int age=23;

  //新建一个方法
   void getName(){
    print("这是一个类中的方法 调用name ${this.name}  - 和age ${this.age}");
  }

  //新建一个可以操作参数值的方法
   void editData(String nname,int nage){
     this.name=nname;
     this.age=nage;
  }

  //构造函数  只能设置一个
  NameData(this.name,this.age){//赋值给name值 也可以按传参的方式去写
     // print('这个是构造函数 实例化会默认触发');
  }

  //命名构造函数可以设置多个
 NameData.info(){
     print('我是一个命名构造函数 我可以多个的 111');
 }

  //命名构造函数可以设置多个
  NameData.data1(){  //在这里面可以操作任何东西
    print('我是一个命名构造函数 我是第二个');
  }

  //方法前面带_就是私有方法  但是在一个页面里 这样是不生效的 在外部时才是生效的(就是把这个类单独放在一个文件里,然后import引入才生效)
  _udata(){

     print('我是一个私有方法 ');
  }

  //在公共类调用私有方法可以这样
  pudavs(){
  this._udata();//调用私有方法
 }

}

 void main(){

  //实例化类
  NameData ne=new NameData('张三',23);

  //调用类中的参数值
  print(ne.name);//输出 张三

  //调用类中的方法
  ne.getName();//输出   这是一个类中的方法 调用name 张三  - 和age 23

  //通过方法 操作类里面的值
  ne.editData('卡卡', 24);
  ne.getName();//输出  这是一个类中的方法 调用name 卡卡  - 和age 24


   //new时带参  这是一个类中的方法 调用name 我是新的  - 和age 21
  var  n2=new NameData('我是新的', 21);
  n2.getName();//输出  这是一个类中的方法 调用name 我是新的  - 和age 21

  //调用命名函数
  var n3=new NameData.info();
  print(n3);//输出  我是一个命名构造函数 我可以多个的 111

  print('--------------------分割线---------------------');

  var n4=new NameData.data1();
  print(n4);//输出  我是一个命名构造函数 我可以多个的 111

 }

类中 getter 和setter修饰符的作用

//类中 getter 和setter修饰符的作用

class DataNum{

  num height;
  num width;

  //构造函数的两种写法 1
  DataNum(this.height,this.width);
  // DataNum(this.height,this.width){
    //方法2 这样也可以 基于业务来走
  // }


  //类的常用方法
  Jisuan(){
    return this.height*this.width;
  }

  //类用get来写方法  (就是在方法前面加入get 然后减去了花括号 这个方法适合调用的时候)
  get Jisuan1{
    return this.height*this.width;
  }

  //类中的set方法  适合需要传入参 需操作值的时候
  set editWidth(value){
    this.width=value;
  }


}

main(){

  //计算10*2的值 普通类的调用方法
  var n=new DataNum(10, 2);
  var n1=n.Jisuan();
  print(n1);//求出 20

  print('------分隔符-------');


  //get方法的调用
  var s1=n.Jisuan1;
  print(s1);//输出 20

  print('------分隔符-------set');

  //set 方法的调用  更改值 然后width 从2 更改为4 输出40
  n.editWidth=4; //set 直接把值给set就行   成功输出40
  print(n.Jisuan());

  //打印出两个及两个变量的写法  打印多个变量 打印两个变量或两个以上
  // print("${n.height} --  ${n.width}"); //   10 --  2

}

构造函数运行之前设置初始化的实例变量值

//类中 getter 和setter修饰符的作用

class DataNum {

  num height;
  num width;

  //构造函数 设置实例初始值 设置两个参数的初始值  构造函数初始值
  DataNum():height=10,width=2{

    print(" ${this.height}   - --${this.width}");//实例化之前 就把参数赋值了 (先赋值 然后在操作 构造函数)
  }

  jisuan(){
    return this.height*this.width;
  }


}

main(){

  //不传参也可以计算值
  var n=new DataNum();
  var s=n.jisuan();
  print(s);


}


 

若无特殊说明,此文章为博主原创。
写稿不易,如需转载,请注明出处: https://www.aaroner.cn/art/40.html




SITE MAP

  FOLLOW US