Avatar ·

كيفية عمل جيتر عام وسيتر خاص لخاصية في Kotlin؟

مرحبًا! بدأت للتو في تعلم Kotlin بعد Java وواجهت مشكلة. في Java، اعتدت على جعل الحقول مع setter خاص و getter عام للتحكم في الوصول إلى البيانات. على سبيل المثال: ```java public class User { private String name; public String getName() { return name; } private void setName(String name) { this.name = name; } } ``` في Kotlin، أعلم أنه يمكنني كتابة `var name: String` والحصول تلقائيًا على getter و setter، لكن عندها سيكون كلاهما عامًا. إذا كتبت `private var name: String`، فسيصبح كلاهما خاصًا. كيف يمكنني في Kotlin جعل getter عامًا (يمكن قراءة الخاصية من الخارج) و setter خاصًا (يمكن تغيير القيمة فقط داخل الفئة)؟ لقد جربت خيارات مختلفة، لكن المترجم يشتكي. على سبيل المثال، حاولت كتابة `public var name: String private set`، لكن هذا لا يعمل. من فضلك، أخبرني كيف أفعل ذلك بشكل صحيح؟ وأيضًا، إذا أمكن، أظهر مثالًا باستخدامه في constructor.