react 前端框架如何驱动企业数字化转型与创新发展
570
2022-11-24
【Kotlin】Kotlin笔记3-面向对象编程1(类与对象,继承,构造函数)
Kotlin笔记-面向对象编程1-类与对象,继承,构造函数
3.1 面向对象编程
类与对象
类: 对事物的一种封装(人),通常是名词 字段: 类属性(姓名,年龄),通常是名词 函数: 类行为(吃饭,睡觉),通常是动词 class
Example:
class Person { var name = "" var age = 0 fun eat() { println("$name is eating. He is $age years old.") }}
实例化
val p=Person()
fun main() { val p=Person() p.name="Jack" p.age=19 p.eat()}
继承
Example:
class Student : Person1() { var sno = "" var grade = 10}
open
open class Person1 { var name = "" var age = 0 fun eat() = println("$name is eating. He is $age years old.")}
构造函数
主构造函数
主构造函数:没有函数体
class Student1(val sno: String, val grade: Int) : Person1() {}
val student = Student1("001", 100)
init
主构造函数逻辑实现
class Student1(val sno: String, val grade: Int) : Person1() { init { println("sno is $sno") println("grade is $grade") }}
主类构造函数必须调用父类构造函数实现方案
open class Person2(val name: String, val age: Int) { fun eat() = println("$name is eating. He is $age years old.")}
class Student2(val sno: String, val grade: Int, name: String, age: Int) : Person2(name, age) { init { println("sno is $sno") println("grade is $grade") }}
val student1=Student2("001",100,"Tom",21)
次构造函数
序号 | 一些特性 |
1 | 任何一个类只能有一个主构造函数,但是可以有多个次构造函数 |
2 | 次构造函数可以用来实例化一个类,并且它有函数体 |
3 | 当一个类既有主构造函数,又有次构造函数,所有次构造函数必须调用主构造函数(包括间接接口) |
constructor
Example:
class Student3(val sno: String, val grade: Int, name: String, age: Int) : Person2(name, age) { constructor(name:String,age:Int):this("",0,name,age) constructor():this("",0)}
实例化
val student4=Student3()val student5=Student3("Jack",19)val student6=Student3("001",100,"Jack",19)
特殊情况
类中只有次构造函数,没有主构造函数
class Student4:Person2{ constructor(name: String,age: Int):super(name,age){ }}
q(≧▽≦q):Kotlin新特性
参数默认值可以替代次构造函数的功能
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~