this در جاوا (object oriented programming)

در این جلسه تیم کدگیت را با آموزش this در جاوا همراهی کنید. این آموزش ادامه آموزش شی گرایی در جاوا است. پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با شی گرایی
  2. آشنایی با constructor

شی گرایی

همه چیز در مورد اشیا است. هماطور که اشیا در دنیای واقعی رفتار میکنند، در دنیای نرم افزار نیز همانگونه اند. اشیا در یک برنامه تقریبا همه کار را انجام میدهند. به عنوان مثال ماشین ها شتاب میگیرند یا انسان ها راه میروند(انسان نیز یک شی است) یا هواپیماها پرواز میکنند و ماهی ها شنا میکنند. به طور مشابه ما در نرم افزار نیز ما اشیایی میسازیم که رفتاری خاص را انجام میدهند. و ما از آن برنامه انتظار داریم که رفتارهای اشیا را انجام دهند(راه رفتن، پرواز کردن …). پس موقعی که  نرم افزار ما اجرا میشود اشیا ما به وجود می آیند.

Constructor در جاوا

Constructor در جاوا بدین صورت عمل میکند که به ما اجازه ساخت یک شی را میدهد. وقتی ما یک کلاس را new میکنیم متد constructor آن صدا زده میشود و شی مورد نظر را میسازد. پس constructor متدی است است که شی را میسازد.متد constructor ویژگی های زیر را دارد:

  1. این متد چیزی return نمیکند.
  2. نام متد همنام کلاس است.
  3. در هنگام new کردن این متد صدا زده میشود تا شی ما ساخته شود.

This در جاوا

در آموزش قبل یک کلاس به نام Human ساختیم و برای آن constructor نیز نوشتیم. حال میخواهیم کد جلسه قبل به شکل زیر بود:

در کد بالا در constructor ما از متغییرهای دستی استفاده کردیم یعنی مثلا age را برای همه 22 قرار دادیم و هر موقع بخواهیم آن را تغییر دهیم باید یک خط کد بزنیم برای هر شی به صورت جداگانه سن جدایی معرفی کنیم!!!! حالا میخواهیم کمی برنامه خود را پویاتر(dynamic) کنیم. یعنی هنگام new کردن یک شی تمام ویژگیهای شی را وارد کنیم.به کد زیر دقت کنید:

در کد بالا ما یک constructor با ورودی نوشتیم. و ورودیهای متد ما همنام ویژگیهای(فیلد های کلاس) ما هستند.حال به واژه this میرسیم.کلمه this در جاوا به شی که در آن هستیم اشاره دارد. و متغییر آن را در نظر میگیرد. به طور کلی کلمه this در جاوا یک اشاره گر به شی است. وقتی ما this.name را صدا میزنیم وارد شی ما میشود و ویژگی name آن را به ما میدهد.

مفهوم this در جاوا

توضیحات بالا شاید کمی شما را سردرگم کرده باشد برای همین یک قسمت جداگانه برای توضیح بیشتر this در جاوا در نظر گرفتیم. در آموزش قبل گفتیم که وقتی constructor مینویسیم هنگام new کردن جاوا آن را صدا میزند. حال ما یک شی از human میسازیم:

Human tom = new Human(“tom”);

اتفاقی که در حافظه میفتد این است که  یک اشاره گر به نام tom ساخته میشود که به آدرس شی ساخته شده human اشاره دارد. پس وقتی ما یک شی را میسازیم یا یک کلاس را new میکنیم در حافظه آن ایجاد میشود و اشاره گری به آن اشاره میکند.

حال اگر ما یک شی دیگر با نام دیگری بسازیم:

Human jack = new Human();

در حافظه یک شی دیگر ساخته شده که با tom فرق دارد و حتی آدرس آن نیز متفاوت است. این مفهوم کلی new کردن در جاوا بود. وقتی ما کلمه this در جاوا را استفاده میکنیم به آدرس حافظه آن شی میرود و متغییرهای درونی آن را میبیند.

تست this در جاوا

برای تست کد های بالا، کد main زیر را بزنید:

در کد بالا از constructor جدید که کلمه this در آن به کار بردیم استفاده کردیم. کد بالا پویاتر و ساده تر از قبل است. خروجی کد this در جاوا به صورت زیر است:

my Name is jack

i am 12 year old

my height is 1.3meter

———–

my Name is tom

i am 42 year old

my height is 1.7meter

پسورد: www.codegate.ir

 

دسته : java, آموزش قدم به قدم جاوا, جاوا, شی گرایی در جاوا

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz