Dart语言零基础学习笔记(十三)


dart中没有私有访问修饰符,只能在属性或者方法前加上下划线来定义成私有
私有方法和私有属性需要单独抽离到一个文件里

Dart中的私有属性

在属性前加上下划线来定义成私有 var _name;
在这里插入图片描述

class Cat {
  var age;
  var _name;
  Cat(this._name, this.age);
  
  printInfo() {
    print("$_name is  $age years old;");
  }

}

此时,在main文件里面是无法访问name的。
在这里插入图片描述

但是私有属性可以通过公有的方法来访问
私有属性可以在当前类里面使用,通过访问公有方法来间接访问私有属性

cat.dart

class Cat {
  var age;
  var _name;
  Cat(this._name, this.age);

  getName() {
    return this._name;
  }

  printInfo() {
    print("$_name is  $age years old;");
  }
}

main.dart

import 'cat.dart';

void main(List<String> args) {
  var cat = new Cat("小花", 3);

  //cat._name;//_name是私有属性,无法访问
  /*通过访问公有方法getName来间接访问私有属性_name*/
  print(cat.getName());//小花


  print(cat.age);//3
  cat.printInfo();//小花 is  3 years old;
}

Dart中的私有方法

在方法前加上下划线来定义成私有 var _print;
在这里插入图片描述

此时,在main文件里面是无法访问_print
在这里插入图片描述
在这里插入图片描述

但是私有方法可以通过公有的方法来访问
私有属性可以在当前类里面使用,通过访问公有方法来间接访问私有方法

在这里插入图片描述
cat.dart

class Cat {
  var age;
  var _name;
  Cat(this._name, this.age);

  _print() {
    //私有方法
    print("this is a siyou fangfa");
  }

  getSiyou() {
   
    return this._name;
  }

  printInfo() {
    print("$_name is  $age years old;");
  }
}

main.dart

import 'cat.dart';

void main(List<String> args) {
  var cat = new Cat("小花", 3);

  cat.getSiyou();//this is a siyou fangfa

 
}

get修饰符

class Rect {
  var height;
  var wight;
  Rect(this.height, this.wight);
  // area() {
  //   return this.height * this.wight;
  // }
  get area {
    return this.height * this.wight;
  }
}

void main(List<String> args) {
  Rect r = new Rect(5, 2);
  print('面积:${r.area}'); //调用直接通过访问属性的方式来访问are
}

set修饰符

class Rect {
  var height;
  var wight;
  Rect(this.height, this.wight);
  area() {
    return this.height * this.wight;
  }
  set areahight(Value) {
    this.height = Value;
 
  }

}

void main(List<String> args) {
  Rect r = new Rect(5, 2);

  r.areahight = 1;
  r.area();
  print(r.area());//2
}

类中的初始化列表

class Rect {
  var height;
  var wight;
  //Rect(this.height, this.wight);
  Rect():height=10,wight=2{
  }
  area() {
    return this.height * this.wight;
  }
}

void main(List<String> args) {
  Rect r = new Rect();
  print(r.area());//20
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值