1、概念
面向对象是一种编程思想,抽象出事物的之间的联系。和面向过程来区分主要是多了【类】和【对象】,类就是把对象的共性抽象出来。
比如现在有狗、猫、猪,他们的共性就是:动物。
于是我可以设置1个类:动物,3个对象:狗、猫、猪
面向对象有3大特性:
1.1、封装性
将对象的属性和行为封装起来。比如:我不用知道狗的细胞化学反应具体什么样的,我只用知道狗有尾巴(属性),见到主人会摇尾巴(行为)。
1.2、继承性
描述类与类的关系。比如:狗类可以继承动物类;泰迪类可以继承狗类。
1.3、多态性
程序中允许出现重名现象,一个类中定义的属性和方法被其他类继承,他们可以具有不同的数据类型或表现不同的行为,使得同一个名字的属性和方法在不同类中具有不同的含义。比如:狗、鱼都需要呼吸,但它们呼吸使用的器官是不一样的。
2、类与对象
2.1、类的定义
定义一个Person类
class Person {
// 成员属性
private val name = ""
private val age = 0
// 成员方法
private fun sayHello() {
println("我叫${name},我今年${age}岁")
}
}
2.2、对象的创建
class Person {
// 成员属性
private val sex = "男" // private私有属性,不能被外部访问
va