آموزش رایگان صفر تا صد کاتلین (Kotlin) به زبان ساده
-
معرفی کاتلین
-
شروع کار با Kotlin
-
سینتکس (Syntax) در Kotlin
-
چاپ خروجی در Kotlin
-
کامنتها در Kotlin
-
متغیرها در Kotlin
-
انواع داده در Kotlin
-
اپراتورها در Kotlin
-
همه چیز درباره رشتهها (Strings) در Kotlin
-
همهچیز دربارهی Boolean در Kotlin
-
شرطها در Kotlin: if ... else
-
آشنایی با when در Kotlin
-
حلقههای While در Kotlin
-
دستورات Break و Continue در Kotlin
-
آرایهها در Kotlin
-
حلقه for در Kotlin
-
محدودهها (Ranges) در Kotlin
-
توابع در Kotlin
-
برنامهنویسی شیءگرا در Kotlin
-
کلاسها و اشیاء در Kotlin
-
کانستراکتور (Constructor) در Kotlin
-
توابع (Functions) در کلاسهای Kotlin
-
وراثت (Inheritance) در Kotlin
توابع (Functions) در کلاسهای Kotlin
گاهی اوقات نیاز داریم که درون یک کلاس، یک سری عملیات مشخص را انجام دهیم. برای این کار میتوانیم از توابع کلاس استفاده کنیم.
✨ مثال: تعریف یک تابع در کلاس
فرض کن میخواهیم یک کلاس برای ماشینها (Car) بسازیم و داخل آن یک تابع داشته باشیم که وقتی صدا زده شد، پیامی در خروجی چاپ کند.
کد نمونه:
class Car(var brand: String, var model: String, var year: Int) {
// تعریف یک تابع در کلاس
fun ()drive {
println("Wrooom!") // صدای ماشین!
}
}
fun main() {
val c1 = Car("Ford", "Mustang", 1969)
// صدا زدن تابع
c1.()drive
}
✅ نکته: وقتی یک تابع داخل کلاس تعریف شود، به آن تابع کلاس (Class Function) یا تابع عضو (Member Function) میگویند.
✅ نکته: هر شیئی که از کلاس ساخته شود، میتواند به این توابع دسترسی داشته باشد.
📌 ارسال پارامتر به توابع کلاس
همانطور که در توابع معمولی میتوان ورودی (پارامتر) دریافت کرد، در توابع کلاس هم این امکان وجود دارد.
💡 مثال: تابعی که حداکثر سرعت را چاپ میکند
در این مثال، دو تابع داریم:
()drive
که مثل قبل یک پیام ساده چاپ میکند.()speed
که یک مقدار دریافت کرده و حداکثر سرعت ماشین را چاپ میکند.
کد نمونه:
class Car(var brand: String, var model: String, var year: Int) {
// تابع کلاس ساده
fun ()drive {
println("Wrooom!")
}
// تابع کلاس با ورودی
fun ()speed(maxSpeed: Int) {
println("Max speed is: $maxSpeed km/h")
}
}
fun main() {
val c1 = Car("Ford", "Mustang", 1969)
// صدا زدن توابع
c1.()drive
c1.()speed(200)
}
📌 خروجی مورد انتظار:
Wrooom!
Max speed is: 200 km/h
✅ نکته: میتوان به راحتی مقدار حداکثر سرعت را هنگام صدا زدن تابع ()speed
مشخص کرد.
✅ نکته: مقدار ورودی در ()speed
از نوع Int
است، اما میتوان ورودیهای دیگری مثل String
یا Double
هم ارسال کرد.
🎯 چالش برای تو!
یک کلاس Person
بساز که دو تابع داشته باشد:
()introduce
که نام و سن شخص را چاپ کند.()greet
که نام شخص را بگیرد و بگوید: “سلام [نام]!”