KotlinでのJavaのような静的メソッド
2365 ワード
独学でKotlinを始めたばかりで、Javaに似ているので、基礎部分は分かりやすいですが、Kotlinには独自の特性があります.Kotlinでは静的変数やメソッドの言い方がなく,Javaで静的メソッドを使うのに慣れているのは少し慣れていないことが分かった.ネット上で資料を探し始めると、伴生オブジェクトの方法を使って静的をシミュレートすると言われることが多い.その後、公式文書では、この方法が最善の実現方法ではないことが分かった.
まず、Javaでの静的メソッドと静的変数の使用方法を見てみましょう.
使いやすい
では、Kotlinの書き方は?私たちは伴生オブジェクトを使用して見ます.
Kotlinでの使用とJavaでの使用の違いを見てみましょう
Javaでの使用が変わりました
この方法は実際にCompanionが内部クラスに相当するので、次のように別の書き方をします.
Kotlinで使用
ではJavaでは?
これは私たちの使用に合っています.
Kotlinでvar number=1 Javaと定義されているのにgetNumber()を使用していることについて.なぜなら、KotlinはJavaに変換すると自動的にget、setパッケージが行われるからです.
まず、Javaでの静的メソッドと静的変数の使用方法を見てみましょう.
public class StaticDemo {
public static int number = 1;
public static int getId(){
return 2;
}
}
使いやすい
public static void main(String[] args){
int number = StaticDemo.number;
int id = StaticDemo.getId();
}
では、Kotlinの書き方は?私たちは伴生オブジェクトを使用して見ます.
class KtStatic {
var number1 = 10
fun getId1():Int{
return 11
}
//
companion object{
var number2 = 20
fun getId2():Int{
return 21
}
}
}
Kotlinでの使用とJavaでの使用の違いを見てみましょう
//Kotlin
fun main(args: Array) {
// number1
// var number1 =KtStatic.number1
// getId1
// var id1 = KtStatic.getId1()
// Java
var number2 = KtStatic.number2
var id2 = KtStatic.getId2()
}
Javaでの使用が変わりました
public static void main(String[] args) {
// ,
// int number1 = KtStatic.number1;
// ,
// int number2 = KtStatic.number2;
// , ,
int number = KtStatic.Companion.getNumber2();
int id = KtStatic.Companion.getId2();
}
この方法は実際にCompanionが内部クラスに相当するので、次のように別の書き方をします.
package com.yiifox.demo
var number = 1
fun getId():Int{
return 2
}
//
class Kt2Static
Kotlinで使用
package com.yiifox.demo.test
import com.yiifox.demo.KtStatic
import com.yiifox.demo.getId
import com.yiifox.demo.number
fun main(args: Array) {
// ,
var number2 = number
var id = getId()
}
ではJavaでは?
public static void main(String[] args) {
// , Kt2Static, Kt
int number = Kt2StaticKt.getNumber();
int id = Kt2StaticKt.getId();
}
これは私たちの使用に合っています.
Kotlinでvar number=1 Javaと定義されているのにgetNumber()を使用していることについて.なぜなら、KotlinはJavaに変換すると自動的にget、setパッケージが行われるからです.