Kotlin(二)、声明变量、函数、类、属性

本文介绍Kotlin语言的基础语法,包括变量声明、字符串模板、函数定义、类与属性的使用,以及自定义属性访问器的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、声明函数、变量、类、枚举、属性

变量

以关键字开始,接变量名,最后可加类型:

    val a = 12
    val a: Int = 1//因为赋值的类型是确定的,所以可以省略类型

如果不加指定的变量类型,编译器会分析初始化表达式值,并将其类型作为变量类型。如果不提供可以赋给这个变量值的信息,编译器就无法推断类型。

val(来自value)——不可变引用。相当于final。
var(来自variable)——可变引用。相当于非final。

默认情况下应尽可能使用val关键字,仅在必须时替换为var

字符串模板,在字符串字面值中可以直接引用变量,使用$

    fun main(args: Array<String>) {
        val name = if (args.isNotEmpty()) args[0] else "Kotlin"
        println("Hello, $name!")
        println("Hello, ${args[0]}")//还可以引入复杂表达式
        println("Hello, ${ if (args.isNotEmpty()) args[0] else "Kotlin"}")//还可以引入更复杂的表达式
    }

若要显示$需要转义

    println("\$name!")//打印结果为$name!
函数
    /**
     * 没有返回任何东西的函数
     */
    fun main() {
        println("Hello,world!")
    }

    /**
     *返回Int
     */
    fun max(a: Int, b: Int): Int {
        return if (a > b) a else b
    }

    /**
     * 上面函数使用表达式函数体
     * 其返回类型也可以去掉
     * 只有!只有表达式函数的返回类型可以省略
     */
    fun max(a: Int, b: Int) = if (a > b) a else b

先看一个简单的JavaBean

public class Person {
    private final String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

而Kotlin中只需

class Person(val name: String)

通常称其为值对象,其中public修饰关键字也消失了,因为Kotlin中默认为public

属性

Java中字段+setter/getter称为属性;Kotlin中属性时头等语言特性,完全代替了字段+setter/getter,在类中声明属性和声明字段一样,使用val、var关键字即可。val只读,var可变。
声明属性:

class Person {
    val name: String
    var isMarried: Boolean
}

使用属性:

val person = Person("Bob", true)
println(person.name)
println(person.isMarried)
person.isMarried=false//将值修改为false,对应Java中person.setMarried(false)
println(person.isMarried)

由于内置了getter,若想即时计算输出结果则需要自定义getter
自定义访问器
定义矩形类,若长等于宽则为正方形

class Rectangle(val height: Int, val width: Int) {
    val isSquare: Boolean
        get() {
            return height == width
        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qi T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值