java类示例:
package com.xq.demo
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
class Test {
public static void main(String[] args) {
Student student = new Student();
student.setName("leo");
student.setAge(18);
System.out.println(student.toString());
System.out.println("name:" + student.getName() +
" age:" + student.getAge());
}
}
kotlin类示例:
将Java类转为kotlin:
package com.xq.demo
class Student1 {
var name: String? = null
var age: Int = 0
constructor() {}
constructor(name: String, age: Int) {
this.name = name
this.age = age
}
override fun toString(): String {
return "Student{" +
"name='" + name + '\''.toString() +
", age=" + age +
'}'.toString()
}
}
internal object Test1 {
@JvmStatic
fun main(args: Array<String>) {
val student = Student1()
student.name = "leo"
student.age = 18
println(student.toString())
println(
"name: ${student.name} age: ${student.age}"
)
}
}
将kotlin类继续简化:
package com.xq.demo
//constructor可省略
class Student2 constructor(var name: String, var age: Int) {
override fun toString(): String {
return "Student{" +
"name='" + name + '\''.toString() +
", age=" + age +
'}'.toString()
}
}
internal object Test2 {
@JvmStatic
fun main(args: Array<String>) {
val student = Student2("leo", 18)
println(student.toString())
student.name = "mark"
student.age = 15
println(student.toString())
println(
"name: ${student.name} age: ${student.age}"
)
}
}
set、get方法
kotlin中set、get方法在变量定义时给出进行限定,也可省略设置默认:
package com.xq.demo
class Student3 {
var name: String = ""
get() = field.toUpperCase() // 将变量赋值后转换为大写
set
var age: Int = 0
get() = field // 后端变量
set(value) {
if (value < 10) { // 如果传入的值小于 10 返回该值
field = value
} else {
field = -1 // 如果传入的值大于等于 10 返回 -1
}
}
constructor() {}
constructor(name: String, age: Int) {
this.name = name
this.age = age
}
override fun toString(): String {
return "Student{" +
"name='" + name + '\''.toString() +
", age=" + age +
'}'.toString()
}
}
internal object Test3 {
@JvmStatic
fun main(args: Array<String>) {
val student = Student3()
student.name = "leo"
student.age = 18
println(student.toString())
println(
"name: ${student.name} age: ${student.age}"
)
}
}