You are on page 1of 20

Lesson 1

Modern Programming Language

Assistant Professor
Qamaruddin Shamsi

Addison Wesley
is an imprint of
Lesson Topics
Lesson 1 discusses the following main topics:
– MPL and it Requirements,

– Objects

– Classes

– Inheritance

– Polymorphism

– Abstraction

– Encapsulation
1-2
Object Oriented Concept

•Object
•Class
•Inheritance
•Polymorphism
•Abstraction
•Encapsulation
6-3
Programming Languages
1. Procedural Programming Lang
2. Object Oriented Programming Lang

Procedural Programming

‫ کود ها پی هم دیگر نوشته میگردد که در نتیجه سبب‬:


‫• ازدیاد کودها‬
‫وقت زیاد برای اجرا‬ •
‫ضیاع انرژی بیشتر‬ •
‫امنیت تضعیف‬ •
‫میگردد‬
Object-Oriented Programming

• Object-Oriented Programming is a methodology


to design a program using classes and objects.

• It simplifies the software development and


maintenance by providing some concepts

OOP •
‫ ها را میسازد هر‬Object ‫ استفاده میکند و‬Method ‫ و‬Class ‫از‬
‫ کنیم‬Call ‫وقتیکه نیاز میشود آنرا‬
6-5
Object
‫شی‬
• Object means a real word entity such as pen,
chair, table etc.
• Any entity that has state and behavior is known
as an object. For example: chair, pen, table,
keyboard, bike etc.
• State: represents data (value) of an object.
• Behavior: represents the behavior (functionality)
of an object deposit, withdraw

6-6
‫‪Object‬‬
‫شی‬
‫•‬ ‫‪Object means a real word entity such as pen, chair, table etc.‬‬
‫• هر آبجکت ‪ 2‬صفت دارد‬
‫‪ -Property .1‬خاصیت – صفت‬
‫خواص پروجکتور مانند رنگ پروجکتور‪ ،‬وزن‪ ،‬قیمت‬
‫‪ -Functionality .2‬کار و یا عمل که انجام میدهد‪ .‬مانند روشن و خاموش شدن‪ ،‬نشان دادن‪،‬‬
‫دروازه را در نظر میگیریم‬
‫خاصیت ها‪ :‬رنگ‪ ،‬جنس‪ ،‬طول‪ ،‬عرض‪ ،‬ارتفاع‬
‫‪ :Functionality‬بازشدن‪ ،‬بسته شدن که در حقیقت یک فعل و یا عمل است که انجام میدهد‪.‬‬
‫‪ Property‬میشود که نام متحول باشد که قیمت را در خود ذخیره میکند و یا دیتاتایپ باشد که نوعیت قیمت ها را‬
‫نشان میدهد‬
‫‪ Method‬یا ‪ Functionality‬به این معنا که یک عمل را انجام میدهد‬
‫پس پروجکتور و دروازه خودش آبجکیت است‪ .‬اما اگر دقیق شویم مفهوم دروازه کلی است میتواند چوبی باشد‪،‬‬
‫فلزی باشد و غیره پس در این صورت دروازه کالس است نه آبجیکت اگر مشخص باشد مانند دروازه زرد‬
‫میشود آبجیکت شود‬

‫‪6-7‬‬
‫در اینجا میخواهیم که ‪ class‬و ‪ object‬را در مثال ذیل توضیح‬
‫‪Class‬‬ ‫دهیم‪.‬‬
‫اگر حیوانات را به ‪ class‬تشبیه نماییم‪ ،‬سگ یا ‪ dog‬یک نوع از‬
‫این ‪ class‬میباشد و به همین خاطر آنرا ‪ object‬میگوییم‪ .‬در‬
‫سالید قبلی صفت های ‪ object‬را مطالعه نمودیم که عبارت از‬
‫‪ property‬و ‪ functionality‬میباشد‪.‬‬
‫چشم‪ ،‬پا‪ ،‬گوش‪ ،‬دم‪ ،‬زبان‪ ،‬دندان و غیره ‪ property‬سگ میباشد‪.‬‬
‫‪Animals‬‬ ‫کارکرد سگ مانند محافظت‪ ،‬گزیدن و غرزدن را‬
‫‪ functionality‬سگ مینامیم‪.‬‬

‫‪Dog‬‬

‫‪Object‬‬

‫‪Functionality‬‬

‫… ‪Guarding, biting, barking‬‬ ‫‪Property‬‬


