Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الكلمة المفتاحية this

جزء من قسم البرمجة كائنية التوجه في رحلة Dart على Coddy. الدرس 5 من 110.

تشير الكلمة الأساسية this إلى instance الحالية لفئة. داخل method، تتيح لك this الوصول إلى variable الخاصة بالكائن.

إليك مثالًا على class مع method تستخدم this:

class Car {
  String color = '';
  String model = '';

  void honk() {
    print('Beep beep!');
  }

  void describe() {
    print('I am a ${this.color} ${this.model}');
  }
}

داخل describe()، يشير this.color وthis.model إلى متغيرات ذلك الكائن المحدد.

أنشئ كائنًا من نوع car واضبط متغيراته:

Car myCar = Car();
myCar.color = 'Red';
myCar.model = 'Sedan';

استدعِ الأساليب:

myCar.honk();
myCar.describe();

الناتج:

Beep beep!
I am a Red Sedan

this مفيد بشكل خاص عندما يكون لـ parameter الخاص بـ method الاسم نفسه مثل instance variable:

class Car {
  String color = '';

  void setColor(String color) {
    this.color = color; // this.color = متغير المثيل، color = المعامل
  }
}

بدون this، لن تعرف Dart ما إذا كان color يشير إلى parameter أم إلى instance variable. نقطة مهمة: يشير this دائمًا إلى الكائن المحدد الذي يستدعي method حاليًا.

challenge icon

التحدي

سهل

أكمل الصنف Car في car.dart بإضافة أسلوب يُسمى displayInfo يستخدم الكلمة المفتاحية this لطباعة سنة السيارة واسم الصانع والطراز بالتنسيق:

'This car is a [year] [make] [model]'

  • car.dart: يحتوي على الصنف Car حيث ستضيف أسلوب displayInfo
  • driver.dart: يعيّن متغيرات في كائن سيارة ويستدعي displayInfo() (مقفل)

جرّب بنفسك

import 'car.dart';

void main() {
  Car myCar = Car();
  myCar.year = '2020';
  myCar.make = 'Toyota';
  myCar.model = 'Corolla';
  myCar.displayInfo();
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: مترجم Dart عبر الإنترنت