menusearch
javapro.ir

♨️ جلسه نهم - اشیا و کلاس ها

جستجو
یکشنبه ۳۰ اردیبهشت ۱۴۰۳ | ۱۷:۳۲:۲۱
۱۳۹۵/۸/۱ شنبه
(20)
(0)
♨️ جلسه نهم - اشیا و کلاس ها
♨️ جلسه نهم - اشیا و کلاس ها

فهرست جلسات دوره مقدماتی جاوا

مقدمه اول | جاوا چیست؟

مقدمه دوم | تاریخچه جاوا

مقدمه سوم | ویژگی‌های زبان جاوا

جلسه اول | راهنمای دانلود و نصب JDK

جلسه دوم | اجرای یک برنامه جاوا در Notepad

جلسه سوم | راهنمای دانلود و نصب Eclipse

جلسه چهارم | ساخت اولین برنامه جاوا در Eclipse

جلسه پنجم | متغیر ها در جاوا

جلسه ششم | تغییر فونت محیط Eclipse

جلسه هفتم | عملگر‌های پایه ای جاوا

جلسه هشتم | دستورات شرطی

جلسه نهم | اشیا و کلاس ها

جلسه دهم | ورودی گرفتن

جلسه یازدهم | حلقه‌های کنترلی

جلسه دوازدهم | کلمه کلیدی static

جلسه سیزدهم | کلاس Math

جلسه چهاردهم | کلاس String

جلسه پانزدهم | آرایه‌های یک بعدی

جلسه شانزدهم | کنترل سطح دسرسی (Modifiers)

جلسه هفدهم | متدها در جاوا

جلسه هجدهم | کلمه کلیدی this

جلسه نوزدهم | کلاس‌های داخلی

جلسه بیستم | ارث بری در جاوا

جلسه بیست و یکم | کلمه کلیدی final

جلسه بیست و دوم | Overriding در جاوا

جلسه بیست و سوم | Polymorphism( چند ریختی)

جلسه بیست و چهارم | چندریختی را بهتر یادبگیرید

جلسه بیست و پنجم | Abstraction( انتزاع)

جلسه بیست و ششم | Encapsulation(کپسوله سازی)

جلسه بیست و هفتم | اینترفیس (Interface)

جلسه بیست و هشتم | کلاس Random

جلسه بیست و نهم | Exceptions (استثناها)

جلسه سی ام | کار با فایل در جاوا(Files and I/O)

جلسه سی و یکم | کلاس InputStreamReader

جلسه سی و دوم | کلاس OutputStreamWriter

جلسه سی و سوم | کلاس BufferedReader

جلسه سی و چهارم | کلاس BufferedWriter

جلسه سی و پنجم | Serialization در جاوا

جلسه سی و ششم | چندنخی(Multithreading)

جلسه سی و هفتم | آرایه دو بعدی در جاوا

جلسه سی و هشتم | کلاس ArrayList در جاوا

جلسه سی و نهم | Non Access Modifier در جاوا

 

 

 

 

 

دوره رایگان مقدماتی زبان جاوا

 

 

کلاس خصوصی برنامه نویسی جاوا(اینجا کلیک کن)

 

انجام پروژه برنامه نویسی جاوا(اینجا کلیک کن)

 

 

جلسه نهم - اشیا و کلاس ها


جاوایک زبان برنامه نویسی شی گرا (Object-Oriented) است.
ویژگی که زبان جاوا را قدرتمند و متمایز می‌کند همین ویژگی شی گرایی آن است.
زبان شی گرایی جاوا مفاهیم زیر را دنبال میکند:

در این فصل نگاهی به مفاهیم کلاس ها و شی ها می‌اندازیم.


شی (object)
اشیا مثل شی های دنیای واقعی ما حالت ها و رفتار هایی دارند!!!!


منظور از حالت ها و رفتار ها چیه؟!!!!!!! با یک مثال به این دو مفهوم پی می‌بریم!!!!

!
مثال: در دنیای واقعی هر چیزی یک شی در نظر گرفته می‌شود!!!!!!! مثل اتومبیل،موتورسیکلت،دوچرخه،خانه،اسلحه،هواپیما،جت،انواع حیوانات نظیر سگ،گربه،شیر،ماهی،مورچه و انسان ها و... شی حساب می‌شوند!!! درسته؟!!!!!!


خب حالا میخوایم به یکی از این شی ها مثلا سگ بپردازیم!!!


یک سگ حالت ها و رفتار های زیر را دارد!!!!!