‫یک مثال را حاال کار میکنیم‬
‫کالس موتر را در نظر میگیریم‬
‫اول پراپرتی آنرا در نظر میگریم مثال ‪ glass،Seets ،Tire‬و ‪door‬‬
‫حال قیمت در نظر میگیریم‬
‫‪ Tire=4 ،engine = 4 ،Color = while‬و ‪door = 4‬‬
‫تمام آن پراپرتی است‬
‫حال پروگرام میسازیم‬
‫{ ‪Class Car‬‬
‫;‪String Color‬‬
‫;‪Int engine‬‬
‫;‪String glass‬‬
‫;‪Int wheel‬‬
‫;‪Short door‬‬
‫حال آیا موتر کدام کار را انجام میدهد؟ بلی‪ .‬حال فنکشن آنرا در نظر میگیریم‬
‫‪Start, stop, door_open, door_close,‬‬
‫{ )( ‪Void Start‬‬
‫};)”… ‪System.out.println (“The car has been started‬‬
‫{)( ‪Void Stop‬‬
‫})”‪System.out.println (“The door has been closed….‬‬
‫بعد از اینکه تمام میتود ها معرفی گرید الزم است تا در میتود اصلی ‪ main‬آبجیکت کالس معرفی گردد تا کار کند‬
‫مانند نقشه که از آن خانه جور میشود‬
Class
A collection of objects is called class.
A class is a group of objects which have common
properties. It is a template or blueprint from which
objects are created.
It is a logical entity. It can't be physical.
A class in Java can contain:
o fields
o methods
o constructors
o blocks
o nested class and interface 6-10
‫نقشه یک تعمیر را میتوان ‪ Class‬و تعمیر فزیکی را ‪ Object‬فکر کرد‪ .‬از روی یک‬
‫نقشه میتوانیم چندین تعمیر را ایجاد کرد‬
‫‪ Scanner‬یک کالس است و با نوشتن )‪Scanner Kh = new Scanner (System.in‬‬
‫درحقیقت ما یک ‪ Object‬آنرا روی صفحه ایجاد کردیم‪ .‬هر وقت که خواسته باشیم‬
‫متحولین و میتود های مختلف کالس سکنر (‪ )nextInt, nextLine‬را استفاده نماییم با‬
‫استفاده از ‪ Kh‬میتوان به تمام آن دسترسی پیدا کرد‬

‫‪ :Method‬مجموعه دستورهای که یک عمل خاص را انجام میدهد‪ .‬به صورت عمومی‬


‫‪ 2‬نوع میتود داریم‪ .‬میتودهای از قبل معرفی شده مانند ‪ nextDouble،nextInt‬و غیره‪.‬‬
‫نوع دوم آن عبارت از میتود هایست که توسط ‪ User‬تعریف میگردد مانند عملیه جمع‪،‬‬
‫ضرب‪ ،‬تقسیم‪ ،‬یافتن جذر مربع و غیره‪.‬‬
‫;) ( ‪Sum A = new Sum‬‬
‫; )‪A . Product ( 20, 30‬‬
‫در حقیقت فایده استفاده ‪ object‬اینست که ضرورت نیست تا هر بار ما کالس های‬
‫متفاوت را روی برنامه بیاوریم ما تنها یک آبجکت آنرا روی صفحه میاوریم و هر‬
‫بار که به میتود های مختلف کالس ضرورت میشود با استفاده از نام همان کالس‬
‫آنرا ‪ call‬مینمایم‪ .‬مثلیکه یک نقشه را میتوان برای تعمیر چندین بالک ها استفاده‬
‫کرد‪.‬‬

‫)‪Scanner Khan = new Scanner (System.in‬‬


‫در اینجا کلمه اول سکنر در حقیقت دیتا تایپ سکنر را مشخص میسازد‪ .‬کلمه‬
‫‪ Khan‬نام سکنر یا متحول است‪ New Scanner .‬نام کالس میباشد‬
Inheritance
‫وراثت‬

• When one object acquires all the properties and


behaviors of parent object i.e. known as
inheritance.
• It provides code reusability. It is used to achieve
runtime polymorphism.

6-14
Polymorphism
‫چندین شکلی‬

• When one task is performed by different ways i.e.


known as polymorphism. For example: to convince the
customer differently, to draw something e.g. shape or
rectangle etc.
• In java, we use method overloading and method
overriding to achieve polymorphism.
• Another example can be to speak something e.g. cat
speaks meaw, dog barks woof etc.

6-16
Abstraction – No details
‫خلص – شکل کلی‬
• Hiding internal details and showing functionality
is known as abstraction. For example: phone call, we
don't know the internal processing.
• In java, we use abstract class and interface to
achieve abstraction.

6-18
Encapsulation
‫کپسول سازی‬

• Binding (or wrapping) code and data together


into a single unit is known as encapsulation.
For example: capsule, it is wrapped with different
medicines.
• A java class is the example of encapsulation.

6-19

You might also like