Contenu connexe Similaire à OOP in JAVA.ppt (20) OOP in JAVA.ppt2. الدروس بدء قبل مالحظات
•
مجانا توزيعة يتم الكتاب هذا
.
•
الدروس من تقديمه يتم ماسوف بكل جيدا التركيز منكم الرجاء
•
عندكم من امثله واعطاء الموجودة االمثله جميع تطبيق الرجاء
جميا يوفقكم هللا واقول دعاكم منكم انتظر انا االخير وفي
.
الدروس نبداء
..............................
3. -
محاضرة اول
-
الكئنيه البرمجه مادة في النظري الى منه اكثر العملي شرح الى اكثر يميل الذي الكتاب هذا اليكم اقدم ان يسعدني
OOP
بتصميمها نقوم سوف التي البرامج في نحتاجها التي االشيا بعض الى بتعرف نبدا سوف
Package
:
الكالسات من مجموعه هي
كلمه الباكج تحت يندرج
import
مثل نحتاجها التي الكالسات كل قبل تكتب التي
:
Imprt java.awt.*;
Class
:
والمتغيرات الدوال من مجموعه على تحتوي التي هي
.
مثل
:
Class Mohammed{
Public Mohammed()
{
}
void AnyName()
{
}
Public static void main(String args[])
{
}
}
Constructor
:
الكونستر فداله السابق المثال في كما للكالس اوبجكت انشا عند وتتنفذ الكالس اسم بنفس الكالس داخل تاتي داله هي
التي هي كت
الكالس اسم بنفس اسم تحمل
Mohammed
الداله هي
Mohammed()
يلي كما للكالس ممثل اوبجكت انشاء ويتم
:
Mohammed mmm=new Mohammed();
الداله
main
كلمة الى يعود والسبب للبرنامج كومبيلر عمل يتم ما اول تتنفذ الداله هي
static
وينفذها الداله على يتعرف الجافا تبع المترجم ان حيث
كلمة على تحتوي النها اوال
static
.
4. يلي كما الجافا في البرامج هيكل يوضح متكامل نموذج بعمل نقوم سوف هذا بعد
:
Java Structure Program:
Package Name;
Import Java Class;
Public classes NameClasss
{
//declaver of variables
int I;
char c;
Jlabel l1;
.
.
.
public void NameClass()
{
System.out.println("");
}
Void show()
{
System.out.println("i="+i);
}
public static void main(String[] args)
{
NameClass N=new NameClass ();
N.i=10;
N.shwo();
}
}
الكالس اسم
(
انشائك من اختياري اسم
)
الكالس في نحتاجها التي المتغيرات بتعرف نقوم هنا
الــ دالة
constructer
ي ولكن االفتراضيه الداله هي المكتوبه الداله هذة ًاطبع
مكنك
تريد كمتا تبعها البدي على التعديل
بارمتريات اعطائها يمكن عاديه دالة
الـ الدالة
Main
للبرنامج
اسمه للكالس ممثل اوبجكت انشاء
N
المتغير اعطاء
i
الكالس داخل الموجود
ClassName
قيمة
وقدرها
10
الداله استدعاء
show()
الكالس من
ClassName
بعملها وتقوم تتنفذ حتى
5. الدالة الهمية
Constructor
الـ دالة تنفيذ يتم كيفية يبين مثال باعطاء اقوم سوف
Constructor
الـ دالة بان ُاسابق عرفنا كما
Constructor
الكالس اسم نفس تمتلك
.
المثال
:
class A{
int x=10;
int y=10;
public A()
{
System.out.println("x+y="+(x+y));
}
public static void main(String[] args) {
new A();
}
}
بطباعة يقوم سوف السابق المثال
:
x+y=20
لسهولته وذالك شرح الى اليحتاج السابق المثال طبعا
6. امثله
:
class mohammed{
int x;
int y;
String h;
public mohammed()
{
System.out.println("class name:mohammed");
}
void mo(int i)
{
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("s="+h);
System.out.println("i="+i);
}
public static void main(String[] args) {
mohammed m=new mohammed();
m.x=20;
m.y=30;
m.h="mohammed dawod";
m.mo(10);
}
}
االول المثال
:
class name:mohammed
x=20
y=30
s=mohammed dawod
i=10
Output
7. class mohammed{
public mohammed()
{
System.out.println("class name:mohammed");
}
void mo(int i,int m)
{
System.out.println("i+m="+(i+m));
}}
class dawod{
public dawod(){
System.out.println("class name:dawod");
}
public void sum(int i,int j){
System.out.println("i+j="+(i+j));
}
public static void main(String[] args) {
mohammed m=new mohammed();
m.mo(10,20);
dawod d=new dawod();
d.sum(50,100);
}
}
الثاني المثال
class name:mohammed
i+m=30
class name:dawod
i+j=150
Output
االمثله تابع
:
8. االمثله تابع
:
class dawod{
public dawod(int x,String s){
System.out.println(x+"
"+s);
}
public static void
main(String[] args) {
new dawod(10,"mohammed");
}
}
الثالث المثال
10
mohammed
Output
ج موضوع الى وننتقل السابق الموضوع امثلة من ننتهي هنا الى
ديد
9. Inheritance
الـ في الموجودة المواضيع اهم من موضوع التوريث
OOP
.
التوريث حول المالحظات بعض
(
inheritance
)
الكالس
class
وسلوك صفات ترث ان الممكن من
class
اخرى
.
الـ
class
نسميها ترث التي
SubClass
والـ
class
نسميها تورث التي
SuperClass
.
هي لتوريث ستخدمَت التي الكلمه
extends
محجوزة كامه وهي
.
بكلمة محمي كالس من الوراثه اليمكن
final
.
الـ
class
االبن
subclass
الـ داخل المتغيرات قيم على يعدل ان يمكن
Class
االب
superClass
محميه المتغيرات هذة تكن مالم
بكلمة
private
يكون او،لتوريث قابله غير المتغيرات هذة ان اي
final
المتغير قيمة تغيير اليمكن الحاله هذة في
.
الـ
Class
االب
superClass
االب من اكبر يكون ان اليمكن لكنه االبن كود من اكبر او االبن من اصغر فيه الكود حجم يكون ان يمكن
ن
الكود حجم حيث من
.
الـ فؤاد من
inheritance
مايلي
:
.1
سابقا المكتوب الكود كتابة تجنب
.2
واسهل اسرع يكون راح الكالسات لتصحسح الالزم الوقت
الفؤاد من كثير على يحتوي طبعا لكنه التوريث فؤاد بعض كانت هذة
.
التوريث على مثال بعرض نقوم سوف االن
inheritance
:
التاليه الصفحة في
10. المثال
:
class A{
int x,y;
public void num()
{
System.out.println("x+y="+(x+y));
}
} class B extends A{
}
class run{
public static void main(String[] args)
{
A aa=new A();
B bb=new B();
bb.x=10;
bb.y=20;
bb.num();
} }
•
الكالس فان السابق المثال من نالحظ كما
B
الكالس من ورث
A
خصائصه كل
االب الكالس بداخل التي والدوال المتغيرات كل ان اي
امتلكها
ب الكالس بداخل هي المتغيرات بان يعني وهذا بي بالكالس الخاص االوبجكت باستخدام قيم المتغيرات اعطينا اننا ذالك على والدليل االبن
ك ي
قمنا ذالك
داله باستدعاء
.....
التاليه الصفحة في خطوه خطوه البرنامج عمل بشرع اقوم سوف الخ
:
11. للمتغيرين قيم باعطاء هنا قمنا
x
و
y
الكالس داخل توجد التي
B
.
الكالس داخل المتغيرات لهذة قيم باعطاء نقوم كيف بعضكم يقول قد هنا
B
اذا
ي كما التوريث تفهم لم انت الحاله هذة في فيه؟ مكتوبه غير اصال كانت
لذالك جب
المثال هذا في اكثر بالتوضيح اقوم سوف
.
الكالس محتويات جميع عطاء با قمنا لقد اخي
A
الكالس الى
B
طريق عن
الوراثه
class A{
int x,y;
public void num()
{
System.out.println("x+y="+(x+y));
}
} class B extends A{
}
class run{
public static void main(String[] args)
{
A aa=new A();
B bb=new B();
bb.x=10;
bb.y=20;
bb.num();
} }
البرنامج تنفيذ عند
(
للبرنامج كومبيلر عمل
)
البرنامج تنفيذ يتم سوف
يلي كما
:
تحتوي التي اوال الرئيسيه الداله تنفيذ يتم سوف
static
(
الـ تنفيذ
body
تبع
التوالي على سطر سطر على الداله
)
يلي كما
انشاء
object
للكالس ممثل
A
الداله محتوى تنفيذ
num()
انشاء
object
للكالس ممثل
B
الكالس محتوى بان تخيل
B
يلي كما اصبح
:
class B{
int x,y;
public void num()
{
System.out.println("x+y="+x+y);
}
كمايلي يكون راح الناتج
:
x+y=30
12. امثله
:
class mohammed{
int x=10;
int y=20;
void show()
{
System.out.println("x="+x+"n"+"y="+y);
}
}
class dawod extends mohammed{
public dawod(){
++x;
--y;
}
public static void main(String[] args) {
dawod d=new dawod();
d.show();
}
}
االول المثال
x=11
y=19
Output
13. Polymorphism
وهي جدا هامه مواضيع ثالثه بشرح اقوم سوف االن
.1
Overloading
.2
Overriding
.3
Abstract
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
اوال
.
:Overloading
البارمتريات عدد في تختلف انها اال االسم نفس تحمل اكثر او دالتين عن عبارة هو
(
المتغيرات
)
نوعها في او
.
نظري مثال
:
باسم مثال االسم بنفس الكالس نفس في دوال ثالث لدينا لوكان
sum
بارمتر تحمل االولى الداله وكانت
(
متغير
)
مثال صحيح نوع من
sum(int x)
والداله
مثال كاركتر نوع من بارمتر تحمل الثانيه
sum(char x)
اثنين بارمترين تحمل الثالثه والداله
(
متغيران
)
مثال نوع اي من
sum(int i, duoble x)
بالتالي قمنا اذا الثالث الدوال هذة حالة في
:
-
صحيح نوع من قيمه ارسال
,
ا تحمل التي الدالة هي االجابه ؟ تتنفذ و البيانات تستقبل راح الثالث الدوال من فاي فقط واحدة قميه طبعا
لمتغير
الداله وهي تتنفذ سوف التي هي فقط الصحيح
sum(int x)
.
-
الت الداله طبعا تتنفذ؟ و البيانات تستقبل راح رايكم في الدوال من فاي فقط كاركتر نوع من واحدة قيمه بارسال قمنا اذا حالة وفي
تحمل ي
النوع هذا
وهي تتنفذ سوف التي هي كاركتر نوع من فقط واحد متغير تحمل التي َاوايض
sum(char x)
-
التي الداله طبعا تتنفذ؟ و تستقبل راح رايكم في الدوال من فاي دبل نوع من وقميه صحيح نوع من قيمة بارسال قمنا اذا حالة وفي
تستق سوف
بل
هي وتتنفذ البيانات
sum(int x,duoble x)
القيم ارسال في الترتيب اهمية مالحظه مع
اكيد خالله من تفهمون وراح مثال باعطااكم اقوم راح هكذا اترككم لن فطبعا الكالم خالل من تفهمو لم ان
:
العملي المثال
التاليه الصفحه في
14. الـ على مثال
Overloading
class overload{
void sum(int x){
System.out.println("x:"+x);
}
void sum(char x)
{
System.out.println("x:"+x);
}
void sum(int i,double x)
{
System.out.println("i:"+i+"&"+"x:"+x);
}
public static void main(String[] args) {
overload oo=new overload();
oo.sum(10);
oo.sum('m');
oo.sum(10,10.5);
}}
انت نوع من قيمه بارسال قمنا هنا
جر
x:10
كارك نوع من قيمه بارسال قمنا هنا
تر
x:m
وقيمة انتجر قيمة بارسال قمنا هنا
دبل
i:10&x:10.5
15. ثانيا
.
Overriding
:
-
البارمتريات ونفس االسم نفس تحمل اكثر او دالتين عن عبارة هي
(
المتغيرات
)
-
اخرى لدالة دالة تخطي عملية
.
الـ معنى تفهمو لم ان
Overriding
التالي الشرح خالل من تفهمونها سوف التعريف خالل من
:
نظري مثال
:
اسمه االول الكالس كالسين لديك ان مثال افرض
A
اسمه الثاني والكالس
B
اسمها داله االول الكالس في كان فاذا
sum(int x,int y)
الثاني والكالس
اسمه الذي
B
اي المتغيرات نفس وتحمل االسم بنفس داله فيه
sum(int x,int y)
.
الكالس وكان
B
الكالس من يرث
A
الكالس ان اي
B
الكالس محتويات على حتوي
A
اي
class B extends A
.
البرنامج هيكل كان هذا
.
الكالس بان السابق من نعرف
B
الكالس من ورثها التي االولى الداله االسم بنفس دالتين على يحتوي
A
اي فيه كتابتها تمت التي هي الثانيه والداله
تبعه االصليه
.
الداله الى قيم وارسال استدعا تم اذا يحدث فماذا
sum(int x,int y)
الكالس داخل توجد التي
B
اصال كان اذا الداله بتنفيذ البرنامج يقوم سوق فكيف
البارميتر عدد ونفس االسم بنفس دالتين الكالس في يوجد
(
المتغيرات
)
الكالس ورثها التي للداله تخطي يتم سوف هنا
B
الكالس من
A
ويتم
الكالس في المكتوبه الداله تنفيذ
B
,
بالـ تسمى العمليه هذة
overriding
.
الـ عملية بعد
overriding
الكالس في توجد التي الداله احذف جرب
B
راح الي يحصل راح الي شو الك اقول راح تالحظه؟ سوف مالذي البرنامج ونفذ
الكالس من وراثتها تمت التي للداله يحصل سوف التنفيذ ان هو يحصل
A
التسمى العمليه وهذة
overriding
عاديه عمليه وانما
.
انا االن
بـالـ اقصد ايش فهمت بانك متاكد
overriding
.
الـ عملية وفهم بتطبيقه تقومو لكي عملي مثال باعطاكم اقوم سوف االن
overriding
اكثر
:
التاليه الصفحه في المثال
16. العملي المثال
:
class A{
void sum(int x,int y){
System.out.println("in class A: x+y="+(x+y));
}
}
class B extends A{
void sum(int x,int y){
System.out.println("in class B: x+y="+(x+y));
}
public static void main(String[] args) {
B oo=new B();
oo.sum(10,20);
}
}
تكون سوف للبرنامج المخرجات
:
in class B: x+y=30
التاليه بالتجربه قم
:
الكالس داخل توجد التي الداله احذف
B
من تالحظه سوف مالذي البرنامج ونفذ
مخرجات
(
ليست هذة العمليه طبعا
overriding
)
الـ عن سؤال تحلونه لكي سؤال اعطيكم سوف االن
overriding
هو السؤال
:
Write java program that use overriding method in two classes one of them is A and the other is B
inhrites A ? (use two methods)
17. ــ الثاني الفصل ــ
بالتالي اقوم سوف الفصل هذا في
:
•
الجافا في الواجهات تصميم عن قصيرة مقدمه باعطاء اقوم سوف
.
•
الواجهات بعض تصميم
•
خطوة خطوة الواجهات من بتصميمه ماقمنا شرح
.
Design interface
(GUI)
18. بتصميمها نقوم سوف التي العناصر بعض على التعرف
title bar
menu bar
button
menu
menuItem
TextField
Label
19. الجافا في الواجهات بعض بتصميم نقوم سوف الفصل هذا في
داخل موجود نحتاجه ماسوف كل طبعا
swing
و
awt
اردنا لو فمثال
button
التالي السطر بكتابة نقوم فسوف
:
Imoprt javax.swing.JButton;
اردنا ولو
label
او
textfiled
از
menubar
....
الخطوة بنفس نقوم ان اال علينا ما الخ
.
السط بكتابة اقوم ان المعقول من هل العناصر من كثير على تحتوي واجهه بتصميم نقوم ان اردنا لو منكم البعض يقول قد
السابق ر
الس السطر بكتابة تقوم لن طبعا ال الك اقول انا ، مبتدئن برمجه انما محترفين برمجه التعتبر هذة اريدة كائن لكل
مرة من اكثر ابق
التالي تكتب ان اال عليك ما
:
Import javax.swing.*;
على تحتوي نافذة وهو جدا بسيط مثال باعطاء نقوم سوف
Button
و
label
و
textfiled
التالي الشكل بتصميم نقوم سوف
:
هذا الشكل لتصميم نحتاجه سوف مالذي تحديد االولى الخطوة
:
الى نحتاج
:
•
Jpanal
•
JLabel
•
JTextFiled
•
JButton
20. البرنامج كتابة الثانيه الخطوة
:
import javax.swing.*;
class mohammed extends JPanel{
JLabel j1,j2;
JTextField t1,t2;
JButton b1;
public mohammed(){
setLayout(null);
j1=new JLabel("Name");
j1.setBounds(10,20,40,25);
add(j1);
t1=new JTextField();
t1.setBounds(60,20,200,25);
add(t1);
j2=new JLabel("ID");
j2.setBounds(20,50,40,25);
add(j2);
t2=new JTextField();
t2.setBounds(60,50,25,25);
add(t2);
b1=new JButton("ok");
b1.setBounds(110,100,80,30);
add(b1);
}
public static void main(String[] avgs)
{
mohammed m=new mohammed();
JFrame f=new JFrame("fffffff");
f.setVisible(true);
f.setSize(300,250);
f.setContentPane(m);
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
}
} خطوة خطوة على السابق الكود بشرح اقوم سوف االن
21. import javax.swing.*;
class mohammed extends JPanel{
JLabel j1,j2;
JTextField t1,t2;
JButton b1;
كال بداخلها توجد التي المكتبه
من
للـ الكالس وراثه
JPanel
جميع وضع يتم سوف الذي
فيه العناصر
public mohammed(){
setLayout(null);
j1=new JLabel("Name");
j1.setBounds(10,20,40,25);
add(j1);
t1=new JTextField();
t1.setBounds(60,20,200,25);
add(t1);
j2=new JLabel("ID");
j2.setBounds(20,50,40,25);
add(j2);
t2=new JTextField();
t2.setBounds(60,50,25,25);
add(t2);
b1=new JButton("ok");
b1.setBounds(110,100,80,30);
add(b1);
}
البناء دالة
لل التلقائي الترتيب ايقاف
عناصر
خلق
label
فيه وكتابه
name
Name
الـ حجم تحديد
label
الـ على وموقعه
panel
j1.setBounds(10,20,40,25);
(0,0)
(10,20)
40
25
الـ باضافة يقوم
label
الـ الى انشئناة الذي
panel
ID
ok
22. التالي الشكل على حصلنا السابق الكود من االن لحد
:
ID
ok
name
الكود باقي شرح بتكلمة اقوم سوف االن
:
التاليه الرئيسيه الداله اال لنا يتبقاء لم هنا
:
public static void main(String[] avgs)
{
mohammed m=new mohammed();
JFrame f=new JFrame("fffffff");
f.setVisible(true);
f.setSize(300,250);
f.setContentPane(m);
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
}
}
للكالس ممثل اوبجكت انشاء
mohammed
بانشاء قمنا الذي الكالس
فيه العناصر جميع
الفريم اضهار دالة
الفريم حجم تحيد
f.setSize(width,height);
نهئيا اغالقه يتم البرنامج اغالق عند
23. ال الشكل في كما قوائم بتصميم نقوم سوف االن
تالي
:
العناصر من نحتاجه سوف مالذي بتحديد نقوم اوال
:
الى نحتاج
:
JMenuBar
JMenu
JMenuItem
القائمه لماذا منكم البعض يتسائل قد
copy to
داخل توجد التي
edit
نوع من
jmenu
التي القوائم بينما
داخل توجد
file
نوع من
JMenuItem
تعتبر فرعيه قوائم على تحتوي قائمة اي انه هو تسائلكم على االجابه
JMenu
وليست
JMenuItem
24. البرن بكتابة نقوم ثانيا
امج
:
import javax.swing.*;
class TestMenu extends JPanel{
JMenuBar mbr;
JMenu file,edit,Copy;
JMenuItem New,Open,Exit,c,d,e;
public TestMenu(){
setLayout(null);
mbr=new JMenuBar();
file=new JMenu("file");
edit=new JMenu("Edit");
Copy=new JMenu("Copy TO");
New=new JMenuItem("new");
Open=new JMenuItem("Open");
Exit=new JMenuItem("Exit");
c=new JMenuItem("C:/");
d=new JMenuItem("D:/");
e=new JMenuItem("E:/");
file.add(New);
file.add(Open);
file.add(Exit);
Copy.add(c);
Copy.add(d);
Copy.add(e);
edit.add(Copy);
mbr.add(file);
mbr.add(edit);
add(mbr);
mbr.setBounds(0,0,200,30);
}
public static void main(String args[])
{
JFrame fr=new JFrame("mohammed");
TestMenu td=new TestMenu();
fr.setContentPane(td);
fr.setVisible(true);
fr.setSize(200,200);
fr.setDefaultCloseOperation(3);
}
}
الى يحتاج لن ولذالك الحدود ابعد الى سهل البرنامج طبعا
شرح
25. التبويب على ندخل االن
:
التالي الشكل في كما شي اي على يحتوي تبويب كل تبويبان على يحتوي فريم تصميم ونريد
:
هامه مالحظه
:
الى يحتاج تبويب كل
Panel
القادم الشرح خالل من اكثر المالحظه هذة تفهم سوف ،به خاص
التصم لبنا نحتاجها سوف التي االحتياجات بتحديد نقوم اوال
السابق يم
:
الى نحتاج
:
JTabbedPane
2
JPanel
2
JLabel
26. الب بكتابة نقوم ثانيا
رنامج
:
import java.awt.Container;
import javax.swing.*;
class Tab extends JFrame {
JLabel Lname,Lme;
JPanel jp1,jp2;
JTabbedPane tab;
Tab(){
super("Tap");
Container co=getContentPane();
Lname=new JLabel("mohammed");
Lme=new JLabel("yemen");
jp1=new JPanel();
jp2=new JPanel();
tab=new JTabbedPane();
jp1.add(Lname);
jp2.add(Lme);
tab.add("Tab1",jp1);
tab.add("Tab2",jp2);
co.add(tab);
setSize(300,150);
setVisible(true);
}
public static void main(String[] args) {
Tab t=new Tab();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
27. خطوة خطوة السابق الكود شرح
:
import javax.swing.*;
class Tab extends JFrame {
JLabel Lname,Lme;
JPanel jp1,jp2;
JTabbedPane tab;
المكونات تعريف
(
ذك السابق االحتياجات
رها
)
Tab(){
super("Tap");
Container co=getContentPane();
Lname=new JLabel("mohammed");
Lme=new JLabel("yemen");
jp1=new JPanel();
jp2=new JPanel();
tab=new JTabbedPane();
jp1.add(Lname);
jp2.add(Lme);
tab.add("Tab1",jp1);
tab.add("Tab2",jp2);
co.add(tab);
setSize(300,150);
setVisible(true);
}
س التي المكونات جميع باحظار تقوم الحاويه مثل اعتبرها
وف
الـ داخل الى نكونها
JFrame
28. public static void main(String[] args) {
Tab t=new Tab();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
كل في اشرحها ان المعقول من ومش قبل من شرحها قمت الني النقاط بعض بشرح اقم لم
كود
الـ من ننتهي هنا
Design interface (GUI)
ال عناصر جميع الى بتطرق اقم لم طبعا فهمتوها بانكم ارجو
GUI
الـ مثل
JCheckBox
و
JComboBox
...
ه بعد قادرون بانكم واعتقد لكم بكتابتها قمت التي البرامج مع كتابتها لتشابه وذالك الخ
الشرح ذا
تريدونها واجهه اي تصميم على
...
الموضوع هذا في االبداع لكم ارجو الفصل هذا نهاية في
.
29. الـ كتاب من االول الجزء نهاية
OOP
الـ كتاب من الثاني الجزء في
OOP
بشرح اقوم سوف
:
•
EVENT HANDLING
•
STREEM
•
البيانات بقواعد جافا اتصال
بالشرح قام
:
الطالب
:
داود صالح راشد محمد
صنعاء جامعة
–
المعلومات وتكنولوجيا الحاسوب كلية
الهجامي فؤاد الدكتور الى الخاص شكري اقدم
.......
الهجامي فؤاد الدكتور شرح من مستنبط الشرح
التالي االيميل عبر التواصل الرجاء اسئله اي لديكم كان ان
:
MOHAMMED2008_DAWOD@HOTMIAL.COM