update

Java、Kotlin比較、置き換え基礎

#Android
writtdden by 上様

こんにちは
Androidエンジニア見習い 上様です。
11月にはいり先月からは想像がつかない冬を連想させる寒さが続いております。

そんな中見習いの僕は、前回に引き続きKotlinの学習を始めました!!
Android Javaを学んでいたこともあり、事前準備としてはバッチリだと思いたい。笑
前回はKotlin初心者におすすめの教材を紹介いたしました。

学習教材

Android developer(公式)

プログラマー向け Kotlin ブートキャンプ

今回は実際どのようなコードの置き換えができるかを実際のコードを交えてご紹介いたします!!

互換性について

まずはじめにJava言語とKotlinには、互換性があるのかという疑問についてお答えいたします。
A. KotlinにはJavaとの互換性があります。
KotlinのコードとJavaのコードとを併存させることが可能です。
例えば、Javaのコードがあれば、それを変換してKotlinのコードとして利用することができます。 Javaで作成したプログラムを途中からKotlinで記述するといったこともできるのです。

よって上記の内容から、Javaで書かれているコードを書き換えすることも、途中からKotlinで書き加えることも可能ということになります。

KotlinはJavaの上位互換なのか

上記内容を読んだ方なら、KotlinはJavaの上位互換なのかと思う方もいらっしゃるかと思います。
A.上位互換では、 ない。

先ほど言ったように相互運用性はあります。
しかし、言語自体に互換性があるわけではございません。
エンジニア目線からのかきやすや使いやすさは違えど、プログラム言語でどちらが優れているかというのは使用する状況によるもので、絶対的な優劣はありません。

JavaよりKotlinが優れているのは、簡潔にプログラムが書けるので大きなメリットになりえます。
また、Kotlin を開発しているのが Google なので、Android の開発者は安心してKotlin に移行できます。
しかし、Kotlinに比べてJavaの方がエンジニア母数が高く、長く親しまれています。
実際に企業の多くはJavaで書かれているものが多いみたいです。
今回の僕のように、JavaからKotlinへの書き換えが必要になってくる方もいらっしゃると思いますので、導入部分でお力になれればと考えております!

※注意点

1. ベースがJavaであるが、当然書き方が違う
2. JavaからKotlinに書き換えることで採算が取れることは皆無
3. 新しいAPIはまずKotlin向けに提供されるため、Androidの新機能を使い切りたいならKotlinを選ばないと不利になる。

具体的な置き換え内容例

・ クラス定義について

Javaで記載すると以下になります

Java:
public class Person {
    private String name;
    private int age;

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

次にKotlinで記載した場合が以下になります

Kotlin:
class Person(val name: String, val age: Int)

・ メソッド定義について

Javaで記載した場合

Java:
public String greet(String name) {
    return "Hello, " + name + "!";
}

Kotlinで記載した場合

Kotlin:
fun greet(name: String): String {
    return "Hello, $name!"
}

基礎的なものを例として上記に挙げました。
比較してわかるように、Kotlin側はすごく簡潔に書かれていて読みやすいと思います。
書き換えや、コード比較する際に参考にしてください!

最後に

実際にコードを書き込んだり実施しての結果比較などを行えるようにJavaとKotlinの二つを記載いたしました。見習いの僕にはこういった比較をしているサイトがあればわかりやすいと思い、今回作成いたしましたのでぜひ何かの参考になればと思っております!!

分からないことばかりですが、僕も実際に経験して今後も皆様にこういった形で共有できればいいなと考えております!それでは、体調にお気を付けてお過ごしください!!

Favorite