بخشی از پاورپوینت
اسلاید 1 :
امکانات شیءگرا در جاوا OOP in Java, a Deeper Look
اسلاید 2 :
حقوق مؤلف
کلیه حقوق این اثر متعلق به انجمن جاواکاپ است
بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است، با ذکر مرجع (جاواکاپ) بلامانع است
اگر این اثر توسط جاواکاپ به صورت عمومی منتشر نشده است و به صورت اختصاصی در اختیار شما یا شرکت شما قرار گرفته، بازنشر آن مجاز نیست
تغییر محتوای این اثر بدون اطلاع و تأیید انجمن جاواکاپ مجاز نیست
اسلاید 3 :
سرفصل مطالب
روش طبقهبندی کلاسها در جاوا
بسته (package)
سطوح دسترسی
Access Levels
مفهوم استاتیک (static)
کلیدواژه this
اسلاید 4 :
بسته Package
اسلاید 5 :
بسته (package)
یک بسته، شامل تعدادی کلاس است
بسته، امکانی برای طبقهبندی و گروهبندی کلاسهای جاوا است
مانند مفهوم شاخه (Folder) در مدیریت فایلها
هر بسته شامل کلاسهایی است که به یک دسته متعلق هستند
و یا کاربرد مشابهی دارند
بسته، یک فضای نامگذاری (namespace) یکتا برای کلاسها فراهم میکند
نام دقیق کلاس = نام بسته + نام کلاس
هر بسته میتواند شامل بستههای دیگر نیز باشد
سلسله مراتبی از بستهها
اسلاید 6 :
تعریف بسته
کلاسهای یک بسته در یک شاخه (Folder) نگهداری میشوند
برای تعريف یک بسته، کافیست یک شاخه جدید بسازیم
برای قرار دادن یک کلاس در یک بسته:
1- فایل کلاس را درون شاخه بسته قرار میدهیم
2- در متن برنامه کلاس، حضور این کلاس در آن بسته را تصریح میکنیم
در اولین خط از تعريف کلاس، با استفاده از دستور package
مثال package ir.javacup;
برای قرار دادن یک بسته در یک بسته دیگر
شاخه (Folder) بسته اول را درون شاخه بسته دوم قرار میدهیم
اسلاید 7 :
مثال
اسلاید 8 :
کلاسهای کامپایلشده (فایلهای .class) هم مانند متن برنامهها (فایلهای .java) داخل شاخهبندی بستهها قرار میگیرند
بستهها و شاخهها (Packages and Folders)
اسلاید 9 :
نامگذاری بستهها
هر شرکت یا گروه تولیدکننده نرمافزار، یک آدرس سایت دارد
یا دامنهای (آدرسی) برای خودش متصور است
مثال: google.com ، javacup.ir ، apache.org
یا taghitaghavi.ir
نحوه معمول نامگذاری بستهها : از کل به جزء
دامنه. شرکت . دپارتمان . پروژه . زیرمجموعه
مثال:
ir.javacup
org.apache.commons.io
اسلاید 10 :
استفاده از بستهها
اسلاید 11 :
نحوه استفاده از بستهها
روش اول: استفاده از نام کامل کلاسها
نام کامل کلاس = نام بسته + نقطه + نام کلاس
اسلاید 12 :
دستور import
روش دوم: استفاده از دستور import
نام کامل کلاس را در دستور import مشخص میکنیم
همه دستورهای import باید در ابتدای فایل (بعد از package) باشند
اسلاید 13 :
دستور import (ادامه)
ممکن است چند بار از import استفاده کنیم
اسلاید 14 :
دستور import (ادامه)
با کمک ستاره (*) همه کلاسهای یک بسته قابل استفاده میشوند
نکته: فقط همه کلاسهای همان بسته، و نه بستههای زیرمجموعه آن
اسلاید 15 :
چند بسته معروف در جاوا
java.lang
java.lang.String
java.lang.Math
java.util
java.util.Scanner
java.util.Arrays
java.io
java.sql
…
نکته:
بستهی java.lang به طور ضمنی import شده است
کلاسهای این بسته لازم نیست import شوند یا با نام کامل ذکر شوند
مثلاً String
اسلاید 16 :
نکته
دستور import فقط مربوط به کامپایلر است
کامپایلر جاوا با کمک این دستور، نام دقیق کلاسها را میفهمد
و نام کلاسها را با نام کامل آنها جایگزین میکند
دستور import در کلاس کامپایلشده دیده نمیشود
فایل .class یا bytecode
دستورهای import بلااستفاده هیچ تأثیری در زمان اجرا ندارد
فقط تأثیر بسيار ناچیزی بر روی کامپایلر دارند
البته (بیهوده) متن برنامه را طولانی میکنند
اسلاید 17 :
سطوح دسترسی Access Levels
اسلاید 18 :
سطوح دسترسی
سطح دسترسی به هر متد یا متغیر کلاس، توسط یک کلیدواژه قابل تعیین است
این کلید واژه: تعیین کننده دسترسی (Access Specifier یا Access Modifier)
تعیینکنندههای دسترسی: public ، private و حالت پیشفرض
عمومی (public)
از همه جا قابل دسترسی است. دسترسی به آن آزاد است
خصوصی (private)
دسترسی به آن فقط داخل همین کلاس ممکن است
حالت پیشفرض: عدم تعیین سطح دسترسی (package access)
دسترسی به آن فقط در داخل کلاسهای همین بسته ممکن است
دسترسی protected را نیز بعداً خواهیم دید
اسلاید 19 :
مثال
package ir.javacup.oop;
public class Person {
public String name;
private int birthyear;
boolean married;
void run(){}
public int getAge() {
return computeAge();
}
private int computeAge(){
return 2015-birthyear;
}
}
package ir.javacup.oop;
public class Util {
public void f(){
Person p = new Person();
p.married = true;
p.name = "Ali";
p.birthyear = 1992;
int age = p.getAge();
p.run();
age = p.computeAge();
}
}
اگر کلاس Util در بسته ir.javacup بود چطور؟
Syntax Error
اسلاید 20 :
سطح دسترسی به کلاس
سطوح دسترسی به متدها و ويژگیها را دیدیم
public, private, package access
سطوح دسترسی به کلاسها: public و package access
سطح private برای یک کلاس معنی ندارد (مگر برای کلاس داخلی که بعداً خواهیم دید)
بنابراین کلمه public میتواند برای تعریف کلاس ذکر نشود
چنین کلاسی فقط در کلاسهای همان بسته قابل استفاده است
در داخل یک فایل میتوانیم صفر یا چند کلاس غیرعمومی تعريف کنیم
هر فایل جاوا حداکثر یک کلاس عمومی دارد
کلاس عمومی، در صورت وجود، باید دقیقاً همنام فایل باشد
ممکن است یک فایل جاوا، کلاس عمومی نداشته باشد