By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: الدرس 34: شرح مفهوم الـ Named Constructor في لغة دارت
شارك
تسجيل الدخول
إشعار أظهر المزيد
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 لتسريع تطوير التطبيقات

18
لديك حساب موجود؟ تسجيل الدخول
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
عرب فلاتر > Dart > الدرس 34: شرح مفهوم الـ Named Constructor في لغة دارت
Dart

الدرس 34: شرح مفهوم الـ Named Constructor في لغة دارت

عبدالله يوسف
أخر تحديث 2024/11/15
بواسطة عبدالله يوسف اضف تعليق 6 دقيقة للقراءة 2430 مشاهدات 5 1
شارك
شرح مفهوم الـ Named Constructor في لغة دارت
شرح مفهوم الـ Named Constructor في لغة دارت
شارك

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

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

في لغة البرمجة Dart، لا يُسمح عادةً بإنشاء عدة مُنشئين (Constructors) بنفس الاسم، ولكن هناك طريقة لتحقيق ذلك باستخدام ما يُعرف بـ “Named Constructors” أو المُنشئين ذوي الأسماء المُسماة. سنتعرف في هذه المقالة على مفهوم الـ Named Constructor وكيفية استخدامه في برمجة Dart.

المحتويات
مثال 1: الـ Named Constructor في لغة Dartمثال 2: الـ Named Constructor في لغة Dartمثال 3: الـ Named Constructor في لغة Dartمثال 4: الـ Named Constructor في لغة Dartتحدي لك:

مثال 1: الـ Named Constructor في لغة Dart

في هذا المثال، لدينا كلاس يُسمى “Student” يحتوي على ثلاثة خصائص: الاسم، العمر، ورقم اللفة. يحتوي الكلاس على منشئين اثنين. المنشئ الأول هو المنشئ الافتراضي (Default Constructor)، والمنشئ الثاني هو المنشئ المُسمى (Named Constructor). المُنشئ المُسمى يُستخدم لتهيئة قيم الخصائص الثلاث. لدينا أيضًا كائن من الكلاس “Student” يُسمى “student”.

class Student {
  String? name;
  int? age;
  int? rollNumber;

  // Default Constructor
  Student() {
    print("This is a default constructor");
  }

  // Named Constructor
  Student.namedConstructor(String name, int age, int rollNumber) {
    this.name = name;
    this.age = age;
    this.rollNumber = rollNumber;
  }
}

void main() {
  // Here student is an object of the Student class.
  Student student = Student.namedConstructor("John", 20, 1);
  print("Name: ${student.name}");
  print("Age: ${student.age}");
  print("Roll Number: ${student.rollNumber}");
}

نتيجة الكود:

Name: John
Age: 20
Roll Number: 1

في هذا المثال، تم إنشاء كائن من الكلاس “Student” باستخدام المُنشئ المُسمى “namedConstructor”. تم تمرير قيم “John”، 20، و 1 كمعاملات للمُنشئ المُسمى، وتم تهيئة خصائص الاسم، العمر، ورقم اللفة في الكائن المُنشأ. ثُم يتم طباعة قيم الخصائص باستخدام العبارات print().


مثال 2: الـ Named Constructor في لغة Dart

في هذا المثال، لدينا كلاس يُسمى “Mobile” يحتوي على ثلاثة خصائص: الاسم، اللون، والسعر. يحتوي كلاس على دالة تُسمى “displayMobileDetails” التي تقوم بطباعة قيم الخصائص الثلاثة. لدينا أيضًا كائن من الكلاس “Mobile” يُسمى “mobile”. يحتوي الكلاس أيضًا على المنشئ “Mobile” الذي يأخذ الخصائص الثلاثة كمعاملات. ولكن هناك أيضًا المنشئ المُسمى “Mobile.namedConstructor” الذي يُستخدم لإنشاء كائن من الكلاس “Mobile” باستخدام الاسم واللون والسعر الاختياري. قيمة السعر الافتراضية هي 0، وإذا لم يتم تمرير السعر، ستُستخدم القيمة الافتراضية.

class Mobile {
  String? name;
  String? color;
  int? prize;

  Mobile(this.name, this.color, this.prize);
  // here Mobile() is a named constructor
  Mobile.namedConstructor(this.name, this.color, [this.prize = 0]);

  void displayMobileDetails() {
    print("Mobile name: $name.");
    print("Mobile color: $color.");
    print("Mobile prize: $prize");
  }
}

void main() {
  var mobile1 = Mobile("Samsung", "Black", 20000);
  mobile1.displayMobileDetails();
  var mobile2 = Mobile.namedConstructor("Apple", "White");
  mobile2.displayMobileDetails();
}

نتيجة الكود:

Mobile name: Samsung.
Mobile color: Black.
Mobile prize: 20000
Mobile name: Apple.
Mobile color: White.
Mobile prize: 0

