「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中にロジックを記述したいときだけ追加する。省略しても値は設定取得できる。