ساختار شی گرایی در پایتون و جاوا برای مبتدی ها

شی گرایی چیست؟ شی گرایی یک رویکرد برنامه نویسی است که بر اساس مفهوم شی (Object) کار میکند. یک شی یک موجودیت است که دارای ویژگیها (Attributes) و رفتارها (Behaviors) خاص خود است.
برای مثال، یک ماشین یک شی است که دارای ویژگیهایی مانند رنگ، برند، سرعت و رفتارهایی مانند روشن شدن، ترمز کردن و تغییر دنده است. در برنامه نویسی شی گرا، ما از کلاسها (Classes) برای تعریف و ساخت شیها استفاده میکنیم. یک کلاس یک قالب یا الگو برای شیهای مشابه است.
برای مثال، ما میتوانیم یک کلاس به نام Car تعریف کنیم که ویژگیها و رفتارهای عمومی یک ماشین را نشان دهد. سپس ما میتوانیم از این کلاس برای ساخت شیهای خاص با جزئیات مختلف استفاده کنیم. به این شکل، ما از تکرار کد جلوگیری میکنیم و برنامه را قابل توسعه و نگهداری میکنیم.
ساختار (شباختار) شي گرائي
شباختار شي گرائي نشان دهنده رابطه بين كلاس ها و شي هاست. در اين شباختار، كلاس ها با مستطيل ها و شي ها با نقطه ها نشان داده مي شوند. خطوط عمودي از كلاس ها به شي ها كشيده مي شوند تا نشان دهند كه آن شي از آن كلاس ساخته شده است.
خطوط افقي با علامت جمع (+) بيانگر رابطه والدين-فرزندي بين كلاس هاست. به اين رابطه وراثت (Inheritance) گفته مي شود و به اين معني است كه يك كلاس فرزندي (Child Class) تمام ويژگي ها و رفتارهاي يك كلاس والدين (Parent Class) را به ارث مي برد و مي تواند آن ها را تغيير داده يا اضافه كند.
تعریف یک شی
برای تعریف یک شی، ابتدا باید یک کلاس (Class) برای آن شی تعریف کنید. یک کلاس یک قالب یا الگو برای شیهای مشابه است که ویژگیها (Attributes) و رفتارها (Behaviors) آنها را مشخص میکند. سپس میتوانید از این کلاس برای ساخت شیهای خاص با جزئیات مختلف استفاده کنید.
برای ساخت یک شی از یک کلاس، باید از عملگر new و نام کلاس استفاده کنید و یک نام برای شی انتخاب کنید. سینتکس تعریف شی در زبانهای برنامه نویسی مختلف ممکن است کمی متفاوت باشد. به عنوان مثال، در جاوا، سینتکس تعریف شی به صورت زیر است:
ClassName objectName = new ClassName();
در اینجا، ClassName نام کلاس را نشان میدهد و objectName نام شی را. به عنوان مثال، اگر بخواهید یک شی از کلاس Car با نام myCar بسازید، میتوانید به صورت زیر عمل کنید:
Car myCar = new Car();
در پایتون، سینتکس تعریف شی به صورت زیر است:
object_name = ClassName()
در اینجا، نام کلاس و نام شی همانند جاوا هستند، اما از پرانتز () به جای new استفاده میشود. به عنوان مثال، اگر بخواهید یک شی از کلاس Car با نام myCar بسازید، میتوانید به صورت زیر عمل کنید:
myCar = Car()
شی گرایی در جاوا
برای تعریف اینکه شی گرایی چیست و همچنین برای تعریف متغیرهای شی در جاوا می توان گفت زمانی که یک شی از کلاس مربوطه ساخته میشود، بارگذاری مقدار پیدا میکنند. یعنی زمانی که از عملگر new و نام کلاس استفاده میکنید، یک شی جدید از آن کلاس ایجاد میشود و متغیرهای شی آن کلاس، مقادیر پیش فرض یا اولیه خود را دریافت میکنند.
برای مثال، اگر یک کلاس به نام Student داشته باشید که دارای دو متغیر شی به نام name و age است، زمانی که یک شی از این کلاس با نام s1 بسازید، متغیرهای name و age بارگذاری مقدار پیدا خواهند کرد. اگر مقادیر اولیه را برای این متغیرها تعریف نکرده باشید، مقادیر پیش فرض آنها به ترتیب null و 0 خواهد بود.
Student s1 = new Student(); // ساخت یک شی از کلاس Student
System.out.println(s1.name); // نمایش مقدار name
System.out.println(s1.age); // نمایش مقدار age
خروجی:
Null 0
شی گرایی در پایتون
شی گرایی در پایتون یک روش برنامه نویسی است که بر اساس ایجاد و استفاده از اشیا (Object) کار میکند. یک شی یک موجودیت است که دارای ویژگیها (Attributes) و رفتارها (Behaviors) خاص خود است. برای مثال، یک شخص یک شی است که دارای ویژگیهایی مانند نام، سن، قد و رفتارهایی مانند صحبت کردن، خوردن، خوابیدن است.
برای تعریف و ساخت شیها در پایتون، از کلاسها (Class) استفاده میشود. یک کلاس یک الگو یا قالب برای شیهای مشابه است که ویژگیها و رفتارهای آنها را تعریف میکند. برای تعریف یک کلاس در پایتون، از کلمه کلیدی class استفاده میشود. به عنوان مثال، برای تعریف یک کلاس به نام Person میتوان از کد زیر استفاده کرد:
class Person:
# تعريف يك كلاس به نام Person
def __init__(self, name, age):
# تعريف يك تابع سازنده كه ويژگي هاي name و age را دريافت مي كند
self.name = name # ايجاد يك ويژگي به نام name
self.age = age # ايجاد يك ويژگي به نام age
def talk(self):
# تعريف يك تابع به نام talk كه رفتار صحبت كردن را نشان مي دهد
print(f”سلام، من {self.name} هستم و {self.age} سال دارم.”)
برای ساخت یک شی از یک کلاس، باید نام کلاس را با پرانتز () فراخوانی کنید و مقادیر لازم برای ورودیهای تابع سازنده (__init__) را به آن بدهید. به عنوان مثال، برای ساخت یک شخص با نام Amir و سن 25 سال، میتوان از کد زیر استفاده کرد:
p1 = Person(“Amir”, 25) # ساخت يك شي از كلاس Person با نام p1
برای دسترسی به ویژگیها و رفتارهای یک شی، باید از علامت نقطه (.) استفاده کنید. به عنوان مثال، برای نمایش نام و سن شخص p1 و فراخوانی تابع talk() آن، میتوان از کد زیر استفاده کرد:
print(p1.name) # نمايش نام شخص p1
print(p1.age) # نمايش سن شخص p1
p1.talk() # فراخواني تابع talk() براي شخص p1
خروجی:
Amir
25
سلام، من Amir هستم و 25 سال دارم.
مفاهیم اصلی در برنامه نویسی شی گرا بنویس