حالت ها : هر سگ یک نام،رنگ،نژاد،سن،وزن،قد دارد.
رفتار ها: هر سگ واق واق میکند،غذا می‌خورد،آب می‌نوشید،حرکت می‌کند،می خوابد.


پس هر شی حالت ها و رفتار های مختص به خود را دارد.

  • حالت ها: به تمام ویژگی های یک شی که قابل مقدار دهی باشد گفته می‌شود. مثلا ما می‌توانیم به سن سگ مقدار بدهیم یا به نژاد سگ مقدار بدهیم و بگیم از کدام نژاد است.

 

  • رفتار ها: به تمام اعمالی که یک شی می‌تواند انجام دهد رفتار می‌گوییم.مثلا سگ عمل حرکت کردن و راه رفتن را دارد،عمل غذا خوردن،عمل واق واق کردن و... را دارد.

 

خب تا اینجا با حالت ها و رفتار های یک شی آشنا شدیم!!!


شی در برنامه نویسی چطور ساخته می‌شود؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


شی از کجا میاد؟!!!!!!!!!!!!!!!!!!!!


یادتون میاد ما در بخش متغیر ها می‌گفتیم فلان متغیر از چه نوعی هست؟!!!


مثلا متغیر a از نوع عدد صحیح است. یا متغیر b از نوع عدد اعشاری است به مثال زیر توجه کنید:


مثال :

 

int a;
char b;
float c;
double d;

 

•    متغیر a از نوع int (عدد صحیح) است.

 

 

•    متغیر b از نوع char (کارکتر) است.


•    متغیر c از نوع float (اعشاری) است.


•    متغیر d از نوع double (اعشاری) است.


  توجه کرده باشید یک متغیر هنگام تعریف ابتدا نوعش رو مشخص کردیم!!!! یعنی هر متغیر یکنوعی دارد!!!!


  خب حالا اینا چه ربطی به شی داره؟!!!!!!!!!!! صبر داشته باشید!!!!!!!! :-)


  شی هم یک نوع هست!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

 

 

 

 

 

 


  شی یک نوع از یک کلاس است!!!!!!!!!!!!


یعنی چی؟!!!!! یعنی شما هنگام ساختن یا تعریف یک شی مثل سایر متغیر ها که نوعش رو مشخص و برای مثال int,char,double و....قرار می‌دادید شی را از نوع یک کلاس تعریف میکنید یعنی می‌توانید نوعش رو نام یک کلاس قرار دهید!!!!


مثال تعریف یک شی:

 

className        objectName

 

خب میدونم هنوز مفاهیم واضع نشده!!!! نگران نباشید ادامه آموزش رو دنبال کنید یواش یواش مفاهیم روشن می‌شود!

 

 

کلاس (Class)
در جلسات اولیه آموزش تا حدودی در مورد کلاس و روش ساختن و ساختارش آشنا شدیم.
این که یک کلاس حاوی تمام دستورات برنامه ما است.
حالا با نگاهی موشکافانه تر کلاس را بررسی میکنیم:
یک کلاس قالبی است که تمام حالت ها و رفتار های یک شی را می‌تواند داشته باشد.!!!!
صبر داشته باشید!!!!! :-)


اشیا در جاوا (Objects in Java)
اجازه بدهید نگاهی عمیق به اشیا بیاندازیم.


در دنیای واقعی پیرامون ما تعداد زیادی اشیا یافت می‌شود.ماشین ها، سگ ها، انسان ها و...


همه این اشیا حالت و رفتار خاص خود را دارند.


اگر ما به یک سگ نگاهی بیاندازیم حالت هایش : رنگ، نژاد، نام و... رفتارهایش : راه رفتن، غذا خوردن، واق واق کردن و...است.


اگر ما شی نرم افزار را با یک شی در دنیای واقعی مقایسه کنیم مشاهده میکنیم که مشخصات هر دو شبیه به هم است.


اشیا نرم افزار نیز مانند اشیا دنیای واقعی حالت ها و رفتار هایی دارند.


حالت های اشیا یک نرم افزار درون متغیر ها (fields) ذخیره می‌شود و رفتار های آن با متدها (methods) نمایش داده می‌شود.


کلاس ها در جاوا (Classes in Java):
تا حدودی با کلاس ها طریقه ایجاد کلاس و کد زنی در متد main کلاس و اجرای برنامه در جلسات قبل آشنا شدیم.


حالا میخوایم جزیی تر به کلاس ها بپردازیم:
•    یک کلاس طرح یا نقشه منحصر به فرد اشیایی است که قرار بسازیم.


•    اگر خواستیم یک شی از دنیای واقعی رو بسازیم ابتدا کلاسش رو می‌سازیم که این کلاس حاوی حالت ها و رفتار های آن شی در دنیای واقعی است.


•    همان طور که گفتیم حالت ها همان ویژگی ها و متغیر ها در کلاس است و رفتار ها متد های درون کلاس.


بطور مثال اگر خواستیم یک سگ بسازیم!!!! بصورت زیر عمل میکنیم:


1.    ایجاد یک کلاس به نام سگ


2.    پیاده سازی ویژگی ها و متغیر ها (حالت های) سگ


3.    پیاده سازی رفتار ها(متد های) یک سگ


  💠یک نمونه از یک کلاس که در آن حالت ها(متغیرها) و رفتار ها(متدها) پیاده سازی شده در مثال زیر آورده شده است:

 

public class Dog{
     String breed;
     int age;
     String color;

     void barking(){
     }
      
     void hungry(){
     }
      
     void sleeping(){
     }
   }

 

•    کلاس یک سگ را مشاهده میکنید که در بدنه کلاس ویژگی ها(حالت ها) و متد ها (رفتار های ) آن پیاده سازی شده است.


•    حالت ها(ویژگی هایش) نوع نژاد، سن، رنگ و رفتارهایش (متدها) واق واق کردن ،گرسنگی ،خوابیدن است.


•    String ها یا همون رشته ها(متن) رو در جلسات قبل یکم اشنایی هنگام چاپ بهش اشنایی داریم این رو بدونید که String (رشته) خود نوعی برای تعریف متغیر هست که یک جلسه مخصوص بهش میپردازیم.


•    چون رنگ ها در قالب رشته می‌گنجند مثل blue یک متن یا کلمه هست باید از نوع String یا رشته تعریف شوند.


•    سن هم که همه می‌دونیم یک عدد هست اینم عدد صحیح کسی نمی‌تونه سنش اعشاری باشه!!! به همین دلیل از نوع int تعریفش کردیم.


•    اگر توجه کرده باشید این بار متغیر ها رو در بدنه کلاس و بلافاصله بعد از این که بلوک } کلاس باز شده تعریف کردیم، پس میشود متغیر ها رو علاوه بر درون متد main مستقیم در بدنه کلاس هم تعریف کنیم که جلوتر بهش می‌پردازیم که چرا و به چه دلیل این کار را انجام دادیم.


•    این سه متد هم سری کار برامون انجام میدن فعلا در حد این که نوعش که void هست و اسمش و محدودش مشخص کردیم، جلوتر بهش می‌پردازیم.


•    در پایان همه این دستورات در بدنه کلاس ما قرار دارند.

 

 

 

 

 

 

 

 

💡 یک کلاس شامل انواع متغیر های زیر است:


متغیر محلی(Local variables):


متغیر هایی که داخل متد ها (methods)،سازنده ها (constructors) یا بلوک ها تعریف می‌شوند متغیر محلی(local variables) نامیده می‌شوند.


💡 نکته: جلوتر به مفهوم سازنده ها (constructors) می‌پردازیم.


🔵 این متغیر ها در داخل متد ها تعریف و سپس مقدار دهی اولیه می‌شوند.


🔵 عمر و کارایی این متغیر ها تنها در محدوده بلوک {} متد ها است و خارج از متد کارایی ندارند، به همین دلیل بهشون محلی می‌گویند یعنی تنها بومی اون متد ها هستند و زبون هیچ کی جز افراد درون متد حالیشون نیست 😊😊😊


متغیر های نمونه (Instance variables):
به متغیر هایی که در داخل یک کلاس و بیرون متدها تعریف می‌شوند متغیرهای نمونه (Instance variables) گفته می‌شود.


🔵 این متغیر ها در بدنه کلاس می‌توانند مقدار دهی اولیه شوند.


🔵 متغیر های نمونه در داخل هر متد، سازنده (constructors)، بلوک ها و سایر کلاس ها قابل دسترسی است.

متغیر های کلاس (Class variables)


بدون مقدمه چینی و به زبان ساده بهتون بگم که همون متغیر های نمونه هستند تنها با این تفاوت که قبل تعریف نوعشون از کلمه کلیدی static استفاده میکنیم.


مثال:

 

static int a=50;


•    در جلسات آینده به تمامی کلمات کلیدی جاوا از جمله staticمی پردازیم.


