By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: الدرس 38: شرح مفهوم الـ Setter في لغة دارت (Setter in Dart)
شارك
تسجيل الدخول
إشعار أظهر المزيد
Aa
عرب فلاترعرب فلاتر
Aa
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
Search

أقسام الموقع

استكشف جميع أقسام الموقع
قسم Dart في موقع عرب فلاتر

Dart

59 مقالات
قسم Widgets في موقع عرب فلاتر

Widgets

104 مقالات
قسم Packages في موقع عرب فلاتر

Packages

19 مقالات
قسم Tutorials في موقع عرب فلاتر

Tutorials

22 مقالات

أخر المواضيع

استكشف أخر المواضيع المنشورة
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا

5
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials

حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر

10
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials

أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات

17
لديك حساب موجود؟ تسجيل الدخول
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
عرب فلاتر > Dart > الدرس 38: شرح مفهوم الـ Setter في لغة دارت (Setter in Dart)
Dart

الدرس 38: شرح مفهوم الـ Setter في لغة دارت (Setter in Dart)

عبدالله يوسف
أخر تحديث 2024/11/15
بواسطة عبدالله يوسف اضف تعليق 5 دقيقة للقراءة 2268 مشاهدات 3
شارك
شرح مفهوم الـ Setter في لغة دارت (Setter in Dart)
شرح مفهوم الـ Setter في لغة دارت (Setter in Dart)
شارك

خدماتنا البرمجية – عرب فلاتر🚀

خدماتنا البرمجية – عرب فلاتر

واحدة من المفاهيم الأساسية في برمجة Dart هي مفهوم الـ Setter، الذي يمثل جزءًا هامًا في إدارة وتحكم البيانات والخصائص في الكائنات. يهدف هذا المقال إلى شرح مفهوم الـ Setter في لغة Dart، وكيفية استخدامه لتعيين قيم لخصائص الكائنات بشكل دقيق ومرن. سنتناول أمثلة عملية لفهم كيفية تطبيق الـ Setter والاستفادة منه في برمجتك.

المحتويات
الصيغة العامة للـ Setter في دارتأمثلة على الـ Setter في دارت:المثال 1: استخدام الـ Getter في دارتالمثال 2: استخدام الـ Setter في التحقق من البياناتالمثال 3: استخدام الـ Setter في لغة Dart

الصيغة العامة للـ Setter في دارت

تُستخدم Setter لتعيين قيمة خاصية ما. يتم استخدامها في الغالب لتحديث قيمة خاصية خاصة Private. يوفر Setter وصولًا صريحًا إلى خصائص الكائن.

Syntax:

set property_name (value) {
  // Setter body
}

ملاحظة: بدلاً من كتابة {} بعد اسم الخاصية، يمكنك أيضًا كتابة => (سهم متين) بعد اسم الخاصية.


أمثلة على الـ Setter في دارت:

المثال 1: استخدام الـ Getter في دارت

في هذا المثال أدناه، هناك كلاس يحمل اسم “NoteBook”. يحتوي الكلاس على خاصيتين Private هما _name و _prize. يوجد Setter ان اثنين هما name و prize لتحديث قيمة الخصائص. هناك أيضًا دالة display لعرض قيم الخصائص.

class NoteBook {
  // الخصائص الخاصة
  String? _name;
  double? _prize;

  // Setter لتحديث الخاصية الخاصة _name
  set name(String name) => _name = name;

  // Setter لتحديث الخاصية الخاصة _prize
  set prize(double prize) => _prize = prize;

  // دالة لعرض قيم الخصائص
  void display() {
    print("Name: $_name");
    print("Price: $_prize");
  }
}

void main() {
  // إنشاء كائن من الكلاس NoteBook
  NoteBook nb = NoteBook();
  // تعيين القيم للكائن باستخدام Setter
  nb.name = "Dell";
  nb.prize = 500.00;
  // عرض قيم الكائن
  nb.display();
}

نتيجة الكود:

Name: Dell
Price: 500.0

المثال 2: استخدام الـ Setter في التحقق من البيانات

في هذا المثال، هناك كلاس يحمل اسم “NoteBook”. يحتوي الكلاس على خاصيتين Private هما _name و _prize. إذا كانت قيمة _prize أقل من 0، فسنقوم بإلقاء استثناء. هناك أيضًا 2 Setter هما name و prize لتحديث قيمة الخصائص. الكلاس يحتوي أيضًا على دالة display لعرض قيم الخصائص.

class NoteBook {
  // الخصائص الخاصة
  String? _name;
  double? _prize;

  // Setter لتحديث قيمة خاصية الاسم
  set name(String name) => _name = name;

  // Setter لتحديث قيمة خاصية الجائزة
  set prize(double prize) {
    if (prize < 0) {
      throw Exception("السعر لا يمكن أن يكون أقل من 0");
    }
    _prize = prize;
  }

  // دالة لعرض قيم الخصائص
  void display() {
    print("Name: $_name");
    print("Price: $_prize");
  }
}

void main() {
  // إنشاء كائن من الكلاس NoteBook
  NoteBook nb = NoteBook();
  // تعيين القيم للكائن باستخدام Setter
  nb.name = "Dell";
  nb.prize = 250;

  // عرض قيم الكائن
  nb.display();
}

نتيجة الكود:

Name: Dell
Price: 250.0

الملاحظة: عادةً ما يكون من الأفضل عدم السماح للمستخدم بتعيين قيمة حقل مباشرة. بدلاً من ذلك، يجب توفير دالة Setter يمكنها التحقق من صحة القيمة قبل تعيينها. هذا أمر مهم جدًا عند العمل على برامج كبيرة ومعقدة.

