LoginSignup
6
3

More than 5 years have passed since last update.

Kotlinいいとこまとめ①

Posted at

いいとこまとめ

です。リファレンスとかはググればいくらでも出てくるからね。
とりあえず1時間実際書いてみて、他の言語と比べていいなと思ったとこを列挙。
しばらく使って続編も書きます。
あといまいちなとこまとめもそのうち。

*Kotlin導入編はこちら

基本構文

SwiftっぽいからSwiftやってた人は入りやすいのでは。

セミコロン

Swift書いてて、セミコロンつけないのに慣れたから楽。

型推論

やっぱ楽ちんね。

Java
// 変数
private String value = "Hello";

// 定数
private static final String VALUE = "Hello";
Kotlin
// 変数
private var value = "Hello"

// 定数
private val value = "Hello"

インターフェース

Javaと違ってデフォルト実装持てる。素敵。
インターフェースを実装した抽象クラスとかもう書かなくていいんだね!

OnBackPressedListener.java
interface OnBackPressedListener {

    // NG
    boolean onBackPressed() {
    }
}
OnBackPressedListener.kt
interface OnBackPressedListener {

    // OK
    fun onBackPressed(): Boolean {
        return true
    }
}

継承系

Javaと違ってextendsとかimplementsとか書かなくていい。素敵。

HogeFragment.Java
class HogeFragment extends Fragment implements OnBackPressedListener {

}
HogeFragment.kt
class HogeFragment : Fragment(), OnBackPressedListener {

}

openで継承できるメソッドを限定できる。overrideするときに@Overrideアノテーションじゃなくなった。素敵。

Java
public class Hoge {

    public void Hello() {
        Log.d("Hoge", "Hello");
    }
}

public class Fuga extends Hoge {

    @Override
    public void Hello() {
     Log.d("Fuga", "Hello")
    }
}
Kotlin
public class Hoge {

    open fun Hello() {
        Log.d("Hoge", "Hello");
    }

    public fun Hello2() {
        Log.d("Hoge", "Hello2");
    }
}

public class Fuga : Hoge() {

    // OK
    override fun Hello() {
        Log.d("Fuga", "Hello");
    }

    // NG
    override fun Hello2() {
        Log.d("Fuga", "Hello2");
    }
}

プロパティ

もうgetValue()とか書かなくていい!素敵!

Java
public int getValue() {
    return mValue;
}

public void setValue(int value) {
    mValue = value;
}

private int mValue = 0;
Kotlin

public var value: Int
    get() = mValue
    set(value) {
        mValue = value
    }

private var mValue = 0

今日はここらへんで

株式会社Arrvis

6
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3