しばらくKotlinを使っていたのですが、振り返ってみるとこの辺りはメモを取っていなかったので、体系的に記録しているだけです。
ベースオーバー
- Kotlin の基礎入門 - 変数、関数 (メソッド)、オブジェクト、継承、インターフェース
- Kotlin の基礎入門 - 静的変数、定数、静的関数、メソッド
- Kotlin の実用的な基礎 - クリック イベント、アクティビティ ジャンプ、値の受け渡しの設定
- Kotlin の戦闘の基本 - アクティビティ、フラグメント転送パラメーター
自语:Kotlin语法糖真是秀儿,话说,并不是Java不如Kotlin,而是Google在推属于android自己的语言
この記事では主に、いくつかのKotlin
基本的な.快速从Java转战到Kotlin
簡単でわかりやすくするために、综合Java、Kt的不同使用
それらをまとめて記録します. 興味がある場合は、Google の Kotlin ドキュメントにアクセスして学習することもできます~
変数を宣言するには?
ジャワ
String data = "宋老三";
コトリン
在Kotlin声明变量时,通常有俩种方式
var
割り当てを変更できますval
初期化割り当てのみをサポートします。Javafinal
キーワードを参照してください
Kotlin レギュラー
var dataVar: String = "宋老三"
val dataVal: String = "宋老三"
Kotlin の簡易バージョン (Kt 自带类型推断
機能、割り当てられたデータに基づいて変数の型を推測できます)
var dataVar = "宋老三"
val dataVal = "宋老三"
メソッドと関数を宣言する方法は?
函数又称为方法,是具有特定功能的一段独立程序。
Java中经常将函数说成方法,在Kotlin中称为函数更多一些
関数の主な用途をfun函数
宣言していますが、一般的には次のとおりです。函数组成结构
函数声明 函数名称([参数名称:参数类型,参数名称:参数类型]):返回值类型{
执行语句
…
return 返回值
}
- 関数宣言: Kotlin の関数宣言では、キーワードを使用します
fun
。 - 関数名:
每一个函数都有函数名称
、関数を呼び出すときに使用すると便利です。 - パラメータ タイプ: 関数を呼び出すときに制限するために使用されます
传入参数的数据类型
。 - パラメータ名: は であり
变量
、 に使用されます接收调用函数时传入的数据
。 - 戻り値の型: for
限定函数返回值的数据类型
. - 戻り値: でした
return语句返回的值,该值会返回给调用者
。
パラメータなし 戻り値なし
ジャワ
public void test() {
}
コトリン
fun test() {
println("这是一个无参无返回值的函数")
}
返回 Unit类型,可不写
fun test(): Unit {
println("这是一个无参无返回值的函数")
}
パラメータなしの戻り値
コトリン
fun test(): String {
return " 这是一个无参有返回值的函数"
}
パラメータあり、戻り値なし
ジャワ
public void test(int num1) {
}
コトリン
fun test(num1: Int) {
println("这是一个无参无返回值的函数")
}
パラメータと戻り値を持つ
ジャワ
public int test(int num1, int num2) {
return num1 + num2;
}
コトリン
注意:档方法需要return返回值时,在方法后声明返回类型
fun test(num1: Int, num2: Int): Int {
return num1 + num2
}
単一式関数
シンタックス シュガー - 戻り値が 1 行のみの場合に直接使用できます= 返回
fun test(num1: Int, num2: Int): Int = num1 + num2
オブジェクトを作成するには?
ジャワ
クラスの作成(setメソッド、getメソッド、構築メソッド含む)
public class Dream {
public String what;
public String time;
public Dream() {
super();
}
public Dream(String what, String time) {
this.what = what;
this.time = time;
}
public String getWhat() {
return what;
}
public void setWhat(String what) {
this.what = what;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
オブジェクトを作成
Dream info = new Dream("Life","2022");
コトリン
クラスを作成する( 包含set方法、get方法、有参构造方法
)
open class Dream {
//父类无参的次构造器
constructor() {
println("无参构造器")
}
//父类无参的次构造器
constructor(what: String, time: String) {
println("无参构造器")
}
}
簡略化された記述ですが、引数のない構造はありません
open class Dream(var what: String, var time: String) {
}
オブジェクトを作成
var dream: Dream = Dream("Life", "2022")
//类型推导
var dream = Dream("Life","2022")
どのようにクラス継承?
ジャワ
public class Son extends Dream{
}
コトリン
class Son : Dream(){
}
インターフェイスを実装するには?
ジャワ
インターフェイスを作成する
public interface DreamListener {
public void gogo();
}
インターフェイスの実装
实现方式 → implements +接口
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity implements DreamListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void gogo() {
}
}
コトリン
インターフェイスを作成する
interface DreamListener {
fun gogo()
}
インターフェイスの実装
实现方式 → :+接口
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity(), DreamListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
override fun gogo() {
}
}