با سلام خدمت کاربران گرامی سایت پی وی لرن و کاربرانی که علاقمند به دوره آموزش کاتلین هستند. در جلسه قبل به آموزش Data Classes ها پرداختیم. در این جلسه، آموزش کار با sealed class در کاتلین و ویژگی های آن ارائه می گردد.
در جلسه آموزش کار با sealed class در کاتلین مطالب بیشتری راجع به sealed class می آموزیم.
sealed class یک نوع کلاس برای نمایش یک کلاس سلسله بندی شده اما محدود است.
sealed ها به توسعه دهندگان اجازه می دهد که نوعی داده از پیش تعریف شده را نگه داشته و حفظ نمایند.
برای ایجاد sealed class باید از کلمه کلیدی (seales) به عنوان یک ویرایشگر در کلاس مورد نظر استفاده کرد.
یک sealed class می تواند زیر کلاس (subclass) منحصر به خود را داشته باشد اما همه این زیر کلاس ها باید در همان فایل کاتلین، همراه با sealed class اعلام شده باشند.
در مثال زیر نحوه استفاده از sealed class نشان داده شده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 | sealed class MyExample { class OP1 : MyExample() // MyExmaple class can be of two types only class OP2 : MyExample() } fun main(args: Array<String>) { val obj: MyExample = MyExample.OP2() val output = when (obj) { // defining the object of the class depending on the inuputs is MyExample.OP1 -> "Option One has been chosen" is MyExample.OP2 -> "option Two has been chosen" } println(output) |
در مثال بالا یک sealed class وجود دارد که نامگذاری شده است.
در این sealed class فقط دو نوع (type) موجود دارند:
“OP1” و “OP2” .
در کلاس اصلی، ما یک object در کلاس خود ایجاد کرده و نوع (type) آن را نیز در زمان اجرا مشخص می کنیم.
از آن جا که “MyExample” یک sealed است می توان “when ” را در زمان اجرا برای دستیابی به خروجی نهایی اعمال نمود.
در sealed class باید از بیانیه غیر ضروری “else” برای پیچیده کردن کد استفاده کرد.
قطعه کد بالا خروجی زیر را در مرورگر تولید می کند.
1 | option Two has been chosen |
در این جلسه به آموزش کار با sealed class در کاتلین پرداختیم.
در جلسه بعد شما را با جنریک ها (Generics) در کاتلین آشنا خواهیم کرد.
با پی وی لرن همراه باشید.