Constructor


Constructor

درسنا اليوم حيكون عن ايش هو الـ Constructor ؟

هي دالة دايم ننشئها داخل الكلاس وتكون بنفس اسم الكلاس.

- ايش حنستفيد منها ؟

من خلالها نقدر نهيئ الأوبجكت لمن ننشئه ويصير الأوبجكت قابل للإستعمال.

بدونها مانقدر نستخدم الأوبجكت

- بس في الدروس السابقة

أنشئنا أوبجكت عادي بدونها

بدون مانضيف داله اسمها نفس اسم الكلاس .. كيف ؟؟؟

لأنو هي تتنشئ تلقائياً إذا نحنا ماكتبناها =)

أول ما نسوي كلاس هي تنكتب افتراضياً

ولمن نجي نسوي Constructor خاص فينا

نسويه زي ماإحنا نبغا

الأفتراضي ينحذف على طول X

- ايش ممكن نسوي في الدالة ؟

ممكن نخليها تعطي قيم للمتغيرات أول مايتنشئ الأوبجكت

بحيث تعطي مثلاً المتغيرات اللي داخل الكلاس قيم أفتراضيه

أو تتعبى بقيم يرسلها الأوبجكت خلال تكوينه

* فالدالة تقدر تخليها تستقبل قيم أو ما تستقبل

وأهم شي هي ماترجع قيمه مو زي الداله العادية

بالطريقة الموضحة نقدر ننشئ كونستركتر :

ونلاحظ إنو ماكتبنا void ولا ReturnType

فقط public + اسم الكلاس


- ايش سوينا في الدالة ؟

فقط قلنا لمن يتنشئ الأوبجكت أعطي قيمة صفر لمتغيرات الأوبجكت الـ x , y

} class Test

;int x

; int y

} () public Test

; x=0

; y=0

{

{

-طيب لو ابغا اعطيهم قيم ماتكون صفر

اقدر اخلي الدالة تستقبل قيم

بحيث يصير كل أوبجكت أنشئه ارسل له قيم مختلفه

--بنفس طريقة الدوال العادية--

} class Test

;int x

; int y

} (int x2 , int y2) public Test

; x=x2

; y=y2

{

{

ملاحظة :

اقدر انشئ اكثر من كونستركتر في نفس الكلاس

بس تكون المتغيرات المرسله لها (Parameters) في كل دالة مختلفة


*مثال*

نشوف مثال :

لاحظوا هنا أنشئت 2 أوبجكت عشان نشوف الفرق

الأوبجكت الأول حيروح لأول كونستركتر .. ليه ?

لانو ماارسل قيم فحتصير الـx , y كلهم صفر

بس الأوبجكت الثاني أرسل قيم فحتصير

x=3 ,,, y = 5

وبكذا صار الأوبجكت حقنا قابل للإستخدام

} class Test

; int x

; int y

} () public Test

; x=0

; y=0

{

} public Test (int x2 , int y2)

;x=x2

;y=y2

{

{

} public class Main

} public static void main(String[] args)

; () Test obj1 = new Test

;Test obj2 = new Test(3,5)

;System.out.println("obj1 : "+obj1.x+" "+obj1.y)

;System.out.println("obj2 : "+obj2.x+" "+obj2.y)

{

{

وبكذا ننهي درسنا

اترك تعليقاً

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