クラスとプロパティ
クラスでデータをモデル化します。
「クラスとプロパティ」はCoddyKit上の無料Android Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAndroid Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Android Academyコースには全4レッスンが含まれています。
クラスとは
クラスとは、オブジェクトを作成するための設計図です。関連するデータと振る舞いを 1 つの型にまとめます。
たとえば、Dog クラスで、すべての犬の名前、年齢、鳴き声を表現できます。
クラスの宣言
class キーワードと名前を使ってクラスを宣言します。クラス名にはPascalCaseを使用します。
空のクラスも有効です。波かっこを省略することさえできます。
class Dog
fun main() {
println("Class declared")
}オブジェクトの作成
オブジェクト(またはインスタンス)とは、クラスから作られた実体です。Kotlin では、関数のようにクラス名を呼び出して作成します。
new キーワードがないことに注目してください。
class Dog
fun main() {
val rex = Dog()
println(rex)
}プロパティ
プロパティとは、クラスに属する変数です。クラス本体の中で val または var を使って宣言します。
変わらない値には val を使い、変更できる値には var を使います。
class Dog {
var name: String = "Rex"
var age: Int = 3
}
fun main() {
val d = Dog()
println(d.name)
}プロパティへのアクセス
プロパティの読み取りや変更にはドット記法を使います: object.property。
nameはvarなので、新しい値を代入できます。
class Dog {
var name: String = "Rex"
}
fun main() {
val d = Dog()
d.name = "Buddy"
println(d.name)
}valとvarのプロパティ
valプロパティは、一度設定すると読み取り専用になります。再代入しようとするとコンパイルエラーになります。
varプロパティは、必要な回数だけ再代入できます。
class Circle {
val pi = 3.14
var radius = 1.0
}
fun main() {
val c = Circle()
c.radius = 5.0
println(c.radius)
}メソッド
クラス内で宣言された関数をメソッドと呼びます。メソッドはクラスのプロパティを直接使用できます。
ここではbarkがnameプロパティを使用しています。
class Dog {
var name: String = "Rex"
fun bark() {
println(name + " says Woof!")
}
}
fun main() {
Dog().bark()
}複数のオブジェクト
各オブジェクトはプロパティの独自のコピーを持ちます。あるオブジェクトを変更しても、別のオブジェクトには影響しません。
ここではaとbがそれぞれ別の名前を保持しています。
class Dog {
var name: String = ""
}
fun main() {
val a = Dog()
val b = Dog()
a.name = "Rex"
b.name = "Max"
println(a.name + " " + b.name)
}プロパティのデフォルト値
すべてのプロパティには値が必要です。宣言時に適切なデフォルト値を設定できます。
これにより、新しいオブジェクトはundefinedではなく、決まった状態で開始します。
class Counter {
var count: Int = 0
fun increment() {
count = count + 1
}
}
fun main() {
val c = Counter()
c.increment()
println(c.count)
}プロパティとメソッドの組み合わせ
クラスは、プロパティとメソッドが連携すると最も便利になります。メソッドはオブジェクト自身のプロパティを読み取り、更新できます。
ここではhaveBirthdayが呼び出されるたびに、ageプロパティを増やしています。
class Dog {
var name: String = "Rex"
var age: Int = 1
fun haveBirthday() {
age = age + 1
}
}
fun main() {
val d = Dog()
d.haveBirthday()
println(d.age)
}クラスで現実のものをモデル化する
クラスを使うと、現実世界の概念をコードでモデル化できます。
- プロパティは、そのものが持っているものを表します。
- メソッドは、そのものができることを表します。
Androidでは、画面、ボタン、ビューモデルはすべてクラスから作られています。
理解度チェック
クラスとプロパティについての理解度を確認しましょう。
まとめ
クラスは設計図であり、オブジェクトはそこから作られたインスタンスであることを学びました。
プロパティはvalまたはvarでデータを保持し、メソッドは振る舞いを追加します。ドット記法を使ってそれらにアクセスできます。次は、コンストラクタを使ってプロパティをきれいに設定します。
よくある質問
「クラスとプロパティ」レッスンは無料ですか?
はい。「クラスとプロパティ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Android Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Android Academyコースには全4レッスンが含まれています。
「クラスとプロパティ」で何を学びますか?
クラスでデータをモデル化します。 ブラウザで直接実行するハンズオンコードでAndroid Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Android Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAndroid Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「クラスとプロパティ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAndroid Academyレッスンでコードを書いて実行できますか?
はい。すべてのAndroid Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 関数を宣言する
- クラスとプロパティ
- コンストラクターとinit
- データクラス