•    دوستان جاوا خیلی مفاهیم زیاد داره هر جلسه جز به جز تمرین کنید مثال حل کنید و کمی صبر هم چاشنی کار قرار دهید راحت می‌تونید یاد بگیرید مفاهیم رو چون هیچ برنامه نویسی یک روزه برنامه نویس نشده!!!!


💡    هر کلاس می‌تواند به هر تعداد، انواعی از متد ها داخلش پیاده سازی شود.

 

...ادامه این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.



این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

آموزش آسان و ساده زبان برنامه نویسی جاوا

لینک دانلود

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرامما شوید.

instagram
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

10 نظر
میلاد رستمی
چهارشنبه هفتم دی ۰۱
پاسخ
(2)
()
میلاد رستمی
واقعا از صميم قلب تشکر ميکنم بابت تمام زحماتي که کشيديد ممنونم از راهنمايي و آموزش هاي عالي تون❤️❤️❤️❤️🥰🙏🌷
پاسخ مدیر سایت
خوش حالم مفید بوده از همراهی تون متشکرم :)
پاسخ مدیر سایت
پژمان
یکشنبه دهم بهمن ۰۰
پاسخ
(2)
()
پژمان
سلام دمتون گرم خيلي مرديت
پاسخ مدیر سایت
خوش حالم مورد توجه واقع شده :)...بقیه هم کامنت بذارید خو :)))))
پاسخ مدیر سایت
Solid friend
پنج شنبه پانزدهم اسفند ۹۸
پاسخ
(1)
(1)
Solid friend
از سايتاي زبون اصلي هم بهتر درس داديد ممنون که رايگان در اختيار ميذارين اين باعث ميشه اسم سايتتون موندگار بشه
پاسخ مدیر سایت
سلام.از نظر لطف و محبت شما ممنونم ;-)
پاسخ مدیر سایت
Ghazal
شنبه دهم اسفند ۹۸
پاسخ
()
(1)
Ghazal
عالييي✌ خدا قوت
پاسخ مدیر سایت
سلام.مرسیی از شما ;-)
پاسخ مدیر سایت
میلاد گوهریاب
پنج شنبه نوزدهم اردیبهشت ۹۸
پاسخ
(2)
(1)
میلاد گوهریاب
اين آموزش هايي که قرار داديد پيش نياز اندرويد اما براي يادگيري همين مباحثي که گلچين کرديد هم پيش نياز هست يا همينارو کارکنيم متوجه ميشيم چون يهو اولين مبحثي که قرار داديد جلسه نهم از جاوا هست يعني اون نه تاي ديگه نيازي نداره که بخونيم... ممنون از سايت خوبتوو وآموزشاي خوبتون
پاسخ مدیر سایت
سلام.این اموزش ها از جلسه اول برای یادگیری نسخه استاندارد و پایه جاوا و به صورت از صفر است یعنی نیازی نیست شما از قبل جاوا بلد باشید اما لازمه و پیشنیاز یادگیری جاوا آشنایی با یک زبان پایه نظیر c و آشنایی با الگوریتم و فلوچارت برای حل مسله می‌باشید.
پاسخ مدیر سایت
iman
شنبه یازدهم فروردین ۹۷
پاسخ
(2)
()
iman
جاي تشکر فراوان داره از شما وست عزيز.
میلاد
سه شنبه یکم اسفند ۹۶
پاسخ
(3)
()
میلاد
چقددددددر روون بود.خدا خيرتون بده تو هر سايتي رفتيم کلمات گنده گنده فقط استفاده ميکردن
ناشناس2
چهارشنبه نوزدهم مهر ۹۶
پاسخ
(2)
()
ناشناس2
خوب بود. سپاس
ابوالفضل شمس آبادی
سه شنبه چهاردهم شهریور ۹۶
پاسخ
(2)
()
ابوالفضل شمس آبادی
سپاس فراوان از زحماتتون...خیلی ساده و روان و مفید
پاسخ مدیر سایت
سلام.از نظر لطف شما سپاسگزارم
پاسخ مدیر سایت
سیما عطار
شنبه نهم اردیبهشت ۹۶
پاسخ
(4)
()
سیما عطار
این فصل رو شاهکار توضیح دادید. تبریک میگم به این ادبیات واضح و گیرا. ممنون از شما
پاسخ مدیر سایت
سلام.از نظر لطف و انرژی دادنتون ممنون و سپاسگزارم
پاسخ مدیر سایت
هدر سایت
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی