当前位置: 首页 > news >正文

重庆做网站那里好登錄wordpress界面

重庆做网站那里好,登錄wordpress界面,百度信息流开户多少钱,wordpress专栏插件文章目录 1.field2.计算属性3.主构造函数4.次构造函数5.默认参数6.初始化块7.初始化顺序7.延迟初始化lateinit8.惰性初始化 1.field field 关键字通常与属性的自定义 getter 和 setter 一起使用。当你需要为一个属性提供自定义的行为时#xff0c;可以使用 field 来访问或设置… 文章目录 1.field2.计算属性3.主构造函数4.次构造函数5.默认参数6.初始化块7.初始化顺序7.延迟初始化lateinit8.惰性初始化 1.field field 关键字通常与属性的自定义 getter 和 setter 一起使用。当你需要为一个属性提供自定义的行为时可以使用 field 来访问或设置该属性的实际存储值。 class Player {var age: Int 0get() field // 自定义 getterset(value) { // 自定义 setterif (value 0) {field value} else {println(年龄不能为负数)}} }fun main() {val player Player()player.age 30 // 正常设置println(player.age) // 输出 30player.age -5 // 尝试设置无效的年龄println(player.age) // 输出 30因为设置失败所以仍然是 30 }更复杂的自定义行为 class Person {private var _age: Int 0 // 私有字段var age: Intget() {println(获取年龄: $_age)return _age}set(value) {if (value 0) {println(设置年龄: $value)_age value} else {println(年龄不能为负数: $value)}} }fun main() {val person Person()person.age 30 // 输出: 设置年龄: 30println(person.age) // 输出: 获取年龄: 30// 30person.age -5 // 输出: 年龄不能为负数: -5println(person.age) // 输出: 获取年龄: 30// 30 }field 关键字在自定义的 getter 和 setter 中field 代表属性背后的实际存储字段。自定义 getter 和 setter允许你在读取和写入属性时执行额外的逻辑如数据验证、日志记录等。私有字段为了更好地控制属性的访问可以使用私有字段来存储实际值并通过公开的属性提供访问接口。 2.计算属性 计算属性这些属性没有后台字段来存储值而是通过 getter 方法在每次访问时计算并返回值。自定义 getter你可以在类中定义一个没有显式初始化值的 val 属性并为其提供一个自定义的 getter 方法。 class Rectangle(val width: Int, val height: Int) {// 计算属性val area: Intget() width * height // 自定义 getter }fun main() {val rectangle Rectangle(10, 5)println(宽度: ${rectangle.width}) // 输出 宽度: 10println(高度: ${rectangle.height}) // 输出 高度: 5println(面积: ${rectangle.area}) // 输出 面积: 50 }3.主构造函数 在People类的定义头中定义一个主构造函数使用临时变量为Player的各个属性提供初始值在Kotlin中为了便于识别临时变量通常都会以下划线开头的名字命名。 class People(_name:String,_age:Int,_isNormal:Boolean ) {var name _nameget() field.capitalize()set(value){field value.trim()}var age _ageget() fieldset(value){field value.absoluteValue}var isNormal _isNormal }fun main(){val people People(Jack, 20, true)println(people.name)println(people.age)println(people.isNormal) }4.次构造函数 除了主构造函数还有次构造函数我们可以定义多个次构造函数来配置不同的参数组合。 class People0(_name:String,var age:Int,var isNormal:Boolean ) {var name _nameget() field.capitalize()set(value){field value.trim()}constructor(name : String) : this(name , age 10, isNormal false) {this.name name.capitalize()}}fun main(){val people0 People0(rose)println(people0.name) // Roseprintln(people0.age) // 0println(people0.isNormal) // false}5.默认参数 定义构造函数时可以给构造函数指定默认值如果用户调用时不提供值参就是用这个默认值。 class People1(_name:String,var age:Int 99,var isNormal:Boolean false ) {var name _nameget() field.capitalize()set(value){field value.trim()}constructor(name : String) : this(name , age 10, isNormal false) {this.name name.capitalize()}}fun main(){val people1 People1(_name jim)println(people1.name) // Jimprintln(people1.age) // 99println(people1.isNormal) // false }6.初始化块 初始化块可以设置变量或值以及执行有效性检查如检查传给某构造函数的值是否有效初始化块代码会在构造类实例时执行。 class People1(_name:String,var age:Int 99,var isNormal:Boolean false ) {var name _nameget() field.capitalize()set(value){field value.trim()}constructor(name : String) : this(name , age 10, isNormal false) {this.name name.capitalize()}init {require(age 0){年龄设置不能小于0}} }fun main(){val people1 People1(_name jim,-1, false)println(people1.name) // Jimprintln(people1.age) // 198println(people1.isNormal) // false }7.初始化顺序 主构造函数里声明的属性类级别的属性赋值init初始化块里的属性赋值和函数调用次构造函数里的属性赋值和函数调用 class Student(_name : String,val age : Int ){var name _namevar score 10var hobby musicval subject : Stringinit {println(initializing student...)subject Chinese}constructor(_name:String) : this(_name,10){score 100} }fun main(){val student Student(Jack)}public Student(NotNull String _name) {Intrinsics.checkNotNullParameter(_name, _name);this(_name, 10);this.score 100;}public Student(NotNull String _name, int age) {Intrinsics.checkNotNullParameter(_name, _name);super();this.age age;this.name _name;this.score 10;this.hobby music;String var3 initializing student...;System.out.println(var3);this.subject Chinese;}7.延迟初始化lateinit 使用lateinit关键字相当于做了一个约定在用它之前负责初始化只要无法确认lateinit变量是否完成初始化可以执行isInitialized检查 class Player4 {lateinit var equipment : Stringfun ready(){equipment AK-47}fun battle(){if (::equipment.isInitialized){println(equipment)}else{println(没有武器)}} }fun main(){val player4 Player4()// player4.ready()player4.battle() }8.惰性初始化 延迟初始化并不是初始化的唯一方式你也可以暂时不初始化某个变量知道首次使用它叫做惰性初始化。 class Player5(_name :String) {var name _nameval config by lazy {loadConfig()}private fun loadConfig():String{println(loading...)return xxx} }fun main() {val p Player5(kim)Thread.sleep(4000)// 4s后才会打印println(p.config) }
http://www.hkea.cn/news/14337665/

相关文章:

  • logo在线设计生成免费广东seo推广价格
  • 怎样做免费外贸网站中国大宗交易平台
  • 扬中会建网站江门骏科网站建设
  • 外国高端网站网页设计基础课程教学目标
  • 较好的网站设计师培训学校福州网站提升排名
  • 网站建设 李奥贝纳做的最好的快餐网站
  • 连州市网站建设模板网站什么意思
  • 网站建设中网站制作包括哪些内容建筑工程网络图计算方法
  • 济南shuncheng科技 网站建设外贸网
  • 百度网站制作推广不花钱做推广的网站
  • 电子销售网站报表模块如何做优秀网站设计的标准
  • 建站标准陕西省住房和城乡建设部网站
  • 企业网站设计文档做思维导图的在线网站
  • 网站开发与技术分析深圳市龙华区观澜街道
  • 有什么好的网站吗泰安新闻频道在线直播
  • 合肥营销网站建设设计建筑工程网官方网站
  • aspcms 生成网站地图深圳品牌女装前十名
  • 网站验证码怎么做wordpress 关闭畅言
  • 购买的网站怎么看网站空间大小北京app制作哪家好
  • 临沂做网站需要多少钱wordpress分类信息导航
  • 宁波网站建设公司哪里有正规的网店培训机构有哪些
  • 小学网站建设工作小组网站开发公司模版
  • 微信公众平台网站建设如何利用seo赚钱
  • 网站建设 南昌建设网站的基本流程
  • 北京正规网站建设有几种开发区人力资源服务中心
  • 积玉桥网站建设2016个人网站备案
  • 重庆网站建设制作公司wordpress大淘客主题
  • 腾讯网站开发园林景观设计公司企业文化
  • 什么是网站静态化辽宁省建设工程信息网招标
  • 织梦网站地图网站适合移动端