このサイトではKotlinの基本的文法を33個定義して練習問題を作成しています。
このページではレベル2の11個の基本的文法について、その言葉の意味や使用例を紹介します。
【レベル1のKotlinの基本的文法】
コメントの書き方、変数と定数、基本データ型、算術演算と論理演算、入力と出力、import文、配列、分岐処理(if、if~else、when)、繰り返し処理(for、while、do~while)、Null安全、スマートキャスト
【レベル2のKotlinの基本的文法】
1.関数の定義と呼び出し
2.関数の戻り値
3.関数のオーバーロード
4.ラベルとジャンプ
5.例外処理
6.クラスの定義と使用
7.インスタンス
8.コンストラクタ
9.プロパティ
10.クラスの継承
11.クラスの拡張
【レベル3のKotlinの基本的文法】
コレクションの基礎、リストコレクション(MutableList、ArrayList)、セットコレクション(HashSet、MutableSet、TreeSet)、マップコレクション(HashMap、MutableMap、TreeMap)
【レベル4のKotlinの基本的文法】
メンバ関数、ゲッターとセッター、カプセル化、クラスメンバ、抽象クラス、インターフェース、データクラス
この用語集を作成するにあたりAIを活用しています。
問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。またKotlinの公式サイトの情報も並行して活用しましょう。
関数の定義と呼び出し
Kotlinの「関数の定義と呼び出し」とは何か、以下に紹介します。
「関数の定義と呼び出し」とは
Kotlinでは、関数は特定のタスクを実行するための再利用可能なコードのブロックです。
関数の定義と呼び出しは、プログラムを整理し、再利用性を高めるための重要な要素です。関数を定義するには、fun
キーワードを使用します。
fun 関数名(引数: データ型): 戻り値のデータ型 { // 関数の本体 return 戻り値 }
「関数の定義と呼び出し」の使用例とその解説
以下に、関数の定義と呼び出しの具体的な例を示します。
fun main() { // greet関数を呼び出す val message = greet("Alice") println(message) // 出力: Hello, Alice! // addNumbers関数を呼び出す val sum = addNumbers(10, 20) println("Sum: $sum") // 出力: Sum: 30 // printGreeting関数を呼び出す printGreeting() } // 文字列を返すgreet関数 fun greet(name: String): String { return "Hello, $name!" } // 整数の和を計算するaddNumbers関数 fun addNumbers(a: Int, b: Int): Int { return a + b } // 挨拶メッセージを表示するprintGreeting関数 fun printGreeting() { println("Welcome to Kotlin programming!") }
main
関数: Kotlinプログラムのエントリーポイントです。main
関数内で他の関数を呼び出しています。greet
関数: 名前を引数として受け取り、挨拶のメッセージを返す関数です。greet("Alice")
の呼び出しによって、”Hello, Alice!”が返され、message
変数に格納されます。addNumbers
関数: 2つの整数を引数として受け取り、その和を返す関数です。addNumbers(10, 20)
の呼び出しによって、30が返され、sum
変数に格納されます。printGreeting
関数: 引数を取らずに挨拶メッセージを表示する関数です。printGreeting()
の呼び出しによって、”Welcome to Kotlin programming!”がコンソールに表示されます。
関数の戻り値
「関数の戻り値」とは
Kotlinの関数は、実行後に結果を返すことができ、この返される結果のことを「戻り値」と呼びます。
関数の戻り値は関数の定義時に指定され、呼び出し元で利用することができます。関数の戻り値を指定することで、関数の結果を再利用したり、他の関数に渡したりすることが容易になります。
fun 関数名(引数: データ型): 戻り値のデータ型 { // 関数の本体 return 戻り値 }
戻り値のデータ型は、関数名の後にコロンとともに指定します。関数内でreturn
キーワードを使って値を返します。
2. 「関数の戻り値」の使用例とその解説
以下に、関数の戻り値の具体的な使用例を示します。
fun main() { // add関数を呼び出して、戻り値をsumに格納 val sum = add(10, 20) println("Sum: $sum") // 出力: Sum: 30 // getMessage関数を呼び出して、戻り値をmessageに格納 val message = getMessage() println(message) // 出力: Hello, Kotlin! // max関数を呼び出して、戻り値をmaxValueに格納 val maxValue = max(5, 8) println("Max value: $maxValue") // 出力: Max value: 8 } // 整数の和を計算するadd関数 fun add(a: Int, b: Int): Int { return a + b } // メッセージを返すgetMessage関数 fun getMessage(): String { return "Hello, Kotlin!" } // 2つの整数のうち、最大値を返すmax関数 fun max(a: Int, b: Int): Int { return if (a > b) a else b }
main
関数: Kotlinプログラムのエントリーポイントです。main
関数内で他の関数を呼び出し、その戻り値を利用しています。add
関数: 2つの整数を引数として受け取り、その和を返す関数です。戻り値の型はInt
で、return
キーワードを使って和を返しています。getMessage
関数: 引数を取らず、”Hello, Kotlin!”という文字列を返す関数です。戻り値の型はString
です。max
関数: 2つの整数を引数として受け取り、そのうちの最大値を返す関数です。if
式を使って条件に応じて戻り値を選択しています。
関数のオーバーロード
Kotlinの「関数のオーバーロード」とは何か、以下に紹介します。
「関数のオーバーロード」とは
Kotlinでは、同じ名前の関数を複数定義することができますが、それぞれの関数は異なる引数リスト(引数の数や型)を持つ必要があります。
このような同じ名前の関数を複数持つことを「関数のオーバーロード」と呼びます。関数のオーバーロードは、同じ機能を異なる方法で実行する場合に便利です。たとえば、異なる型のデータを処理する関数や、異なる数の引数を取る関数を定義できます。
関数のオーバーロードのポイント:
- 関数名は同じであること
- 引数リストが異なること(引数の数、順序、型が異なる)
「関数のオーバーロード」の使用例とその解説
以下に、関数のオーバーロードの具体的な使用例を示します。
fun main() { // display関数を整数で呼び出す display(42) // display関数を文字列で呼び出す display("Hello, Kotlin!") // add関数を2つの整数で呼び出す val sum1 = add(10, 20) println("Sum of two integers: $sum1") // 出力: Sum of two integers: 30 // add関数を3つの整数で呼び出す val sum2 = add(10, 20, 30) println("Sum of three integers: $sum2") // 出力: Sum of three integers: 60 } // 整数を表示するdisplay関数 fun display(value: Int) { println("Integer value: $value") } // 文字列を表示するdisplay関数 fun display(value: String) { println("String value: $value") } // 2つの整数を足すadd関数 fun add(a: Int, b: Int): Int { return a + b } // 3つの整数を足すadd関数 fun add(a: Int, b: Int, c: Int): Int { return a + b + c }
main
関数: Kotlinプログラムのエントリーポイントです。main
関数内でオーバーロードされた関数を呼び出しています。display
関数: 整数と文字列を表示するために2つのオーバーロードされたdisplay
関数が定義されています。それぞれの関数は異なる引数型を持ち、呼び出し時の引数に応じて適切な関数が実行されます。add
関数: 2つの整数を足す関数と、3つの整数を足す関数の2つがオーバーロードされています。呼び出し時の引数の数に応じて、適切なadd
関数が実行されます。
ラベルとジャンプ
Kotlinの「ラベルとジャンプ」とは何か、以下に紹介します。
「ラベルとジャンプ」とは
Kotlinには、特定のコードブロックに名前(ラベル)を付け、それにジャンプする機能があります。これはループの中断やスキップ、あるいは複数のループから一気に抜け出す場合に便利です。
ラベルは、通常@
記号を用いて定義され、break
やcontinue
と組み合わせて使用されます。
ラベルの定義:
labelName@ for (item in items) { // 処理 }
ラベルを使用したジャンプ:
labelName@ for (item in items) { for (value in values) { if (condition) { break@labelName // labelNameラベルのついたループを終了する } } }
「ラベルとジャンプ」の使用例とその解説
以下に、ラベルとジャンプを使用した具体的な例を示します。
fun main() { val matrix = arrayOf( intArrayOf(1, 2, 3), intArrayOf(4, 5, 6), intArrayOf(7, 8, 9) ) // 5を見つけるために二重ループをラベルで制御 search@ for (row in matrix) { for (element in row) { if (element == 5) { println("Found 5!") break@search // searchラベルのついたループを終了する } } } println("Search completed.") // continueを使って特定の条件をスキップ skipLabel@ for (i in 1..5) { for (j in 1..5) { if (j == 3) { continue@skipLabel // skipLabelラベルのついたループの次のイテレーションに進む } println("i = $i, j = $j") } } }
main
関数: Kotlinプログラムのエントリーポイントです。この中でラベルとジャンプの機能を使用しています。search@
ラベル: 二重ループで数値5を検索しています。内側のループで5を見つけたとき、break@search
を使用して外側のループを終了します。skipLabel@
ラベル: 二重ループ内でcontinue@skipLabel
を使用し、j
が3のときに内側のループの処理をスキップし、外側のループの次のイテレーションに進みます。
例外処理
Kotlinの「例外処理」とは何か、以下に紹介します。
「例外処理」とは
Kotlinの「例外処理」は、プログラムの実行中に発生する予期しないエラーや異常事態を処理するための機能です。例外処理を使用することで、プログラムがクラッシュするのを防ぎ、エラーが発生したときに適切な対応を行うことができます。
例外処理は、try
、catch
、finally
ブロックを使って実現されます。
例外処理の構文:
try { // 例外が発生する可能性があるコード } catch (e: ExceptionType) { // 例外が発生したときの処理 } finally { // 例外の発生に関係なく必ず実行される処理 }
try
ブロック: エラーが発生する可能性があるコードを囲む。catch
ブロック: 例外が発生したときの処理を定義。finally
ブロック: 例外の有無に関係なく必ず実行されるコードを定義(省略可能)。
「例外処理」の使用例とその解説
以下に、例外処理の具体的な使用例を示します。
fun main() { val numbers = listOf(1, 2, 3, 4, 5) try { // 0で割ることで例外が発生する val result = divide(10, 0) println("Result: $result") } catch (e: ArithmeticException) { // 例外が発生したときの処理 println("Caught an exception: ${e.message}") } finally { // 必ず実行される処理 println("Execution completed.") } try { // リストの範囲外アクセスで例外が発生する val number = numbers[10] println("Number: $number") } catch (e: IndexOutOfBoundsException) { // 例外が発生したときの処理 println("Caught an exception: ${e.message}") } finally { // 必ず実行される処理 println("List access attempt completed.") } } // 2つの整数の割り算を行う関数 fun divide(a: Int, b: Int): Int { return a / b }
main
関数: Kotlinプログラムのエントリーポイントで、例外処理を含むコードが実行されます。try
ブロック:divide
関数を呼び出し、0で割ることでArithmeticException
を発生させます。また、リストの範囲外アクセスを行い、IndexOutOfBoundsException
を発生させます。catch
ブロック: 例外が発生したときの処理を行います。具体的には、例外メッセージを出力します。finally
ブロック: 例外の有無に関わらず必ず実行される処理を定義しています。ここでは、処理が完了したことを示すメッセージを出力します。
この例では、ArithmeticException
とIndexOutOfBoundsException
の2種類の例外を処理しています。例外処理を適切に行うことで、プログラムの予期しない停止を防ぎ、ユーザーに適切なメッセージを提供することができます。
クラスの定義と使用
Kotlinの「クラスの定義と使用」とは何か、以下に紹介します。
「クラスの定義と使用」とは
Kotlinにおけるクラスは、オブジェクト指向プログラミングの基礎となる概念で、データとその操作を一つにまとめたものです。クラスはプロパティ(データ)とメソッド(関数)を持つことができ、これらを使用してオブジェクトを作成し操作します。
クラスの定義はclass
キーワードを使用し、クラス名、プロパティ、およびメソッドを指定します。クラスは実体化(インスタンス化)することで、オブジェクトとして使用できます。
クラスの基本構文:
class クラス名(コンストラクタ引数) { // プロパティの定義 var プロパティ名: 型 = 初期値 // メソッドの定義 fun メソッド名(引数: 型): 戻り値の型 { // メソッドの本体 } }
「クラスの定義と使用」の使用例とその解説
以下に、クラスの定義と使用の具体的な例を示します。
fun main() { // Personクラスのインスタンスを作成 val person1 = Person("Alice", 30) val person2 = Person("Bob", 25) // greetメソッドを呼び出し person1.greet() // 出力: Hello, my name is Alice and I am 30 years old. person2.greet() // 出力: Hello, my name is Bob and I am 25 years old. } // Personクラスの定義 class Person(val name: String, var age: Int) { // greetメソッドの定義 fun greet() { println("Hello, my name is $name and I am $age years old.") } }
main
関数: プログラムのエントリーポイントです。この中でPerson
クラスのインスタンスを作成し、メソッドを呼び出しています。Person
クラス: 名前と年齢を持つクラスです。name
は読み取り専用のval
プロパティで、age
は変更可能なvar
プロパティとして定義されています。greet
メソッド:Person
クラスのメソッドで、名前と年齢を表示する機能を持っています。println
関数を使用して、プロパティの値を文字列として出力します。- クラスのインスタンス化:
Person
クラスのインスタンスperson1
とperson2
をそれぞれ作成し、異なる名前と年齢を設定しています。 - メソッド呼び出し:
person1
とperson2
のgreet
メソッドを呼び出して、それぞれの挨拶メッセージを表示します。
このように、Kotlinではクラスを定義してオブジェクトを作成し、プロパティやメソッドを通じてデータを操作することができます。クラスを使用することで、コードの再利用性と保守性が向上します。
インスタンス
Kotlinの「インスタンス」とは何か、以下に紹介します。
「インスタンス」とは
Kotlinにおける「インスタンス」とは、クラスから生成された具体的なオブジェクトのことを指します。クラスはオブジェクトの設計図であり、インスタンスはその設計図に基づいて作られた実体です。クラスをインスタンス化することで、クラスのプロパティやメソッドにアクセスできるようになります。
インスタンスを作成するには、new
キーワードを使用せずに、クラス名を関数のように呼び出します。コンストラクタを使って初期化を行い、インスタンスを生成します。
インスタンスの作成の基本構文:
val オブジェクト名 = クラス名(コンストラクタ引数)
「インスタンス」の使用例とその解説
以下に、インスタンスの具体的な使用例を示します。
fun main() { // Personクラスのインスタンスを作成 val person1 = Person("Alice", 30) val person2 = Person("Bob", 25) // インスタンスのプロパティにアクセス println("${person1.name} is ${person1.age} years old.") // 出力: Alice is 30 years old. println("${person2.name} is ${person2.age} years old.") // 出力: Bob is 25 years old. // インスタンスのメソッドを呼び出し person1.greet() // 出力: Hello, my name is Alice and I am 30 years old. person2.greet() // 出力: Hello, my name is Bob and I am 25 years old. } // Personクラスの定義 class Person(val name: String, var age: Int) { // greetメソッドの定義 fun greet() { println("Hello, my name is $name and I am $age years old.") } }
main
関数: プログラムのエントリーポイントです。この中でPerson
クラスのインスタンスを作成し、プロパティやメソッドを使用しています。Person
クラス: 名前と年齢を持つクラスです。name
は読み取り専用のval
プロパティで、age
は変更可能なvar
プロパティとして定義されています。- インスタンスの作成:
Person
クラスのインスタンスperson1
とperson2
をそれぞれ作成し、異なる名前と年齢を設定しています。 - プロパティへのアクセス:
person1
とperson2
のname
およびage
プロパティにアクセスし、値を出力しています。 - メソッド呼び出し:
person1
とperson2
のgreet
メソッドを呼び出して、それぞれの挨拶メッセージを表示します。
このように、Kotlinではクラスをインスタンス化することで、そのプロパティやメソッドを利用することができます。インスタンスを使用することで、オブジェクト指向プログラミングの利点を活かし、コードの再利用性と保守性を向上させることができます。
コンストラクタ
Kotlinの「コンストラクタ」とは何か、以下に紹介します。
1「コンストラクタ」とは
Kotlinにおける「コンストラクタ」は、クラスのインスタンスを生成する際に初期化を行うための特別な関数です。コンストラクタは、インスタンスが生成されるときに自動的に呼び出され、オブジェクトの初期状態を設定します。
Kotlinでは、主コンストラクタ(primary constructor)と副コンストラクタ(secondary constructor)の2種類のコンストラクタを定義することができます。
主コンストラクタ: 主コンストラクタはクラス宣言の一部として定義され、クラス名の直後にconstructor
キーワードを使って記述します。プロパティを直接初期化することができます。
class Person(val name: String, var age: Int)
副コンストラクタ: 副コンストラクタはconstructor
キーワードを使ってクラス内部で定義されます。複数の副コンストラクタを持つことができ、追加の初期化処理が必要な場合に使用されます。
class Person { var name: String var age: Int constructor(name: String, age: Int) { this.name = name this.age = age } }
「コンストラクタ」の使用例とその解説
以下に、主コンストラクタと副コンストラクタを使用した具体的な例を示します。
fun main() { // 主コンストラクタを使ってインスタンスを作成 val person1 = Person("Alice", 30) person1.greet() // 出力: Hello, my name is Alice and I am 30 years old. // 副コンストラクタを使ってインスタンスを作成 val person2 = Person("Bob") person2.greet() // 出力: Hello, my name is Bob and I am 0 years old. } // 主コンストラクタを持つクラス class Person(val name: String, var age: Int) { // greetメソッドの定義 fun greet() { println("Hello, my name is $name and I am $age years old.") } // 副コンストラクタの定義 constructor(name: String) : this(name, 0) { println("Secondary constructor called") } }
main
関数: プログラムのエントリーポイントです。この中でPerson
クラスのインスタンスを作成し、プロパティやメソッドを使用しています。Person
クラス: 主コンストラクタと副コンストラクタを持つクラスです。- 主コンストラクタ: クラス宣言の一部として定義され、
name
とage
の2つのプロパティを初期化します。 - 副コンストラクタ: クラス内部に定義され、名前のみを受け取り、年齢を0に設定する初期化を行います。
this(name, 0)
を使って主コンストラクタを呼び出しています。 - インスタンスの作成:
Person
クラスのインスタンスperson1
とperson2
をそれぞれ作成し、異なるコンストラクタを使用しています。 - メソッド呼び出し:
person1
とperson2
のgreet
メソッドを呼び出して、それぞれの挨拶メッセージを表示します。
このように、Kotlinではコンストラクタを使用してクラスのインスタンスを初期化し、オブジェクトの初期状態を設定します。主コンストラクタと副コンストラクタを使い分けることで、柔軟な初期化処理が可能になります。
プロパティ
Kotlinの「プロパティ」とは何か、以下に紹介します。
「プロパティ」とは
Kotlinの「プロパティ」は、クラスやオブジェクトに関連付けられた変数で、データを保持し、必要に応じて操作するために使用されます。プロパティは、Javaのフィールドとゲッター/セッターに相当しますが、Kotlinではより簡潔かつ強力に定義できます。
プロパティはvar
(可変)またはval
(不変)として宣言され、必要に応じてカスタムゲッターやセッターを定義することができます。
プロパティの基本構文:
class クラス名 { var プロパティ名: 型 = 初期値 val プロパティ名: 型 = 初期値 }
「プロパティ」の使用例とその解説
以下に、プロパティの具体的な使用例を示します。
fun main() { // Personクラスのインスタンスを作成 val person = Person() // プロパティにアクセスして値を出力 println("Initial Name: ${person.name}") // 出力: Initial Name: Unknown println("ID: ${person.id}") // 出力: ID: 12345 // プロパティの値を変更 person.name = "Alice" println("Updated Name: ${person.name}") // 出力: Updated Name: Alice } // Personクラスの定義 class Person { // varで宣言された可変プロパティ var name: String = "Unknown" // valで宣言された不変プロパティ val id: Int = 12345 }
main
関数: プログラムのエントリーポイントです。この中でPerson
クラスのインスタンスを作成し、プロパティにアクセスしています。Person
クラス:name
とid
という2つのプロパティを持つクラスです。name
プロパティはvar
として宣言されており、後で変更可能です。id
プロパティはval
として宣言されており、一度設定されたら変更できません。
- インスタンスの作成:
Person
クラスのインスタンスperson
を作成し、初期状態のプロパティの値を出力しています。 - プロパティの変更:
person
インスタンスのname
プロパティの値を変更し、更新後の値を出力しています。
このように、Kotlinではプロパティを使用してクラス内のデータを管理し、簡単にアクセスや変更ができます。可変プロパティと不変プロパティを使い分けることで、データの整合性を保ちながら柔軟にクラスを設計することが可能です。
クラスの継承
「クラスの継承」とは
Kotlinの「クラスの継承」は、既存のクラス(親クラスまたはスーパークラス)の特性や機能を、新しいクラス(子クラスまたはサブクラス)が引き継ぐことを指します。これにより、コードの再利用性が向上し、クラス間の関係を効率的に構築できます。
Kotlinでは、デフォルトでクラスは継承できないように設定されており、継承を許可するには親クラスをopen
として宣言する必要があります。
クラスの継承の基本構文:
open class 親クラス名 { // プロパティやメソッドの定義 } class 子クラス名 : 親クラス名() { // 親クラスから継承したプロパティやメソッドの使用 }
「クラスの継承」の使用例とその解説
以下に、クラスの継承の具体的な使用例を示します。
fun main() { // Dogクラスのインスタンスを作成 val dog = Dog("Buddy") dog.makeSound() // 出力: Bark dog.fetch() // 出力: Buddy is fetching! // Catクラスのインスタンスを作成 val cat = Cat("Whiskers") cat.makeSound() // 出力: Meow cat.scratch() // 出力: Whiskers is scratching! } // 親クラスの定義 open class Animal(val name: String) { open fun makeSound() { println("Some generic animal sound") } } // 子クラスの定義 class Dog(name: String) : Animal(name) { override fun makeSound() { println("Bark") } fun fetch() { println("$name is fetching!") } } // もう一つの子クラスの定義 class Cat(name: String) : Animal(name) { override fun makeSound() { println("Meow") } fun scratch() { println("$name is scratching!") } }
main
関数: プログラムのエントリーポイントです。この中でDog
クラスとCat
クラスのインスタンスを作成し、メソッドを呼び出しています。Animal
クラス:name
というプロパティとmakeSound
というメソッドを持つ親クラスです。open
キーワードを使用して継承可能にしています。Dog
クラス:Animal
クラスを継承し、makeSound
メソッドをオーバーライドしています。また、新しいメソッドfetch
を定義しています。Cat
クラス:Animal
クラスを継承し、makeSound
メソッドをオーバーライドしています。また、新しいメソッドscratch
を定義しています。- インスタンスの作成:
Dog
クラスのインスタンスdog
と、Cat
クラスのインスタンスcat
をそれぞれ作成し、プロパティやメソッドにアクセスしています。 - メソッドの呼び出し:
dog
のmakeSound
とfetch
、cat
のmakeSound
とscratch
メソッドを呼び出して、それぞれの出力を確認しています。
このように、Kotlinのクラスの継承を使用することで、共通の機能を親クラスに持たせ、特定の機能を子クラスで実装できます。これにより、コードの再利用性が高まり、システムの構造をより理解しやすくなります。
クラスの拡張
Kotlinの「クラスの拡張」とは何か、以下に紹介します。
「クラスの拡張」とは
Kotlinの「クラスの拡張」(Extension Functions)とは、既存のクラスに新しいメソッドやプロパティを追加する機能です。これにより、既存のクラスを変更することなく、追加機能を実装できます。拡張関数や拡張プロパティを使用すると、コードの可読性と再利用性が向上します。
拡張関数は、クラス名.メソッド名
という形式で定義します。拡張プロパティも同様に定義できますが、バックフィールドを持つことはできません。
拡張関数の基本構文:
fun クラス名.メソッド名(引数): 戻り値の型 { // 関数の本体 }
「クラスの拡張」の使用例とその解説
以下に、クラスの拡張の具体的な使用例を示します。
fun main() { val str = "radar" println("$str is palindrome: ${str.isPalindrome()}") // 出力: radar is palindrome: true val number = 123 println("$number doubled is ${number.double()}") // 出力: 123 doubled is 246 } // Stringクラスを拡張してisPalindromeメソッドを追加 fun String.isPalindrome(): Boolean { // 拡張関数内でthisを使って元のオブジェクトにアクセス return this == this.reversed() } // Intクラスを拡張してdoubleメソッドを追加 fun Int.double(): Int { // thisは拡張関数が呼び出されたオブジェクトを指す return this * 2 }
main
関数: プログラムのエントリーポイントです。この中で拡張関数を使用しています。isPalindrome
拡張関数:String
クラスに追加されたメソッドで、文字列が回文かどうかをチェックします。this
キーワードを使用して元の文字列オブジェクトにアクセスしています。double
拡張関数:Int
クラスに追加されたメソッドで、整数を2倍にします。this
キーワードを使用して元の整数オブジェクトにアクセスしています。- 拡張関数の呼び出し:
str
オブジェクトでisPalindrome
メソッドを呼び出し、number
オブジェクトでdouble
メソッドを呼び出しています。
このように、Kotlinのクラスの拡張を使用することで、既存のクラスに新しい機能を追加し、コードの可読性と再利用性を高めることができます。拡張関数を適切に使用することで、クラスの再定義や継承を避け、効率的に機能を追加することが可能です。
<<用語集1 | 問題集Top | 用語集3>> |
この記事への意見・コメント
この用語集を作成するにあたりAIを活用しています。
問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。またKotlinの公式サイトの情報も並行して活用しましょう。