【Kotlin】Kotlin笔记3-面向对象编程1(类与对象,继承,构造函数)

网友投稿 570 2022-11-24

【Kotlin】Kotlin笔记3-面向对象编程1(类与对象,继承,构造函数)

【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小时内删除侵权内容。

上一篇:慕课软件工程(第六章.接口设计)
下一篇:慕课软件工程(第七章.结构化方法总结)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~