0
点赞
收藏
分享

微信扫一扫

【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.")
}
  • 构造函数
  1. 主构造函数

主构造函数:没有函数体

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. 次构造函数

序号

一些特性

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)
  1. 特殊情况

​类中只有次构造函数,没有主构造函数​

class Student4:Person2{
constructor(name: String,age: Int):super(name,age){
}
}

q(≧▽≦q):Kotlin新特性

  1. 参数默认值可以替代次构造函数的功能


举报

相关推荐

0 条评论