Kotlin 类和对象
Kotlin 支持函数式和面向对象的编程。在之前的文章中,我们了解了将 Kotlin 表示为函数式语言的函数、高阶函数和 lambda。在这里,我们将了解将 Kotlin 表示为面向对象的编程语言的基本 OOP 概念。
面向对象的编程语言
类和对象是面向对象编程语言的基本概念。这些支持 OOP 的继承、抽象等概念。
班级
与Java一样,类是具有相似属性的对象的蓝图。我们需要在创建对象之前定义一个类, class关键字用于定义一个类。类声明由用大括号括起来的类名、类头和类体组成。
类声明的语法:
class className { // class header
// property
// member function
}
- 类名:每个类都有一个特定的名称
- 类头:头由类的参数和构造函数组成
- 类体:用大括号括起来,包含成员函数和其他属性
标题和类主体都是可选的;如果大括号之间没有任何内容,则可以省略类主体。
class emptyClass
如果我们想提供一个构造函数,我们需要在类名之后写一个关键字构造函数。
创建构造函数:
class className constructor(parameters) {
// property
// member function
}
Kotlin 类的示例:
Kotlin
class employee {
// properties
var name: String = ""
var age: Int = 0
var gender: Char = 'M'
var salary: Double = 0.toDouble()
// member functions
fun name(){
}
fun age() {
}
fun salary(){
}
}
Kotlin
class employee {
// Constructor Declaration of Class
var name: String = ""
var age: Int = 0
var gender: Char = 'M'
var salary: Double = 0.toDouble()
fun insertValues(n: String, a: Int, g: Char, s: Double) {
name = n
age = a
gender = g
salary = s
println("Name of the employee: $name")
println("Age of the employee: $age")
println("Gender: $gender")
println("Salary of the employee: $salary")
}
fun insertName(n: String) {
this.name = n
}
}
fun main(args: Array) {
// creating multiple objects
var obj = employee()
// object 2 of class employee
var obj2 = employee()
//accessing the member function
obj.insertValues("Praveen", 50, 'M', 500000.00)
// accessing the member function
obj2.insertName("Aliena")
// accessing the name property of class
println("Name of the new employee: ${obj2.name}")
}
目的
它是面向对象编程的基本单元,代表现实生活中的实体,这些实体具有状态和行为。对象用于访问类的属性和成员函数。在 Kotlin 中,我们可以创建一个类的多个对象。一个对象包括:
- 状态:它由对象的属性表示。它还反映了对象的属性。
- 行为:它由对象的方法表示。它还反映了一个对象对其他对象的响应。
- 身份:它为一个对象赋予一个唯一的名称,并使一个对象能够与其他对象交互。
创建一个对象
我们可以使用类的引用创建一个对象。
var obj = className()
访问类的属性:
我们可以使用对象访问类的属性。首先,使用类引用创建一个对象,然后访问该属性。
obj.nameOfProperty
访问类的成员函数:
我们可以使用对象访问类的成员函数。
obj.funtionName(parameters)
Kotlin 创建多个对象并访问类的属性和成员函数的程序:
科特林
class employee {
// Constructor Declaration of Class
var name: String = ""
var age: Int = 0
var gender: Char = 'M'
var salary: Double = 0.toDouble()
fun insertValues(n: String, a: Int, g: Char, s: Double) {
name = n
age = a
gender = g
salary = s
println("Name of the employee: $name")
println("Age of the employee: $age")
println("Gender: $gender")
println("Salary of the employee: $salary")
}
fun insertName(n: String) {
this.name = n
}
}
fun main(args: Array) {
// creating multiple objects
var obj = employee()
// object 2 of class employee
var obj2 = employee()
//accessing the member function
obj.insertValues("Praveen", 50, 'M', 500000.00)
// accessing the member function
obj2.insertName("Aliena")
// accessing the name property of class
println("Name of the new employee: ${obj2.name}")
}
输出:
Name of the employee: Praveen
Age of the employee: 50
Gender: M
Salary of the employee: 500000.0
Name of the new employee: Aliena