2017-05-31 6 views
1

公式ドキュメントから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 
    } 
} 

は、私は今、私は

val sum = Sum(1,2) 
Log.d("Sum", sum.add()) 

私はSumクラスでこのエラーを取得していますように、このクラスのオブジェクトを作成したい、このクラスを持っています

オンb: int;ライン0内

+1

読むhttps://kotlinlang.org/docs/reference/basic-syntax.html –

答えて

3

あなたのクラスに不要なコードを書いています。

constructorのショートフォームが1つしかない場合は、それを書きます。

クラスにプロパティがある場合は、valまたはvarを使用してconstructorに定義できます。

は、次のようにそれを使用します。

class Sum (var a: Int,var b: Int){ 

    fun add(): Int { 
     return a + b 
    } 
} 

DoがKotlinBasic Syntaxをお読みください。

4
var a: Int, b: Int; 

Kotlinでは、1行に複数の宣言を入れることはできません。あなたはのために行く必要があります:

代わりに。 Kotlinの人々は、単に "int a、b、.."のC/javaの練習が、彼らがではないことをKotlinでサポートしてくれるものであることを発見しました。

+0

変数が初期化されなければなりません。このステートメントはコンパイル時にエラーが発生します。 – chandil03

+0

IDEにコードを入れてみてください。 'Property is initialised'というコンパイルエラーを出します。 – chandil03

+0

私は最新のkotlin 1.1.2-4でAndroid Studio 3.0を使用していますが、上記のコンパイル時エラーが発生します。 – chandil03

1

次のコードは、以下のメインを使用してコードをテストすることができ

class Sum (var a: Int,var b: Int){ 

    fun add(): Int= a + b //you can return the results directly. 
} 

あなたのクラスに変数を割り当てて操作する方法を示します。

fun main(args: Array<String>) { 
    var s= Sum(1,2) 

    print(s.add()) 
} 
4

あなたは、単に二行で変数を宣言解決されるだろう持っているエラー:しかし

var a: Int 
var b: Int 

、あなただけの単一のコンストラクタを持つようにしたい場合は(コンストラクタでそれらの変数を統合するための推奨される方法引数を指定して):

class Sum(var a: Int, var b: Int) { 
    fun add(): Int = a + b 
} 
関連する問題