في هذا المثال، تم إنشاء كائنين من كلاس “Mobile”. الكائن الأول (“mobile1”) تم إنشاؤه باستخدام المنشئ الافتراضي وتم تمرير القيم “Samsung”، “Black”، و 20000. تم طباعة قيم الخصائص باستخدام الطريقة “displayMobileDetails()”. الكائن الثاني (“mobile2”) تم إنشاؤه باستخدام المنشئ المُسمى “namedConstructor” وتم تمرير القيم “Apple” و “White”. هنا لم يتم تمرير قيمة السعر، لذا استخدمت القيمة الافتراضية 0.


مثال 3: الـ Named Constructor في لغة Dart

في هذا المثال، لدينا كلاس يُسمى “Animal” يحتوي على خاصيتين: الاسم والعمر. الكلاس يحتوي على ثلاثة منشئين. المنشئ الأول هو المنشئ الافتراضي، والمنشئ الثاني والثالث هما المنشئين المُسمين. المنشئ الثاني يُستخدم لتهيئة قيم الاسم والعمر، والمنشئ الثالث يُستخدم لتهيئة قيمة الاسم فقط. لدينا أيضًا كائن من الكلاس “Animal” يُسمى “animal”.

class Animal {
  String? name;
  int? age;

  // Default Constructor
  Animal() {
    print("This is a default constructor");
  }

  // Named Constructor
  Animal.namedConstructor(String name, int age) {
    this.name = name;
    this.age = age;
  }

  // Named Constructor
  Animal.namedConstructor2(String name) {
    this.name = name;
  }
}

void main(){
  // Here animal is an object of the Animal class.
  Animal animal = Animal.namedConstructor("Dog", 5);
  print("Name: ${animal.name}");
  print("Age: ${animal.age}");

  Animal animal2 = Animal.namedConstructor2("Cat");
  print("Name: ${animal2.name}");
}

نتيجة الكود:

Name: Dog
Age: 5
Name: Cat

في هذا المثال، تم إنشاء كائن من الكلاس “Animal” باستخدام المُنشئ المُسمى “namedConstructor” وتم تمرير القيم “Dog” و 5 للأسم والعمر على التوالي. ثم تم طباعة قيم الخصائص باستخدام العبارات print(). تم إنشاء كائن آخر من الكلاس “Animal” باستخدام المُنشئ المُسمى “namedConstructor2” وتم تمرير القيمة “Cat” للأسم فقط.


مثال 4: الـ Named Constructor في لغة Dart

في الحياة الواقعية، يمكن استخدام المُنشئين المُسمين لتحقيق سيناريوهات مُختلفة في برمجة Dart. على سبيل المثال، دعونا نفترض أن لدينا كلاس يُسمى “Rectangle” يُمثل مستطيلًا. يحتوي الكلاس على خاصيتي الطول والعرض، ويحتوي أيضًا على منشئين مُسمين لإنشاء مستطيل بأبعاد مُختلفة.

class Rectangle {
  int? length;
  int? width;

  Rectangle(this.length, this.width);

  Rectangle.square(int side) {
    length = side;
    width = side;
  }

  void displayDimensions() {
    print("Length: $length");
    print("Width: $width");
  }
}

void main() {
  Rectangle rectangle = Rectangle(5, 10);
  rectangle.displayDimensions();

  Rectangle square = Rectangle.square(7);
  square.displayDimensions();
}

نتيجة الكود:

Length: 5
Width: 10
Length: 7
Width: 7

في هذا المثال، تم إنشاء كائنين من كلاس “Rectangle”. الكائن الأول (“rectangle”) تم إنشاؤه باستخدام المنشئ الذي يأخذ الطول والعرض كمعاملات، وتم تمرير القيم 5 و 10. تم طباعة قيم الأبعاد باستخدام الدالة “displayDimensions()”. الكائن الثاني (“square”) تم إنشاؤه باستخدام المنشئ المُسمى “square” الذي يأخذ الجانب كمعامل، وتم تمرير القيمة 7. هنا، تم تهيئة الطول والعرض بنفس القيمة لإنشاء مستطيل مربع.


تحدي لك:

تحدٍ هنا هو استخدام المُنشئ المُسمى لإنشاء كلاس خاص بك يحتوي على خصائص ومنشئين مُسمين بحسب احتياجاتك. جرب إنشاء كلاس جديد واستخدم المُنشئين المُسمين لتهيئة الخصائص واختبارها.


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

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
المقال السابق شرح مفهوم الـ Parameterized Constructor في لغة دارت الدرس 33: شرح مفهوم الـ Parameterized Constructor في لغة دارت
المقال التالي شرح مفهوم الـ Constant Constructor في لغة دارت الدرس 35: شرح مفهوم الـ Constant Constructor في لغة دارت
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

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