Menu
CoddyTech

הגדרת מחלקות

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Kotlin של Coddy. שיעור 2 מתוך 57.

מחלקה מתארת סוג של אובייקט: את הנתונים שהוא מכיל ואת הפעולות שהוא יכול לבצע. class Dog { ... } מצהירה על הטיפוס, ו-Dog() יוצרת אובייקט מטיפוס זה, מופע. ב-Kotlin אין מילת מפתח new:

class Dog {
    var name = "Rex"
    var age = 3
}

בתוך main:

val dog = Dog()
println(dog.name)
println(dog.age)

פלט:

Rex
3

המשתנים בתוך מחלקה הם המאפיינים שלה. לכל מופע יש עותק משלו, שאותו קוראים ומשנים באמצעות נקודה:

class Dog {
    var name = "Rex"
}

בתוך main:

val first = Dog()
val second = Dog()
second.name = "Bella"
println(first.name)
println(second.name)

פלט:

Rex
Bella

פונקציה בתוך מחלקה היא מתודה (ב-Kotlin קוראים להן פונקציות חברה). מתודה יכולה לקרוא את המאפיינים של המופע שעליו היא נקראת ולשנות אותם:

class Counter {
    var count = 0

    fun increment() {
        count++
    }

    fun report() = "count is $count"
}

בתוך main:

val clicks = Counter()
clicks.increment()
clicks.increment()
println(clicks.report())

פלט:

count is 2

שמות מחלקות נכתבים ב־UpperCamelCase (BankAccount); מאפיינים ומתודות נכתבים ב־lowerCamelCase (balance, deposit()). קיבוץ הנתונים עם הפונקציות שפועלות עליהם הוא הרעיון המרכזי בתכנות מונחה עצמים: קוד שמשתמש ב־Counter קורא ל־increment() ואינו צריך לדעת איך המנייה נשמרת.

class BankAccount {
    var balance = 0

    fun deposit(amount: Int) {
        balance += amount
    }
}
challenge icon

אתגר

קל

השלימו את המתודה describe() של המחלקה Pet. היא מחזירה משפט אחד שנבנה מהמאפיינים: חיית מחמד בשם Rex, ממין dog, שגילה 3, מחזירה את Rex is a 3 year old dog.

הקוד שסופק יוצר Pet, מגדיר את המאפיינים שלה מהקלט (שם, מין, גיל) ומדפיס את התוצאה של describe().

הקוד שלכם צריך להיכתב בקובץ Pet.kt. הקובץ Main.kt מכיל את קוד הקלט/פלט שסופק ואי אפשר לערוך אותו.

נסו בעצמכם

fun main() {
    // קוד קלט/פלט שסופק: יש להשאיר אותו כפי שהוא
    val input = generateSequence(::readLine).toList()
    val pet = Pet()
    pet.name = input[0]
    pet.species = input[1]
    pet.age = input[2].toInt()
    println(pet.describe())
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: Kotlin אונליין