Avatar ·

الفرق بين class و object في Kotlin: متى نستخدم الكلمة المفتاحية object؟

مرحبًا! لقد بدأت للتو في تعلم Kotlin بعد Java وأصبحت مرتبكًا بشأن الكلمة المفتاحية object. في Java نستخدم new لإنشاء نسخ، و class هو مجرد قالب. لكن في Kotlin أرى أن object يُستخدم في كل مكان: للإعلان عن المفردات (singletons)، ولإنشاء الفئات المجهولة (anonymous classes)، وحتى كـ companion object داخل class. هذا مثال يربكني: ```kotlin // هل هذه فئة؟ class MyClass { fun doSomething() { println("Hello from class") } } // وهل هذا أيضًا فئة؟ object MyObject { fun doSomething() { println("Hello from object") } } // وكيف يُستخدم هذا؟ fun main() { val instance = MyClass() // حسنًا، أنشئ نسخة من الفئة MyObject.doSomething() // لكن هنا بدون new؟ لماذا؟ } ``` اشرح لي، من فضلك، ما الفرق الجوهري بين class و object في Kotlin. متى يجب استخدام class ومتى يجب استخدام object؟ ولماذا لا يمكن إنشاء object عبر مُنشئ (constructor) مثل الفئة العادية؟ سأكون ممتنًا للأمثلة.