Kotlin: как сделать публичный геттер, но приватный сеттер для свойства?
مرحباً! بدأت للتو في تعلم Kotlin وانتقلت من Java. في Java اعتدت على جعل الحقول مع setter خاص و getter عام، على سبيل المثال:
```java
private String name;
public String getName() {
return name;
}
private void setName(String name) {
this.name = name;
}
```
لكن في Kotlin أرى أن الخصائص (var) تنشئ تلقائياً كلاً من getter و setter. إذا كتبت `var name: String`، يصبح كل من getter و setter عامين. وإذا استخدمت `val name: String`، فإن الخاصية للقراءة فقط - ولا يوجد setter على الإطلاق.
أحتاج إلى أن تكون الخاصية قابلة للقراءة من أي مكان (getter عام)، ولكن يمكن تغيير قيمتها فقط داخل الفئة (setter خاص). كيف يمكنني فعل ذلك بشكل صحيح في Kotlin؟
حاولت كتابة `private var name: String`، ولكن عندها يصبح getter خاصاً أيضاً، ولا أستطيع قراءة الخاصية من الخارج. جربت مجموعات مختلفة من معدّلات الوصول قبل `var` وداخل `set`، لكنني تشوشت.
أرجو إرشادي، كيف يمكنني تعريف خاصية مع getter عام و setter خاص؟