N S*_*rma 6 java android kotlin
我正在Kotlin从官方文档中学习,我正在尝试创建一个类来进行算术运算.
class Sum {
var a: Int, b: Int;
constructor(a: Int, b: Int) {
this.a = a
this.b = b
}
fun add(): Int {
return a + b
}
}
Run Code Online (Sandbox Code Playgroud)
我有这个类,现在我想创建这个类的对象
val sum = Sum(1,2)
Log.d("Sum", sum.add())
Run Code Online (Sandbox Code Playgroud)
我在Sum课堂上收到这个错误:
属性getter或setter预期
在线b: int;内var a: Int, b: Int;
var a: Int, b: Int;
Run Code Online (Sandbox Code Playgroud)
Kotlin不允许在一行中有多个声明.你必须去:
var a: Int
var b: Int
Run Code Online (Sandbox Code Playgroud)
代替.Kotlin人员简单地发现C/java实践中的"int a,b,.."是他们希望在Kotlin中不支持的东西.
您正在课堂上编写不必要的代码。
constructor如果只有一个,则写一个简短的形式。
如果类中有属性,则可以constructor使用val或定义它们var。
如下使用它:
class Sum (var a: Int,var b: Int){
fun add(): Int {
return a + b
}
}
Run Code Online (Sandbox Code Playgroud)
请务必阅读基本语法的Kotlin。
您只需将变量声明为两行即可解决错误:
var a: Int
var b: Int
Run Code Online (Sandbox Code Playgroud)
但是,建议的方法是将这些变量集成到构造函数中(如果您只想使用带参数的单个构造函数):
class Sum(var a: Int, var b: Int) {
fun add(): Int = a + b
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10924 次 |
| 最近记录: |