facebook twitter hatena line email

「Android/kotlin/クラス」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==アクセス修飾子== * public, protected, private, internal の4つ * javaはデフォでinternalだが、kotlinはpublicとなる。」)
 
行2: 行2:
 
* public, protected, private, internal の4つ
 
* public, protected, private, internal の4つ
 
* javaはデフォでinternalだが、kotlinはpublicとなる。
 
* javaはデフォでinternalだが、kotlinはpublicとなる。
 +
 +
==クラス呼び出し==
 +
MainActivity.kt
 +
class MainActivity : AppCompatActivity() {
 +
    override fun onCreate(savedInstanceState: Bundle?) {
 +
        super.onCreate(savedInstanceState)
 +
        setContentView(R.layout.activity_main)
 +
        var user = User()
 +
        var name = user.getName() // 型なし
 +
        var name2: String = user.getName() // 型指定もできる
 +
        Log.i("test", "name=" + name)
 +
        var logic = SampleLogic()
 +
        logic.execLogic()
 +
    }
 +
}
 +
User.kt
 +
class User {
 +
    fun getName(): String {
 +
        return "taro"
 +
    }
 +
}
 +
SampleLogic.kt
 +
class SampleLogic {
 +
    fun execLogic() {
 +
        Log.i("test", "SampleLogic exec")
 +
        return
 +
    }
 +
}
 +
戻りの型がない場合はUnit(javaでいうvoid)を指定したことになる。型がない状態で、return "hoge"とかにするとエラーとなる。
 +
 +
==setter/getterについて==
 +
MainActivity.kt
 +
<pre>
 +
var user = User()
 +
user.name = "taro"
 +
Log.i("MainActivity", user.name)
 +
</pre>
 +
User.kt
 +
<pre>
 +
import android.util.Log
 +
class User {
 +
    var name: String = ""
 +
        get() {
 +
            Log.i("User", "get name=" + field)
 +
            return field
 +
        }
 +
        set(value) {
 +
            Log.i("User", "set name=" + value)
 +
            field = value
 +
        }
 +
}
 +
</pre>
 +
get()とset()はfunction中にロジックを記述したいときだけ追加する。省略しても値は設定取得できる。

2020年2月21日 (金) 16:34時点における版

アクセス修飾子

  • public, protected, private, internal の4つ
  • javaはデフォでinternalだが、kotlinはpublicとなる。

クラス呼び出し

MainActivity.kt

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var user = User()
        var name = user.getName() // 型なし
        var name2: String = user.getName() // 型指定もできる
        Log.i("test", "name=" + name)
        var logic = SampleLogic()
        logic.execLogic()
    }
}

User.kt

class User {
    fun getName(): String {
        return "taro"
    }
}

SampleLogic.kt

class SampleLogic {
    fun execLogic() {
        Log.i("test", "SampleLogic exec")
        return
    }
}

戻りの型がない場合はUnit(javaでいうvoid)を指定したことになる。型がない状態で、return "hoge"とかにするとエラーとなる。

setter/getterについて

MainActivity.kt

var user = User()
user.name = "taro"
Log.i("MainActivity", user.name)

User.kt

import android.util.Log
class User {
    var name: String = ""
        get() {
            Log.i("User", "get name=" + field)
            return field
        }
        set(value) {
            Log.i("User", "set name=" + value)
            field = value
        }
}

get()とset()はfunction中にロジックを記述したいときだけ追加する。省略しても値は設定取得できる。