المثال 3: استخدام الـ Setter في لغة Dart

في هذا المثال، هناك كلاس يحمل اسم “Student”. يحتوي الكلاس على خاصيتين Private هما _name و _classnumber. سنقوم أيضًا بإنشاء 2 Setter هما name و classnumber لتحديث قيمة الخصائص. سيقوم Setter classnumber بقبول قيمة فقط بين 1 و 12. يحتوي الكلاس أيضًا على دالة display لعرض قيم الخصائص.

class Student {
  // الخصائص الخاصة
  String? _name;
  int? _classnumber;

  // Setter لتحديث قيمة خاصية الاسم
  set name(String name) => _name = name;

  // Setter لتحديث قيمة خاصية رقم الصف
  set classnumber(int classnumber) {
    if (classnumber <= 0 || classnumber > 12) {
      throw ('يجب أن يكون رقم الصف بين 1 و 12');
    }
    _classnumber = classnumber;
  }

  // دالة لعرض قيم الخصائص
  void display() {
    print("Name: $_name");
    print("Class Number: $_classnumber");
  }
}

void main() {
  // إنشاء كائن من الكلاس Student
  Student s = Student();
  // تعيين القيم للكائن باستخدام Setter
  s.name = "John Doe";
  s.classnumber = 12;

  // عرض قيم الكائن
  s.display();

  // هذا سيولد خطأ
  //s.setClassNumber(13);
}

نتيجة الكود:

Name: John Doe
Class Number: 12

في الختام، نستنتج أن مفهوم الـ Setter في لغة Dart يُعد أحد الأدوات الأساسية لإدارة وتحكم البيانات في التطبيقات المبنية بواسطة هذه اللغة. يمكن للـ Setter أن يسهم في تنظيم الكود وجعله أكثر قوة ومرونة.

إذا كنت مُطوِّرًا يستخدم لغة Dart أو تخطط لتعلمها، فإن الفهم الجيد للـ Setter سيكون له أثر إيجابي على كفاءتك في بناء تطبيقات قوية وسليمة. تذكر دائمًا أهمية استخدام هذه الأداة لتحقيق التحكم الكامل في البيانات وتحسين تجربة المستخدم في تطبيقاتك.

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
المقال السابق شرح مفهوم الـ Getter في لغة دارت (Getter in Dart) الدرس 37: شرح مفهوم الـ Getter في لغة دارت (Getter in Dart)
المقال التالي شرح مفهوم الـ Getter و Setter في لغة دارت Dart الدرس 39: شرح مفهوم الـ Getter و Setter في لغة دارت Dart
Avatar of عبدالله يوسف
بواسطة عبدالله يوسف Founder and CEO at ArabFlutter
تابع:
أنا عبدالله يوسف، مهندس مصري ومؤسس موقع عرب فلاتر، ملهم بشغف التكنولوجيا والإبداع. كمصمم مواقع ومبرمج تطبيقات موبايل باستخدام Flutter، أستمتع بخلق عوالم رقمية فريدة ومبتكرة. تتجلى مواهبي في تصميم وتطوير واجهات مستخدم تفاعلية، حيث يمزج الجانب الجمالي بالدقة الهندسية. ما يميزني هو إلمامي الواسع بتقنيات البرمجة والتصميم، ومقدرتي على تطوير تطبيقات متنوعة عبر منصات مختلفة. أعتبر نفسي مبدعًا وملتزمًا، حيث أسعى دائمًا لتحقيق تحسين مستمر في مهاراتي وتقنياتي. أستمتع بتحديات العمل الجماعي وأؤمن بأهمية الابتكار والتطور. بفضل إبداعي والتزامي، أسعى لتقديم حلول فعّالة تلبي توقعات العملاء وتفوق عن المألوف.
اترك تعليقا اترك تعليقا

اترك تعليقاً إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials
طريقة انشاء المجلدات باستخدام Dart
طريقة انشاء المجلدات باستخدام كود Dart تلقائيًا
Tutorials

مقالات ذات الصلة

اطلع على المزيد من المقالات المتعلقة بهذا الموضوع!
شرح العوازل في لغة دارت (Isolates in Dart)
Dart

شرح العوازل في لغة دارت (Isolates in Dart)

8
شرح الـ Stream في لغة دارت (Stream in Dart)
Dart

الدرس 57: شرح الـ Stream في لغة دارت (Stream in Dart)

8
شرح عبارات async & await في لغة دارت (Dart)
Dart

الدرس 56: شرح عبارات async & await في لغة دارت (Dart)

6
شرح مفهوم الـ Future في لغة دارت (Future In Dart)
Dart

الدرس 55: شرح مفهوم الـ Future في لغة دارت (Future In Dart)

6
شرح مفهوم الـ Asynchronous في لغة دارت (Dart)
Dart

الدرس 54: شرح مفهوم الـ Asynchronous في لغة دارت (Dart)

5
10 تمارين محلولة على Null Safety في لغة دارت Dart
Dart

الدرس 53: 10 تمارين محلولة على Null Safety في لغة دارت Dart

5
أظهر المزيد
شعار موقع عرب فلاتر شعار موقع عرب فلاتر

About US

Quick Links

  • خدماتنا
  • من نحن
  • اتصل بنا
  • اتفاقية استخدام
  • سياسة الخصوصية
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
adbanner
تم اكتشاف مانع إعلانات
مرحبًا، يرجى إيقاف مانع الإعلانات. الإعلانات تُساهم في دعم موقعنا وتغطية جزء من تكاليف الاستضافة وتطوير المحتوى. شكرًا لتفهمك ودعمك.
Okay, I'll Whitelist
Welcome Back!

Sign in to your account

هل نسيت كلمة المرور؟