كيفية عمل جيتر عام وسيتر خاص لخاصية في 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.