kotlin 类成员变量(属性)和成员函数(行为)

阅读: 评论:0

kotlin 类成员变量(属性)和成员函数(行为)

kotlin 类成员变量(属性)和成员函数(行为)

类的成员包含两部分内容

1,成员属性:成员变量,类内部的变量

2,成员行为(功能):成员方法(函数),类内部的方法(函数)

 

类的成员方法:

stClass/*** Created by jingwen on 19/4/14.*/class Person{init {println("init person")}}class Student(var name:String,var age:Int){fun say(content:String){println(name+":"+content)}
}fun main(args: Array<String>) {var student:Student = Student("jingwen",21)student.say("老板,写程序累了,给安排一个程序员鼓励师,休息一下")
}

执行结果:

jingwen:老板,写程序累了,给安排一个程序员鼓励师,休息一下Process finished with exit code 0

 

类的成员属性

stClass/*** Created by jingwen on 19/4/14.*/class Person{init {println("init person")}}class Student(var name:String,var age:Int){var schoolName = "无名氏"var city ="东莞"//set 和 get 在谁的屁股后面就是谁的.city后面就是city的set和get,并不是schoolName的set和get方法get() {println("get city = $field")return field}set(value) {field = valueprintln("set city = $field")}fun say(content:String){println(name+":"+content)}
}fun main(args: Array<String>) {var student:Student = Student("jingwen",21)student.say("老板,写程序累了,给安排一个程序员鼓励师,休息一下")student.city = "天津"student.schoolName="南开大学"println(student.city)println(student.schoolName)
}

执行结果:

jingwen:老板,写程序累了,给安排一个程序员鼓励师,休息一下
set city = 天津
get city = 天津
天津
南开大学Process finished with exit code 0

 

属性的初始化,有两个懒家伙:

lateinit和by lazy
stClass/*** Created by jingwen on 19/4/14.*/class Person{init {println("init person")}}class Student(var name:String,var age:Int){lateinit var schoolName:Stringvar city ="东莞"//set 和 get 在谁的屁股后面就是谁的.city后面就是city的set和get,并不是schoolName的set和get方法get() {println("get city = $field")return field}set(value) {field = valueprintln("set city = $field")}val person:Person by lazy {println("lazy init Person()")Person()}fun say(content:String){println(name+":"+content)}
}fun main(args: Array<String>) {var student:Student = Student("jingwen",21)student.say("老板,写程序累了,给安排一个程序员鼓励师,休息一下")student.city = "天津"println(student.city)println(student.age)println(student.person)println(student.schoolName)//异常程序崩溃了,需要先赋值后使用的哈(student.schoolName = "南开大学")}

执行结果:

Exception in thread "main" kotlin.UninitializedPropertyAccessException: lateinit property schoolName has not been initialized
jingwen:老板,写程序累了,给安排一个程序员鼓励师,休息一下
set city = 天津SchoolName(test.kt:16)
get city = 天津stClass.TestKt.main(test.kt:49)
天津flect.NativeMethodAccessorImpl.invoke0(Native Method)flect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
flect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
lazy init Person()
init person
stClass.Person@579bb367at flect.Method.invoke(Method.java:497)at cution.application.AppMain.main(AppMain.java:140)Process finished with exit code 1

 

本文发布于:2024-01-31 04:55:11,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170664811225679.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:成员   变量   函数   属性   kotlin
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23