SlideShare a Scribd company logo
‫شوهانی‬‫ی‬‫قنبر‬‫صادق‬
Sadegh.tkd@gmail.com
www.AndroidSoftware.ir
‫جاوا‬ ‫معرفی‬
‫توسط‬ ‫که‬ ‫است‬ ‫باال‬ ‫سطح‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫یک‬ ‫جاوا‬Sun
Microsystems‫در‬ ‫و‬ ‫شد‬ ‫داده‬ ‫توسعه‬1995‫شد‬ ‫منتشر‬.
‫قبیل‬ ‫از‬ ‫مختلف‬ ‫های‬ ‫پلتفرم‬ ‫روی‬ ‫بر‬ ‫جاوا‬Mac OS،Windows،
Linux‫و‬...‫شود‬ ‫می‬ ‫اجرا‬.
‫شیءگرا‬ ‫کامال‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫یک‬ ‫جاوا‬OOP‫است‬.
‫بس‬ ‫در‬ ‫و‬ ‫است‬ ‫قدرتمند‬ ‫حال‬ ‫عین‬ ‫در‬ ‫اما‬ ‫ساده‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫یک‬‫یاری‬
‫شبیه‬ ‫ها‬ ‫جنبه‬ ‫از‬C++‫است‬.
‫تبلت‬ ‫مانند‬ ‫مختلف‬ ‫دستگاههای‬ ‫در‬ ‫کامپیوترها‬ ‫بر‬ ‫عالوه‬ ‫اکنون‬ ‫جاوا‬،‫ها‬
‫و‬ ‫ها‬ ‫موبایل‬...‫شود‬ ‫می‬ ‫اجرا‬.
‫جاوا‬ ‫مجازی‬ ‫ماشین‬
‫خالف‬ ‫بر‬ ‫جاوا‬ ‫های‬ ‫برنامه‬C++‫مقصد‬ ‫ماشین‬ ‫کد‬ ‫بجای‬ ‫کامپایل‬ ‫هنگام‬ ،
‫شوند‬ ‫می‬ ‫ترجمه‬ ‫کدها‬ ‫بایت‬ ‫به‬.
‫شناسن‬ ‫می‬ ‫را‬ ‫ماشین‬ ‫زبان‬ ‫همان‬ ‫یا‬ ‫خود‬ ‫به‬ ‫مربوط‬ ‫کدهای‬ ‫فقط‬ ‫ها‬ ‫ماشین‬‫و‬ ‫د‬
‫نمایند‬ ‫اجرا‬ ‫را‬ ‫جاوا‬ ‫کدهای‬ ‫بایت‬ ‫توانند‬ ‫نمی‬.
JVM‫دارد‬ ‫را‬ ‫کدها‬ ‫بایت‬ ‫اجرای‬ ‫قابلیت‬.
Java Virtual Machine‫در‬ ‫دارد‬ ‫وجود‬ ‫مختلف‬ ‫های‬ ‫پلتفرم‬ ‫برای‬
‫عاملهای‬ ‫سیستم‬ ‫روی‬ ‫بر‬ ‫جاوا‬ ‫زبان‬ ‫به‬ ‫شده‬ ‫نوشته‬ ‫های‬ ‫برنامه‬ ‫نتیجه‬
‫پلتفرم‬ ‫از‬ ‫استقالل‬ ‫یعنی‬ ‫این‬ ‫و‬ ‫هستند‬ ‫اجرا‬ ‫قابل‬ ‫مختلف‬.
‫نویسی‬ ‫برنامه‬ ‫محیط‬
‫جاوا‬ ‫زبان‬ ‫به‬ ‫نویسی‬ ‫برنامه‬ ‫نیاز‬ ‫مورد‬ ‫ابزارهای‬:
‫مجتمع‬ ‫توسعه‬ ‫محیط‬(IDE)‫جاوا‬ ‫برای‬:
Eclipse
‫جاوا‬ ‫توسعه‬ ‫کیت‬(، ‫دیباگر‬ ، ‫کامپایلر‬ ‫شامل‬JRE‫و‬: )..
JDK
Hello, World!
‫زبان‬ ‫یک‬ ‫جاوا‬OOP‫جاوا‬ ‫در‬ ‫اشیاء‬ ،‫است‬classes‫شوند‬ ‫می‬ ‫خوانده‬.
‫بنام‬ ‫کالسی‬ ‫خط‬ ‫اولین‬Main‫کند‬ ‫می‬ ‫تعریف‬ ‫را‬.
‫بنام‬ ‫متدی‬ ‫خط‬ ‫دومین‬main‫یک‬ ‫ورودی‬ ‫نقطه‬ ‫تابع‬ ‫این‬ ‫کند‬ ‫می‬ ‫تعریف‬ ‫را‬
‫است‬ ‫جاوا‬ ‫برنامه‬.
Variables and Types
‫اولیه‬ ‫متغیرهای‬ ‫انواع‬:
‫متغیرها‬ ‫تعریف‬ ‫از‬ ‫مثالی‬:
‫ترکیبی‬ ‫روش‬
‫شرطی‬ ‫عبارات‬
‫کند‬ ‫می‬ ‫استفاده‬ ‫شرطها‬ ‫ارزیابی‬ ‫برای‬ ‫بولی‬ ‫متغیرهای‬ ‫از‬ ‫جاوا‬:
‫مقدار‬ ‫دو‬ ‫بولی‬ ‫عبارت‬ ‫یک‬true‫یا‬false‫بگیرد‬ ‫تواند‬ ‫می‬ ‫را‬.
‫عبارت‬if – else:
‫بولی‬ ‫عملگرهای‬
‫کرد‬ ‫استفاده‬ ‫توان‬ ‫می‬ ‫مقادیر‬ ‫ارزیابی‬ ‫برای‬ ‫زیر‬ ‫عملگرهای‬ ‫از‬:
‫ها‬ ‫آرایه‬
‫س‬ ‫و‬ ‫تعریف‬ ‫باید‬ ‫ابتدا‬ ‫بنابراین‬ ‫هستند‬ ‫اشیاء‬ ‫همانند‬ ‫جاوا‬ ‫در‬ ‫ها‬ ‫آرایه‬‫پس‬
‫شوند‬ ‫ایجاد‬:
‫آرایه‬ ‫اندازه‬ ‫آوردن‬ ‫بدست‬:arr.length
‫آرایه‬ ‫یک‬ ‫عناصر‬ ‫دهی‬ ‫مقدار‬:
‫تکرار‬ ‫های‬ ‫حلقه‬
‫داریم‬ ‫جاوا‬ ‫در‬ ‫حلقه‬ ‫نوع‬ ‫دو‬for‫و‬while.
for(int i=1 ; i<=5 ; i++)
{
//statement to loop
}
‫تعداد‬ ‫به‬ ‫شوند‬ ‫نوشته‬ ‫فوق‬ ‫ی‬ ‫حلقه‬ ‫بلوک‬ ‫داخل‬ ‫در‬ ‫که‬ ‫دستوراتی‬5‫بار‬
‫شوند‬ ‫می‬ ‫اجرا‬.
‫ی‬ ‫حلقه‬while
‫ی‬ ‫حلقه‬ ‫از‬ ‫ای‬ ‫نمونه‬while:
while (a<=5)
{
//statement for loop
}
‫شوند‬ ‫اجرا‬ ‫یکبار‬ ‫حداقل‬ ‫حلقه‬ ‫داخل‬ ‫دستورات‬ ‫بخواهیم‬ ‫اگر‬:
do
{
}while(a <=5)
‫دستور‬break‫و‬continue
‫دستور‬ ‫از‬break‫شود‬ ‫می‬ ‫استفاده‬ ‫حلقه‬ ‫از‬ ‫خروج‬ ‫و‬ ‫فوری‬ ‫توقف‬ ‫برای‬.
‫دستور‬continue‫بعدی‬ ‫تکرار‬ ‫به‬ ‫و‬ ‫متوقف‬ ‫را‬ ‫حلقه‬ ‫جاری‬ ‫تکرار‬ ،
‫کند‬ ‫می‬ ‫منتقل‬.
‫گرا‬ ‫شی‬ ‫نویسی‬ ‫برنامه‬ OOP
‫ی‬ ‫مختلف‬ ‫های‬ ‫بخش‬ ‫توان‬ ‫می‬ ‫واقعی‬ ‫دنیای‬ ‫همانند‬ ، ‫جاوا‬ ‫برنامه‬ ‫یک‬ ‫در‬‫ک‬
‫گرفت‬ ‫نظر‬ ‫در‬ ‫اشیاء‬ ‫بصورت‬ ‫را‬ ‫برنامه‬.‫میخ‬ ‫ما‬ ‫برنامه‬ ‫مثال‬ ‫بعنوان‬‫واهد‬
‫مورد‬ ‫در‬ ‫اطالعاتی‬‫خودرو‬ ‫تولید‬ ‫خط‬‫نتیجه‬ ‫در‬ ، ‫نماید‬ ‫نگهداری‬ ‫را‬
‫و‬ ‫کارگران‬ ، ‫قطعات‬ ، ‫خودرو‬...‫توانند‬ ‫می‬ ‫ما‬ ‫ی‬ ‫برنامه‬ ‫اشیاء‬ ‫بعنوان‬
‫شوند‬ ‫می‬ ‫تعریف‬.
‫باشد‬ ‫داشته‬ ‫رفتارهایی‬ ‫و‬ ‫ها‬ ‫ویژگی‬ ‫تواند‬ ‫می‬ ‫ء‬ ‫شی‬ ‫هر‬.
‫و‬ ‫تولید‬ ‫سال‬ ، ‫مدل‬ ، ‫رنگ‬ ‫مانند‬ ‫هایی‬ ‫ویژگی‬ ‫خودرو‬ ‫مثال‬ ‫بعنوان‬...‫ر‬‫ا‬
‫خاموش‬ ، ‫کردن‬ ‫حرکت‬ ، ‫زدن‬ ‫استارت‬ ‫مانند‬ ‫رفتارهایی‬ ‫همچنین‬ ‫و‬ ‫دارد‬
‫و‬ ‫شدن‬...‫دارد‬ ‫را‬.
‫جاوا‬ ‫در‬ ‫گرایی‬ ‫شیء‬
‫شوند‬ ‫می‬ ‫تعریف‬ ‫کالسها‬ ‫ی‬ ‫بوسیله‬ ‫جاوا‬ ‫در‬ ‫اشیاء‬.
‫ایم‬ ‫کرده‬ ‫تعریف‬ ‫شیء‬ ‫یک‬ ‫بعنوان‬ ‫را‬ ‫خودرو‬ ‫زیر‬ ‫مثال‬ ‫در‬:
‫کالس‬ ‫در‬car‫متغیرهای‬ ،color،model‫و‬year‫ء‬ ‫شی‬ ‫های‬ ‫ویژگی‬
‫متدهای‬ ‫و‬ ‫شوند‬ ‫می‬Start‫و‬Run‫آن‬ ‫رفتارهای‬ ‫بعنوان‬.
‫اشیاء‬ ‫ایجاد‬
‫ی‬ ‫بوسیله‬class‫هر‬ ‫از‬ ‫استفاده‬ ‫برای‬ ‫شود‬ ‫می‬ ‫تعریف‬ ‫شیء‬ ‫کلی‬ ‫قالب‬
‫شود‬ ‫ایجاد‬ ‫باید‬ ‫ابتدا‬ ‫شیء‬.
‫کالس‬ ‫از‬ ‫مثال‬ ‫بعنوان‬car‫کنیم‬ ‫می‬ ‫ایجاد‬ ‫شی‬ ‫یک‬ ‫زیر‬ ‫دستور‬ ‫بوسیله‬:
Car myCar = new Car();
‫یا‬ ‫سازی‬ ‫نمونه‬ ‫اشیاء‬ ‫ایجاد‬ ‫به‬Instance‫شود‬ ‫می‬ ‫گفته‬ ‫نیز‬.‫کلیدی‬ ‫کلمه‬
new‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫شیء‬ ‫از‬ ‫سازی‬ ‫نمونه‬ ‫جاوا‬ ‫در‬.
‫کالس‬ ‫یک‬ ‫از‬ ‫ء‬ ‫شی‬ ‫یک‬ ‫سازی‬ ‫نمونه‬ ‫کلی‬ ‫فرمت‬:
ClassName variableName = new ClassName();
‫اشیاء‬ ‫با‬ ‫کار‬(Objects)
‫دسترسی‬ ‫آن‬ ‫رفتارهای‬ ‫و‬ ‫ها‬ ‫ویژگی‬ ‫به‬ ‫توانیم‬ ‫می‬ ‫ء‬ ‫شی‬ ‫ایجاد‬ ‫از‬ ‫پس‬‫پیدا‬
‫مدل‬ ‫با‬ ‫خودرو‬ ‫یک‬ ‫زیر‬ ‫دستورات‬ ‫مثال‬ ‫بطور‬ ، ‫کنیم‬Benz‫رنگ‬ ‫و‬red
‫کند‬ ‫می‬ ‫ایجاد‬ ‫حافظه‬ ‫در‬:
Car myCar = new Car();
myCar.color = “red”;
myCar.model = “Benz”
myCar.year = 2012
‫متدی‬ ‫فراخوانی‬(‫رفتاری‬)‫شده‬ ‫تعریف‬ ‫ء‬ ‫شی‬ ‫از‬:
myCar.Start();
‫دسترسی‬ ‫سطح‬
‫کلیدی‬ ‫ی‬ ‫کلمه‬ ‫دو‬ ‫ی‬ ‫بوسیله‬ ‫کالس‬ ‫هر‬ ‫متدهای‬ ‫و‬ ‫متغیرها‬ ‫تعریف‬ ‫در‬
public‫و‬private‫نمود‬ ‫تعریف‬ ‫دسترسی‬ ‫سطح‬ ‫توان‬ ‫می‬.
public(‫عمومی‬: )‫که‬ ‫متدی‬ ‫یا‬ ‫متغیر‬public‫و‬ ‫داخل‬ ‫از‬ ‫شود‬ ‫تعریف‬
‫است‬ ‫دسترسی‬ ‫قابل‬ ‫کالس‬ ‫بیرون‬.
private(‫خصوصی‬: )‫متدی‬ ‫یا‬ ‫متغیر‬private‫که‬ ‫کالسی‬ ‫داخل‬ ‫در‬ ‫فقط‬
‫است‬ ‫دسترسی‬ ‫قابل‬ ‫شده‬ ‫تعریف‬.
‫کالس‬ ‫در‬ ‫مثال‬ ‫بطور‬car‫متد‬ ،Start‫بصورت‬ ‫را‬public‫تعریف‬
‫کالس‬ ‫از‬ ‫بیرون‬ ‫تا‬ ‫ایم‬ ‫نموده‬car‫باشیم‬ ‫داشته‬ ‫را‬ ‫آن‬ ‫فراخوانی‬ ‫امکان‬.
‫نگاه‬ ‫یک‬ ‫در‬ ‫دسترسی‬ ‫سطوح‬
‫توابع‬ ‫و‬ ‫متدها‬ ‫تعریف‬
‫کنیم‬ ‫می‬ ‫تعریف‬ ‫زیر‬ ‫فرمت‬ ‫به‬ ‫ها‬ ‫کالس‬ ‫داخل‬ ‫در‬ ‫را‬ ‫توابع‬ ‫و‬ ‫متدها‬:
public void myMethod ( )
{
}
‫دسترسی‬ ‫سطح‬
Public
‫یا‬
Private
‫بازگشتی‬ ‫مقدار‬ ‫نوع‬
int
byte
‫و‬...
‫برای‬ ‫دلخواه‬ ‫نام‬
‫تابع‬
‫های‬ ‫آرگومان‬
‫ورودی‬
‫نیاز‬ ‫صورت‬ ‫در‬
‫متدها‬ ‫مورد‬ ‫در‬ ‫نکاتی‬
‫آن‬ ‫بازگشتی‬ ‫مقدار‬ ‫که‬ ‫متدی‬void‫متد‬ ‫این‬ ‫یعنی‬ ‫شود‬ ‫گرفته‬ ‫نظر‬ ‫در‬
‫گرداند‬ ‫نمی‬ ‫بر‬ ‫را‬ ‫مقداری‬.
‫که‬ ‫توابعی‬ ‫در‬ ‫مقادیر‬ ‫برگشت‬void‫دستور‬ ‫توسط‬ ‫نیستند‬return‫انجام‬
‫شود‬ ‫می‬.
‫مثال‬:
public double PI()
{
return 3.1415;
{
‫سازنده‬ ‫متد‬ (Constructor)
‫باشد‬ ‫نداشته‬ ‫برگشتی‬ ‫مقدار‬ ‫و‬ ‫شود‬ ‫تعریف‬ ‫کالس‬ ‫با‬ ‫نام‬ ‫هم‬ ‫که‬ ‫متدی‬.
‫شود‬ ‫می‬ ‫فراخوانی‬ ‫خودکار‬ ‫بطور‬ ،‫شی‬ ‫یک‬ ‫ایجاد‬ ‫زمان‬ ‫در‬.
‫کالس‬ ‫در‬ ‫مثال‬ ‫بعنوان‬Car‫با‬ ‫داشته‬ ‫زیر‬ ‫شکل‬ ‫به‬ ‫سازنده‬ ‫متد‬ ‫یک‬ ‫توانیم‬ ‫می‬‫شیم‬:
public Car ()
{
year = 0 ;
}
‫نوع‬ ‫از‬ ‫شی‬ ‫یک‬ ‫ایجاد‬ ‫محض‬ ‫به‬car‫متغیر‬ ‫به‬ ‫و‬ ‫شده‬ ‫اجرا‬ ‫فوق‬ ‫تابع‬year
‫دهد‬ ‫می‬ ‫را‬ ‫صفر‬ ‫مقدار‬.
‫است‬ ‫آبجکت‬ ‫داخل‬ ‫متغیرهای‬ ‫ی‬ ‫اولیه‬ ‫مقداردهی‬ ‫برای‬ ‫بیشتر‬ ‫سازنده‬ ‫متد‬ ‫از‬‫فاده‬
‫شود‬ ‫می‬.
setter & getter
‫از‬ ‫یکی‬ ‫کدها‬ ‫سایر‬ ‫از‬ ‫کالس‬ ‫داخل‬ ‫متغیرهای‬ ‫محافظت‬ ‫و‬ ‫سازی‬ ‫مخفی‬
‫است‬ ‫گرا‬ ‫شیء‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫سازی‬ ‫کپسوله‬ ‫اصول‬.‫تعریف‬ ‫با‬‫یک‬
‫بصورت‬ ‫متغیر‬private‫شود‬ ‫می‬ ‫انجام‬ ‫محفاظت‬ ‫این‬.
‫یک‬ ‫معموال‬ ، ‫کالس‬ ‫بیرون‬ ‫از‬ ‫خصوصی‬ ‫متغیرهای‬ ‫به‬ ‫دسترسی‬ ‫برای‬‫متد‬
setter‫متد‬ ‫یک‬ ‫و‬ ‫نوشتن‬ ‫برای‬getter‫متغیر‬ ‫مقدار‬ ‫خواندن‬ ‫برای‬
‫بصورت‬public‫شوند‬ ‫می‬ ‫تعریف‬.
‫متد‬ ‫روبرو‬ ‫مثال‬ ‫در‬getName‫نقش‬getter‫و‬
‫متد‬setName‫نقش‬setter‫کنند‬ ‫می‬ ‫ایفا‬ ‫را‬.
‫وراثت‬
‫یک‬ ‫در‬ ‫را‬ ‫موجود‬ ‫کالس‬ ‫کد‬ ‫از‬ ‫مجدد‬ ‫استفاده‬ ‫ی‬ ‫اجازه‬ ‫شما‬ ‫به‬ ‫جاوا‬ ‫در‬ ‫وراثت‬
‫دهد‬ ‫می‬ ‫دیگر‬ ‫کالس‬.
‫ج‬ ‫کالس‬ ‫به‬ ‫که‬ ‫کرد‬ ‫مشتق‬ ‫موجود‬ ‫کالس‬ ‫یک‬ ‫از‬ ‫را‬ ‫جدید‬ ‫کالس‬ ‫یک‬ ‫توان‬ ‫می‬‫دید‬
derived class‫شده‬ ‫بری‬ ‫ارث‬ ‫آن‬ ‫از‬ ‫که‬ ‫کالسی‬ ‫به‬ ‫و‬super class‫می‬ ‫گفته‬
‫کالس‬ ‫های‬ ‫ویژگی‬ ‫جدید‬ ‫کالس‬ ‫و‬ ‫شود‬super‫برد‬ ‫می‬ ‫ارث‬ ‫به‬ ‫را‬.
‫کلیدی‬ ‫کلمه‬ ‫ی‬ ‫بوسیله‬ ‫جاوا‬ ‫در‬extends‫شود‬ ‫می‬ ‫انجام‬ ‫بری‬ ‫ارث‬.
‫مستندات‬ ‫از‬oracle:
A subclass inherits all the members (fields, methods, and nested classes) from
its superclass. Constructors are not members, so they are not inherited by
subclasses, but the constructor of the superclass can be invoked from the
subclass.
‫بری‬ ‫ارث‬ ‫مثال‬
‫بعن‬ ‫دو‬ ‫هر‬ ‫کنیم‬ ‫تعریف‬ ‫استاد‬ ‫و‬ ‫دانشجو‬ ‫برای‬ ‫کالسهایی‬ ‫خواهیم‬ ‫می‬‫وان‬
‫فرد‬ ‫اطالعات‬ ‫بنابراین‬ ‫هستند‬ ‫فردی‬ ‫مشخصات‬ ‫دارای‬ ‫شخصیت‬ ‫یک‬‫ی‬
‫و‬ ‫خانوادگی‬ ‫نام‬ ، ‫نام‬ ‫مانند‬...‫است‬ ‫مشترک‬ ‫آنها‬ ‫بین‬.‫تو‬ ‫می‬ ‫نتیجه‬ ‫در‬‫انیم‬
‫بنام‬ ‫اصلی‬ ‫کالس‬ ‫یک‬Person‫مان‬ ‫مشترک‬ ‫فیلدهای‬ ‫شامل‬ ‫که‬ ‫کنیم‬ ‫ایجاد‬‫ند‬
‫ش‬ ‫مشتق‬ ‫کالس‬ ‫این‬ ‫از‬ ‫استاد‬ ‫و‬ ‫دانشجو‬ ‫های‬ ‫کالس‬ ‫و‬ ‫باشد‬ ‫فامیل‬ ‫و‬ ‫نام‬‫وند‬
‫نتیجه‬ ‫در‬Student‫و‬Teacher‫کالسهای‬ ‫بعنوان‬derived‫و‬
Person‫کالس‬super‫آید‬ ‫می‬ ‫حساب‬ ‫به‬ ‫ما‬ ‫برنامه‬.
‫کالس‬Person
‫کالس‬Super‫کنیم‬ ‫می‬ ‫تعریف‬ ‫زیر‬ ‫بصورت‬ ‫را‬:
public class Person {
String name;
String family;
{
‫کالس‬Student
public class Student extends Person{
int studentNo; //‫دانشجویی‬ ‫شماره‬
{
‫دانشجوی‬ ‫شماره‬ ‫فیلد‬ ‫فقط‬ ، ‫است‬ ‫دانشجو‬ ‫به‬ ‫مربوط‬ ‫که‬ ‫فوق‬ ‫کالس‬ ‫در‬‫را‬ ‫ی‬
‫ر‬ ‫خانوادگی‬ ‫نام‬ ‫و‬ ‫نام‬ ‫مانند‬ ‫مشترک‬ ‫فیلدهای‬ ‫سایر‬ ، ‫کنیم‬ ‫می‬ ‫اضافه‬‫از‬ ‫ا‬
‫کالس‬super‫برد‬ ‫می‬ ‫ارث‬ ‫به‬.
‫کالس‬Teacher
public class Teacher extends Person {
int employeeNO; //‫کارمندی‬ ‫شماره‬
float salary; //‫دریافتی‬ ‫حقوق‬
{
‫از‬ ‫را‬ ‫خانوادگی‬ ‫نام‬ ‫و‬ ‫نام‬ ‫فیلدهای‬ ‫نیز‬ ‫استاد‬ ‫کالس‬Person‫ارث‬ ‫به‬‫برد‬ ‫می‬
‫نیست‬ ‫آنها‬ ‫مجدد‬ ‫تعریف‬ ‫به‬ ‫نیازی‬ ‫و‬.
‫چندریختی‬Polymorphism
‫به‬ ‫که‬ ‫است‬ ‫گرایی‬ ‫شی‬ ‫قابلیتهای‬ ‫از‬ ‫یکی‬ ‫نیز‬ ‫چندریختی‬SubClasses
(‫شده‬ ‫مشتق‬ ‫های‬ ‫کالس‬)‫فردشان‬ ‫به‬ ‫منحصر‬ ‫رفتارهای‬ ‫تعریف‬ ‫امکان‬‫را‬
‫کالس‬ ‫که‬ ‫رفتارهایی‬ ‫بر‬ ‫عالوه‬Super(‫والد‬)‫گذاشته‬ ‫اشتراک‬ ‫به‬ ‫برایشان‬
‫دهد‬ ‫می‬ ‫را‬ ‫است‬.
‫کالس‬ ‫در‬ ‫مثال‬ ‫بعنوان‬Person‫بعنوان‬ ‫متدی‬ ‫توانیم‬ ‫می‬print‫داشته‬
‫مشتق‬ ‫های‬ ‫کالس‬ ‫در‬ ‫و‬ ‫کند‬ ‫چاپ‬ ‫را‬ ‫فرد‬ ‫خانوادگی‬ ‫نام‬ ‫و‬ ‫نام‬ ‫که‬ ‫باشیم‬‫شده‬
‫چا‬ ‫بر‬ ‫عالوه‬ ‫و‬ ‫شود‬ ‫تعریف‬ ‫کالس‬ ‫هر‬ ‫کاربرد‬ ‫اساس‬ ‫بر‬ ‫متد‬ ‫این‬ ‫نیز‬‫پ‬
‫فرد‬ ‫مشخصات‬(‫متد‬ ‫طریق‬ ‫از‬super.print())‫را‬ ‫مشخصاتش‬ ‫سایر‬ ،
‫کند‬ ‫چاپ‬ ‫نیز‬.
‫مثال‬
‫کالس‬Person:
‫کالس‬Student:
Overloading Methods
‫پارامتر‬ ‫بودن‬ ‫متفاوت‬ ‫صورت‬ ‫در‬ ‫نام‬ ‫هم‬ ‫متدهای‬ ‫تعریف‬ ‫امکان‬ ‫جاوا‬ ‫در‬‫ها‬
‫گویند‬ ‫می‬ ‫متد‬ ‫سربارگذاری‬ ‫قابلیت‬ ‫این‬ ‫به‬ ‫دارد‬ ‫وجود‬.
‫مثال‬:
‫متدهای‬ ‫و‬ ‫ها‬ ‫کالس‬Final
‫بصورت‬ ‫متد‬ ‫یک‬ ‫تعریف‬final‫بازنویسی‬ ‫از‬(Overriding)‫در‬ ‫متد‬ ‫آن‬
‫کند‬ ‫می‬ ‫جلوگیری‬ ‫شده‬ ‫مشتق‬ ‫های‬ ‫کالس‬.
‫بصورت‬ ‫کالس‬ ‫یک‬ ‫تعریف‬final‫نیست‬ ‫بری‬ ‫ارث‬ ‫قابل‬ ‫کالس‬ ‫یعنی‬ ،.
‫مثال‬:
final void myMethod()
{
}
Interface
‫شود‬ ‫می‬ ‫اطالق‬ ‫بدنه‬ ‫بدون‬ ‫مرتبط‬ ‫متدهای‬ ‫از‬ ‫گروهی‬ ‫به‬ ‫اینترفیس‬ ‫یک‬.‫وق‬‫که‬ ‫تی‬
‫سازی‬ ‫پیاده‬ ‫را‬ ‫اینترفیسی‬ ، ‫کالس‬ ‫یک‬(Implements)‫سازی‬ ‫فراهم‬ ، ‫کند‬ ‫می‬
‫شود‬ ‫می‬ ‫متعهد‬ ‫را‬ ‫اینترفیس‬ ‫آن‬ ‫رفتارهای‬.‫کلی‬ ‫مجموعه‬ ، ‫واقعی‬ ‫دنیای‬ ‫در‬‫دهای‬
‫کا‬ ‫بین‬ ‫ارتباط‬ ‫برقراری‬ ‫برای‬ ‫اینترفیس‬ ‫نوعی‬ ‫تلویزیون‬ ‫جعبه‬ ‫روی‬‫و‬ ‫ربر‬
‫هستند‬ ‫تلویزیون‬ ‫کنترل‬ ‫جهت‬ ‫داخلی‬ ‫مدارات‬.
interface Car
{
void start();
void run();
void trunOff();
}
‫اینترفیس‬ ‫سازی‬ ‫پیاده‬
‫کنیم‬ ‫می‬ ‫سازی‬ ‫پیاده‬ ‫زیر‬ ‫کالس‬ ‫در‬ ‫را‬ ‫قبل‬ ‫مثال‬ ‫اینترفیس‬:
class Automobile implements Car
{
public void start(){
system.out.println(“Car is started.”);
}
public void run(){
system.out.println(“Car is running.”);
}
public void trunOff(){
system.out.println(“Car is turned off.”);
}
}
‫سایت‬ ‫وب‬ ‫مستندات‬ ‫از‬Oracle‫اینترفیس‬ ‫مورد‬ ‫در‬:
Implementing an interface allows a class to become
more formal about the behavior it promises to provide.
Interfaces form a contract between the class and the
outside world, and this contract is enforced at build
time by the compiler. If your class claims to implement
an interface, all methods defined by that interface
must appear in its source code before the class will
successfully compile.
Generics
‫جاوا‬ ‫در‬ ‫جنریک‬ ‫قابلیتهای‬ ‫از‬:
‫اشیا‬ ‫از‬ ‫مختلفی‬ ‫انواع‬ ‫روی‬ ‫بر‬ ‫که‬ ‫کالسهایی‬ ‫و‬ ‫متدها‬ ‫تعریف‬ ‫امکان‬‫عمل‬ ‫ء‬
‫کنند‬ ‫می‬.
‫اج‬ ‫زمان‬ ‫خطاهای‬ ‫بروز‬ ‫از‬ ‫که‬ ، ‫کامپایل‬ ‫هنگام‬ ‫در‬ ‫انواع‬ ‫قویتر‬ ‫بررسی‬‫را‬
‫ح‬ ‫دو‬ ‫با‬ ‫زیر‬ ‫کد‬ ‫قطعه‬ ‫دو‬ ‫مثال‬ ‫بطور‬ ،‫کند‬ ‫می‬ ‫جلوگیری‬ ‫زیادی‬ ‫حد‬ ‫تا‬‫الت‬
‫اند‬ ‫شده‬ ‫نوشته‬ ‫جنریک‬ ‫و‬ ‫غیرجنریک‬:
‫جنریک‬ ‫کالس‬ ‫تعریف‬
public class Box<T>
{
private T t;
public void set(T t) {
this.t = t;
}
public T get() {
return t;
}
}
‫جنریک‬ ‫از‬ ‫استفاده‬ ‫نحوه‬
‫مقدار‬ ‫خواندن‬ ‫و‬ ‫دهی‬ ‫مقدار‬ ، ‫قبل‬ ‫مثال‬ ‫جنریک‬ ‫کالس‬ ‫از‬ ‫نمونه‬ ‫ایجاد‬:
Box<String> boxStr = new Box<String>();
boxStr.set(“Hello”);
String valStr = boxStr.get();
Box<Integer> boxInt = new Box<Integer>();
boxInt.set(4520);
int val = boxInt . get();
Collections
‫خو‬ ‫داخل‬ ‫در‬ ‫را‬ ‫نوع‬ ‫هم‬ ‫عناصر‬ ‫که‬ ‫باشد‬ ‫می‬ ‫شیء‬ ‫یکی‬ ، ‫کالکشن‬ ‫یک‬‫د‬
‫است‬ ‫نموده‬ ‫گروهبندی‬.‫ایمیل‬ ‫ی‬ ‫پوشه‬ ‫یک‬ ‫مثال‬ ‫بطور‬(‫از‬ ‫ای‬ ‫مجموعه‬
‫ها‬ ‫نامه‬.)
‫ها‬ ‫مجموعه‬ ‫مزایای‬:
‫نویسی‬ ‫برنامه‬ ‫های‬ ‫تالش‬ ‫کاهش‬:‫و‬ ‫ای‬ ‫داده‬ ‫ساختارهای‬ ‫سازی‬ ‫فراهم‬ ‫با‬
‫مفید‬ ‫های‬ ‫الگوریتم‬
‫برنامه‬ ‫کیفیت‬ ‫و‬ ‫سرعت‬ ‫افزایش‬:‫الگوری‬ ‫باالی‬ ‫کیفیت‬ ‫و‬ ‫کارایی‬‫پیاده‬ ‫های‬ ‫تم‬
‫ها‬ ‫مجموعه‬ ‫در‬ ‫شده‬ ‫سازی‬
‫یادگیری‬ ‫به‬ ‫نیاز‬ ‫کاهش‬APIs‫جدید‬:‫از‬ ، ‫ها‬ ‫کالکشن‬ ‫بودن‬ ‫جنریک‬ ‫بدلیل‬
‫نمود‬ ‫استفاده‬ ‫ها‬ ‫آبجکت‬ ‫انواع‬ ‫روی‬ ‫بر‬ ‫توان‬ ‫می‬ ‫آنها‬ ‫امکانات‬.
‫جاوا‬ ‫در‬ ‫ها‬ ‫مجموعه‬ ‫انواع‬
Collection:‫هاست‬ ‫مجموعه‬ ‫مراتب‬ ‫سلسله‬ ‫ریشه‬.
Set:‫عناصر‬ ‫شامل‬ ‫که‬ ‫ای‬ ‫مجموعه‬(elements)‫باشد‬ ‫تواند‬ ‫نمی‬ ‫تکراری‬.
List:‫پذیرد‬ ‫می‬ ‫نیز‬ ‫را‬ ‫تکراری‬ ‫عناصر‬ ‫که‬ ‫منظم‬ ‫ای‬ ‫مجموعه‬.
Queue:‫عموما‬(‫لزوما‬ ‫نه‬)‫شکل‬ ‫به‬ ‫عناصر‬FIFO
(First Input First Output)‫شوند‬ ‫می‬ ‫مرتب‬.
Deque:‫بعنوان‬ ‫هم‬FIFO‫بصورت‬ ‫هم‬ ‫و‬LIFO،
(Last In First Out)‫شود‬ ‫استفاده‬ ‫تواند‬ ‫می‬.
Map:‫مقداری‬ ‫کلید‬ ‫های‬ ‫جفت‬(Keys & Values)‫دهد‬ ‫می‬ ‫نگاشت‬ ‫هم‬ ‫به‬ ‫را‬.
‫پذیرد‬ ‫نمی‬ ‫را‬ ‫تکراری‬ ‫کلیدهای‬.
‫ها‬ ‫مجموعه‬ ‫از‬ ‫استفاده‬
‫مجموعه‬ ‫یک‬ ‫تعریف‬:
List<String> myList = new ArrayList<String>();
List<Teacher> teacherList = new ArrayList<Teacher>();
‫به‬ ‫عنصر‬ ‫یک‬ ‫کردن‬ ‫اضافه‬myList:
myList.add(“hello List”);
‫به‬ ‫عنصر‬ ‫یک‬ ‫کردن‬ ‫اضافه‬teacherList:
Teacher te = new Teacher();
teacherList.add (te);
‫مجموعه‬ ‫در‬ ‫عناصر‬ ‫تعداد‬ ‫آوردن‬ ‫بدست‬:
int count = teacherList.size();
‫ها‬ ‫مجموعه‬ ‫پیمایش‬
‫ساختار‬ ‫بوسیله‬for-each‫پیمایش‬ ‫را‬ ‫ها‬ ‫آرایه‬ ‫و‬ ‫ها‬ ‫مجموعه‬ ‫توان‬ ‫می‬
‫نمود‬.
‫کلی‬ ‫ساختار‬for-each:
for (Object o : Collection)
System.out.println(o);
‫مثال‬:
For(Teacher te : teacherList)
System.out.println( te.getName() );
‫خطاها‬ ‫مدیریت‬(Exceptions)
‫از‬ ‫جاوا‬exception‫استثنائی‬ ‫رخدادهای‬ ‫سایر‬ ‫و‬ ‫خطاها‬ ‫مدیریت‬ ‫برای‬ ‫ها‬
‫کند‬ ‫می‬ ‫استفاده‬.
‫بلوک‬ ‫ی‬ ‫بوسیله‬ ‫را‬ ‫دارند‬ ‫خطا‬ ‫ایجاد‬ ‫احتمال‬ ‫که‬ ‫کدهایی‬Try-Catch‫می‬ ‫احاطه‬
‫را‬ ‫خطا‬ ‫بتوان‬ ‫و‬ ‫نشده‬ ‫مشکل‬ ‫دچار‬ ‫برنامه‬ ، ‫خطا‬ ‫بروز‬ ‫صورت‬ ‫در‬ ‫تا‬ ‫کنند‬
‫نمود‬ ‫مدیریت‬.
‫ی‬ ‫بوسیله‬ ‫کد‬ ‫احاطه‬ ‫کلی‬ ‫قالب‬Try-Catch:
try{
// Code may generate errors
}catch(Exception ex)
{
}
‫استثناء‬ ‫مدیریت‬ ‫مثال‬
‫ک‬ ‫صورتی‬ ‫در‬ ‫کند‬ ‫می‬ ‫اشاره‬ ‫آرایه‬ ‫یک‬ ‫چهارم‬ ‫عنصر‬ ‫به‬ ، ‫زیر‬ ‫کد‬ ‫قطعه‬‫ه‬
‫اجرا‬ ‫زمان‬ ‫خطای‬ ‫نتیجه‬ ‫در‬ ‫است‬ ‫عنصر‬ ‫سه‬ ‫دارای‬ ‫نظر‬ ‫مورد‬ ‫ی‬ ‫آرایه‬
‫ی‬ ‫بوسیله‬ ‫که‬ ‫دهد‬ ‫می‬ ‫رخ‬Try-Catch‫است‬ ‫شده‬ ‫مدیریت‬ ‫خطا‬ ‫این‬.
‫زمانی‬ ‫هم‬ ‫نویسی‬ ‫برنامه‬
‫همزمان‬ ‫سیستم‬(Concurrent System)‫محاسبه‬ ‫یک‬ ‫که‬ ‫است‬ ‫جایی‬ ،
‫شود‬ ‫اجرا‬ ‫دیگر‬ ‫ی‬ ‫محاسبه‬ ‫یک‬ ‫اتمام‬ ‫از‬ ‫قبل‬ ‫تواند‬ ‫می‬.
، ‫زمانی‬ ‫هم‬ ‫نویسی‬ ‫برنامه‬ ‫در‬processes‫و‬threads‫اجرای‬ ‫اساس‬
‫هستند‬ ‫برنامه‬.
Process:‫هستند‬ ‫کامپیوتر‬ ‫در‬ ‫اجرایی‬ ‫های‬ ‫برنامه‬ ‫همان‬ ‫پردازشها‬.
Thread:‫اصلی‬ ‫ریسمان‬ ‫یک‬ ‫حداقل‬ ‫پردازش‬ ‫هر‬(Main Thread)
‫ایجاد‬ ‫ای‬ ‫جداگانه‬ ‫های‬ ‫ریسمان‬ ‫همزمان‬ ‫کارهای‬ ‫برای‬ ‫تواند‬ ‫می‬ ‫و‬ ‫دارد‬
‫کند‬.‫مناب‬ ‫به‬ ‫نیاز‬ ‫جدید‬ ‫پردازش‬ ‫ایجاد‬ ‫به‬ ‫نسبت‬ ‫جدید‬ ‫ریسمان‬ ‫ایجاد‬‫کمتری‬ ‫ع‬
‫دارد‬.
‫ریسمانی‬ ‫چند‬ ‫اجرای‬(MultiThreaded)‫ضروری‬ ‫های‬ ‫قابلیت‬ ‫از‬
‫باشد‬ ‫می‬ ‫جاوا‬.
Threads Objects
‫کالس‬ ‫از‬ ‫نمونه‬ ‫یک‬ ‫به‬ ‫ریسمان‬ ‫هر‬Thread‫باشد‬ ‫می‬ ‫مرتبط‬.
‫هر‬ ‫برای‬ ‫بسادگی‬ ، ‫تردها‬ ‫مدیریت‬ ‫و‬ ‫ایجاد‬ ‫بر‬ ‫مستقیم‬ ‫کنترل‬ ‫برای‬‫کار‬
‫غیرهمزمان‬(asynchronous)‫کالس‬ ‫از‬ ‫نمونه‬ ‫یک‬Thread‫ایجاد‬
‫کنید‬.
‫اجرایی‬ ‫کد‬ ‫باید‬ ‫کند‬ ‫می‬ ‫ایجاد‬ ‫را‬ ‫ترد‬ ‫کالس‬ ‫از‬ ‫ای‬ ‫نمونه‬ ‫که‬ ‫ای‬ ‫برنامه‬‫که‬
‫کند‬ ‫فراهم‬ ‫را‬ ‫ریسمان‬ ‫در‬.‫است‬ ‫انجام‬ ‫قابل‬ ‫روش‬ ‫دو‬ ‫به‬ ‫کار‬ ‫این‬:
1. Runnable Object
2. Subclass Thread
Runnable
‫سازی‬ ‫پیاده‬ ‫با‬ ‫ترد‬ ‫یک‬ ‫ایجاد‬Runnable:
public class HelloRunnable implements Runnable
{
public void run() {
System.out.println("Hello from a thread!");
}
}
SubClass Thread
‫کالس‬ ‫از‬ ‫بری‬ ‫ارث‬ ‫با‬ ‫ترد‬ ‫یک‬ ‫ایجاد‬Thread:
public class HelloThread extends Thread
{
public void run()
{
System.out.println("Hello from a thread!");
}
}
‫ریسمان‬ ‫اجرای‬
‫ترد‬ ‫اجرای‬ ‫مثال‬HelloRunnable:
HelloRunnable helloRunnableA = new HelloRunnable ();
Thread t = new Thread( helloRunnableA );
t.start();
‫ترد‬ ‫اجرای‬ ‫مثال‬HelloThread:
HelloThread t = new HelloThread ();
t.start();
Runnable ‫یا‬ Thread
1) Implementing Runnable is the preferred way to do it. Here, you’re not really specializing
or modifying the thread’s behavior. You’re just giving the thread something to run. That
means composition is the better way to go.
2) Java only supports single inheritance, so you can only extend one class.
3) Instantiating an interface gives a cleaner separation between your code and the
implementation of threads.
4) Implementing Runnable makes your class more flexible. If you extend thread then the
action you’re doing is always going to be in a thread. However, if you extend Runnable it
doesn’t have to be. You can run it in a thread, or pass it to some kind of executor service,
or just pass it around as a task within a single threaded application.
5) By extending Thread, each of your threads has a unique object associated with it, whereas
implementing Runnable, many threads can share the same runnable instance.
‫جاوا‬ ‫در‬ ‫فایلها‬ ‫با‬ ‫کار‬
‫مسیر‬ ‫یک‬ ‫در‬ ‫های‬ ‫پوشه‬ ‫و‬ ‫فایلها‬ ‫لیست‬ ‫آوردن‬ ‫بدست‬:
File myFile = new File("C:" + File.separator);
String[] filesList = myFile.list();
‫مسیر‬ ‫یک‬ ‫در‬ ‫فایل‬ ‫یک‬ ‫وجود‬ ‫بررسی‬:
File mfile = new File("C:Windows", "notepad.exe");
boolean isExist = mfile .exists();
‫فایل‬ ‫وجود‬notepad.exe‫مسیر‬ ‫در‬ ‫را‬C:Windows‫میکند‬ ‫چک‬.
‫عملکرد‬‫متد‬ ‫نام‬
‫مسیر‬ ‫در‬ ‫شده‬ ‫مشخص‬ ‫فولدر‬ ‫یا‬ ‫فایل‬ ‫حذف‬delete()
‫از‬ ‫خواندن‬ ‫امکان‬ ‫آیا‬‫دارد‬ ‫وجود‬ ‫فایل‬canRead()
‫فایل‬ ‫در‬ ‫تغییر‬ ‫امکان‬ ‫آیا‬‫دارد‬ ‫وجود‬canWrite()
‫جدید‬ ‫فولدر‬ ‫یک‬ ‫ایجاد‬mkdir()
‫فایل‬ ‫نام‬ ‫تغییر‬renameTo(dest)
‫فایل‬ ‫نام‬ ‫آوردن‬ ‫بدست‬getName()
‫فایلهای‬‫کند‬ ‫می‬ ‫لیست‬ ‫را‬ ‫مسیر‬ ‫یک‬listFiles()
‫کالس‬ ‫متدهای‬ ‫از‬ ‫برخی‬File
‫کالس‬ ‫از‬ ‫آبجکت‬ ‫یک‬ ‫باید‬ ‫زیر‬ ‫متدهای‬ ‫از‬ ‫استفاده‬ ‫برای‬File‫نمایید‬ ‫ایجاد‬ ‫زیر‬ ‫شکل‬ ‫به‬:
File myFile = ne w File (Path );
‫فایل‬ ‫از‬ ‫اطالعات‬ ‫خواندن‬
‫کالس‬ ‫از‬ ‫استفاده‬ ‫با‬FileInputStream‫آورد‬ ‫بدست‬ ‫را‬ ‫فایل‬ ‫یک‬ ‫محتوای‬ ‫توان‬ ‫می‬.
‫مثال‬:‫بنام‬ ‫متنی‬ ‫فایل‬ ‫یک‬ ‫محتوای‬ ‫خواندن‬test.txt:
try {
File myfile = new File("D:","test.txt");
FileInputStream fi = new FileInputStream(myfile );
byte[] bt = new byte[ fi.available() ];
fi.read(bt, 0, bt.length);
fi.close();
String s = new String( bt );
System.out.println(s);
} catch (Exception e) {
e.printStackTrace();
}

More Related Content

Similar to آشنایی با زبان جاوا - مقدماتی اندروید

Javascript
JavascriptJavascript
Javascript
javadboroji
 
Java programming languages
Java programming languagesJava programming languages
Java programming languages
javadib
 
Jozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedyJozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedy
danesh_fd
 
Kotlin
KotlinKotlin
android_test_approach
android_test_approachandroid_test_approach
android_test_approach
Sadegh Saberi
 
AngularJS
AngularJSAngularJS
Docker
DockerDocker
Node js-&-express-hassan-tafreshi-persian-lan
Node js-&-express-hassan-tafreshi-persian-lanNode js-&-express-hassan-tafreshi-persian-lan
Node js-&-express-hassan-tafreshi-persian-lan
Hassan Tafreshi
 
Pg autoscaling in ceph
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in ceph
Yashar Esmaildokht
 
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمیاسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
Vahid Hashemi
 
MIPS and QtSpim
MIPS and QtSpimMIPS and QtSpim
MIPS and QtSpim
Mohammad Kadkhodaei
 
rbdmap in ceph
rbdmap in ceph rbdmap in ceph
rbdmap in ceph
Yashar Esmaildokht
 
Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Oracle Data Integrator (persian)
Oracle Data Integrator (persian)
Ehsan Hamzei
 
Advance programming c++
Advance programming c++Advance programming c++
Advance programming c++
AliNazarizadeh
 
Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2
Yashar Esmaildokht
 
Design Patterns چیست و به چه دردی می خورد؟ (persian)
Design Patterns  چیست و به چه دردی می خورد؟ (persian)Design Patterns  چیست و به چه دردی می خورد؟ (persian)
Design Patterns چیست و به چه دردی می خورد؟ (persian)
Mahmoud Masih Tehrani
 
how enable ceph dashboard
how enable  ceph dashboardhow enable  ceph dashboard
how enable ceph dashboard
Yashar Esmaildokht
 
Scrum Presentation
Scrum PresentationScrum Presentation
Scrum Presentation
S.Mostafa Sayyedi
 

Similar to آشنایی با زبان جاوا - مقدماتی اندروید (20)

Javascript
JavascriptJavascript
Javascript
 
Java programming languages
Java programming languagesJava programming languages
Java programming languages
 
Jozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedyJozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedy
 
Kotlin
KotlinKotlin
Kotlin
 
android_test_approach
android_test_approachandroid_test_approach
android_test_approach
 
AngularJS
AngularJSAngularJS
AngularJS
 
Docker
DockerDocker
Docker
 
Node js-&-express-hassan-tafreshi-persian-lan
Node js-&-express-hassan-tafreshi-persian-lanNode js-&-express-hassan-tafreshi-persian-lan
Node js-&-express-hassan-tafreshi-persian-lan
 
MongoDB
MongoDBMongoDB
MongoDB
 
Pg autoscaling in ceph
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in ceph
 
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمیاسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
 
MIPS and QtSpim
MIPS and QtSpimMIPS and QtSpim
MIPS and QtSpim
 
rbdmap in ceph
rbdmap in ceph rbdmap in ceph
rbdmap in ceph
 
Oracle Data Integrator (persian)
Oracle Data Integrator (persian)Oracle Data Integrator (persian)
Oracle Data Integrator (persian)
 
Advance programming c++
Advance programming c++Advance programming c++
Advance programming c++
 
Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2
 
Design Patterns چیست و به چه دردی می خورد؟ (persian)
Design Patterns  چیست و به چه دردی می خورد؟ (persian)Design Patterns  چیست و به چه دردی می خورد؟ (persian)
Design Patterns چیست و به چه دردی می خورد؟ (persian)
 
how enable ceph dashboard
how enable  ceph dashboardhow enable  ceph dashboard
how enable ceph dashboard
 
Amjadi - Ebook 5 - Function - v1
Amjadi - Ebook 5 - Function - v1Amjadi - Ebook 5 - Function - v1
Amjadi - Ebook 5 - Function - v1
 
Scrum Presentation
Scrum PresentationScrum Presentation
Scrum Presentation
 

آشنایی با زبان جاوا - مقدماتی اندروید

  • 2. ‫جاوا‬ ‫معرفی‬ ‫توسط‬ ‫که‬ ‫است‬ ‫باال‬ ‫سطح‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫یک‬ ‫جاوا‬Sun Microsystems‫در‬ ‫و‬ ‫شد‬ ‫داده‬ ‫توسعه‬1995‫شد‬ ‫منتشر‬. ‫قبیل‬ ‫از‬ ‫مختلف‬ ‫های‬ ‫پلتفرم‬ ‫روی‬ ‫بر‬ ‫جاوا‬Mac OS،Windows، Linux‫و‬...‫شود‬ ‫می‬ ‫اجرا‬. ‫شیءگرا‬ ‫کامال‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫یک‬ ‫جاوا‬OOP‫است‬. ‫بس‬ ‫در‬ ‫و‬ ‫است‬ ‫قدرتمند‬ ‫حال‬ ‫عین‬ ‫در‬ ‫اما‬ ‫ساده‬ ‫نویسی‬ ‫برنامه‬ ‫زبان‬ ‫یک‬‫یاری‬ ‫شبیه‬ ‫ها‬ ‫جنبه‬ ‫از‬C++‫است‬. ‫تبلت‬ ‫مانند‬ ‫مختلف‬ ‫دستگاههای‬ ‫در‬ ‫کامپیوترها‬ ‫بر‬ ‫عالوه‬ ‫اکنون‬ ‫جاوا‬،‫ها‬ ‫و‬ ‫ها‬ ‫موبایل‬...‫شود‬ ‫می‬ ‫اجرا‬.
  • 3. ‫جاوا‬ ‫مجازی‬ ‫ماشین‬ ‫خالف‬ ‫بر‬ ‫جاوا‬ ‫های‬ ‫برنامه‬C++‫مقصد‬ ‫ماشین‬ ‫کد‬ ‫بجای‬ ‫کامپایل‬ ‫هنگام‬ ، ‫شوند‬ ‫می‬ ‫ترجمه‬ ‫کدها‬ ‫بایت‬ ‫به‬. ‫شناسن‬ ‫می‬ ‫را‬ ‫ماشین‬ ‫زبان‬ ‫همان‬ ‫یا‬ ‫خود‬ ‫به‬ ‫مربوط‬ ‫کدهای‬ ‫فقط‬ ‫ها‬ ‫ماشین‬‫و‬ ‫د‬ ‫نمایند‬ ‫اجرا‬ ‫را‬ ‫جاوا‬ ‫کدهای‬ ‫بایت‬ ‫توانند‬ ‫نمی‬. JVM‫دارد‬ ‫را‬ ‫کدها‬ ‫بایت‬ ‫اجرای‬ ‫قابلیت‬. Java Virtual Machine‫در‬ ‫دارد‬ ‫وجود‬ ‫مختلف‬ ‫های‬ ‫پلتفرم‬ ‫برای‬ ‫عاملهای‬ ‫سیستم‬ ‫روی‬ ‫بر‬ ‫جاوا‬ ‫زبان‬ ‫به‬ ‫شده‬ ‫نوشته‬ ‫های‬ ‫برنامه‬ ‫نتیجه‬ ‫پلتفرم‬ ‫از‬ ‫استقالل‬ ‫یعنی‬ ‫این‬ ‫و‬ ‫هستند‬ ‫اجرا‬ ‫قابل‬ ‫مختلف‬.
  • 4. ‫نویسی‬ ‫برنامه‬ ‫محیط‬ ‫جاوا‬ ‫زبان‬ ‫به‬ ‫نویسی‬ ‫برنامه‬ ‫نیاز‬ ‫مورد‬ ‫ابزارهای‬: ‫مجتمع‬ ‫توسعه‬ ‫محیط‬(IDE)‫جاوا‬ ‫برای‬: Eclipse ‫جاوا‬ ‫توسعه‬ ‫کیت‬(، ‫دیباگر‬ ، ‫کامپایلر‬ ‫شامل‬JRE‫و‬: ).. JDK
  • 5. Hello, World! ‫زبان‬ ‫یک‬ ‫جاوا‬OOP‫جاوا‬ ‫در‬ ‫اشیاء‬ ،‫است‬classes‫شوند‬ ‫می‬ ‫خوانده‬. ‫بنام‬ ‫کالسی‬ ‫خط‬ ‫اولین‬Main‫کند‬ ‫می‬ ‫تعریف‬ ‫را‬. ‫بنام‬ ‫متدی‬ ‫خط‬ ‫دومین‬main‫یک‬ ‫ورودی‬ ‫نقطه‬ ‫تابع‬ ‫این‬ ‫کند‬ ‫می‬ ‫تعریف‬ ‫را‬ ‫است‬ ‫جاوا‬ ‫برنامه‬.
  • 6. Variables and Types ‫اولیه‬ ‫متغیرهای‬ ‫انواع‬: ‫متغیرها‬ ‫تعریف‬ ‫از‬ ‫مثالی‬: ‫ترکیبی‬ ‫روش‬
  • 7. ‫شرطی‬ ‫عبارات‬ ‫کند‬ ‫می‬ ‫استفاده‬ ‫شرطها‬ ‫ارزیابی‬ ‫برای‬ ‫بولی‬ ‫متغیرهای‬ ‫از‬ ‫جاوا‬: ‫مقدار‬ ‫دو‬ ‫بولی‬ ‫عبارت‬ ‫یک‬true‫یا‬false‫بگیرد‬ ‫تواند‬ ‫می‬ ‫را‬. ‫عبارت‬if – else:
  • 8. ‫بولی‬ ‫عملگرهای‬ ‫کرد‬ ‫استفاده‬ ‫توان‬ ‫می‬ ‫مقادیر‬ ‫ارزیابی‬ ‫برای‬ ‫زیر‬ ‫عملگرهای‬ ‫از‬:
  • 9. ‫ها‬ ‫آرایه‬ ‫س‬ ‫و‬ ‫تعریف‬ ‫باید‬ ‫ابتدا‬ ‫بنابراین‬ ‫هستند‬ ‫اشیاء‬ ‫همانند‬ ‫جاوا‬ ‫در‬ ‫ها‬ ‫آرایه‬‫پس‬ ‫شوند‬ ‫ایجاد‬: ‫آرایه‬ ‫اندازه‬ ‫آوردن‬ ‫بدست‬:arr.length ‫آرایه‬ ‫یک‬ ‫عناصر‬ ‫دهی‬ ‫مقدار‬:
  • 10. ‫تکرار‬ ‫های‬ ‫حلقه‬ ‫داریم‬ ‫جاوا‬ ‫در‬ ‫حلقه‬ ‫نوع‬ ‫دو‬for‫و‬while. for(int i=1 ; i<=5 ; i++) { //statement to loop } ‫تعداد‬ ‫به‬ ‫شوند‬ ‫نوشته‬ ‫فوق‬ ‫ی‬ ‫حلقه‬ ‫بلوک‬ ‫داخل‬ ‫در‬ ‫که‬ ‫دستوراتی‬5‫بار‬ ‫شوند‬ ‫می‬ ‫اجرا‬.
  • 11. ‫ی‬ ‫حلقه‬while ‫ی‬ ‫حلقه‬ ‫از‬ ‫ای‬ ‫نمونه‬while: while (a<=5) { //statement for loop } ‫شوند‬ ‫اجرا‬ ‫یکبار‬ ‫حداقل‬ ‫حلقه‬ ‫داخل‬ ‫دستورات‬ ‫بخواهیم‬ ‫اگر‬: do { }while(a <=5)
  • 12. ‫دستور‬break‫و‬continue ‫دستور‬ ‫از‬break‫شود‬ ‫می‬ ‫استفاده‬ ‫حلقه‬ ‫از‬ ‫خروج‬ ‫و‬ ‫فوری‬ ‫توقف‬ ‫برای‬. ‫دستور‬continue‫بعدی‬ ‫تکرار‬ ‫به‬ ‫و‬ ‫متوقف‬ ‫را‬ ‫حلقه‬ ‫جاری‬ ‫تکرار‬ ، ‫کند‬ ‫می‬ ‫منتقل‬.
  • 13. ‫گرا‬ ‫شی‬ ‫نویسی‬ ‫برنامه‬ OOP ‫ی‬ ‫مختلف‬ ‫های‬ ‫بخش‬ ‫توان‬ ‫می‬ ‫واقعی‬ ‫دنیای‬ ‫همانند‬ ، ‫جاوا‬ ‫برنامه‬ ‫یک‬ ‫در‬‫ک‬ ‫گرفت‬ ‫نظر‬ ‫در‬ ‫اشیاء‬ ‫بصورت‬ ‫را‬ ‫برنامه‬.‫میخ‬ ‫ما‬ ‫برنامه‬ ‫مثال‬ ‫بعنوان‬‫واهد‬ ‫مورد‬ ‫در‬ ‫اطالعاتی‬‫خودرو‬ ‫تولید‬ ‫خط‬‫نتیجه‬ ‫در‬ ، ‫نماید‬ ‫نگهداری‬ ‫را‬ ‫و‬ ‫کارگران‬ ، ‫قطعات‬ ، ‫خودرو‬...‫توانند‬ ‫می‬ ‫ما‬ ‫ی‬ ‫برنامه‬ ‫اشیاء‬ ‫بعنوان‬ ‫شوند‬ ‫می‬ ‫تعریف‬. ‫باشد‬ ‫داشته‬ ‫رفتارهایی‬ ‫و‬ ‫ها‬ ‫ویژگی‬ ‫تواند‬ ‫می‬ ‫ء‬ ‫شی‬ ‫هر‬. ‫و‬ ‫تولید‬ ‫سال‬ ، ‫مدل‬ ، ‫رنگ‬ ‫مانند‬ ‫هایی‬ ‫ویژگی‬ ‫خودرو‬ ‫مثال‬ ‫بعنوان‬...‫ر‬‫ا‬ ‫خاموش‬ ، ‫کردن‬ ‫حرکت‬ ، ‫زدن‬ ‫استارت‬ ‫مانند‬ ‫رفتارهایی‬ ‫همچنین‬ ‫و‬ ‫دارد‬ ‫و‬ ‫شدن‬...‫دارد‬ ‫را‬.
  • 14. ‫جاوا‬ ‫در‬ ‫گرایی‬ ‫شیء‬ ‫شوند‬ ‫می‬ ‫تعریف‬ ‫کالسها‬ ‫ی‬ ‫بوسیله‬ ‫جاوا‬ ‫در‬ ‫اشیاء‬. ‫ایم‬ ‫کرده‬ ‫تعریف‬ ‫شیء‬ ‫یک‬ ‫بعنوان‬ ‫را‬ ‫خودرو‬ ‫زیر‬ ‫مثال‬ ‫در‬: ‫کالس‬ ‫در‬car‫متغیرهای‬ ،color،model‫و‬year‫ء‬ ‫شی‬ ‫های‬ ‫ویژگی‬ ‫متدهای‬ ‫و‬ ‫شوند‬ ‫می‬Start‫و‬Run‫آن‬ ‫رفتارهای‬ ‫بعنوان‬.
  • 15. ‫اشیاء‬ ‫ایجاد‬ ‫ی‬ ‫بوسیله‬class‫هر‬ ‫از‬ ‫استفاده‬ ‫برای‬ ‫شود‬ ‫می‬ ‫تعریف‬ ‫شیء‬ ‫کلی‬ ‫قالب‬ ‫شود‬ ‫ایجاد‬ ‫باید‬ ‫ابتدا‬ ‫شیء‬. ‫کالس‬ ‫از‬ ‫مثال‬ ‫بعنوان‬car‫کنیم‬ ‫می‬ ‫ایجاد‬ ‫شی‬ ‫یک‬ ‫زیر‬ ‫دستور‬ ‫بوسیله‬: Car myCar = new Car(); ‫یا‬ ‫سازی‬ ‫نمونه‬ ‫اشیاء‬ ‫ایجاد‬ ‫به‬Instance‫شود‬ ‫می‬ ‫گفته‬ ‫نیز‬.‫کلیدی‬ ‫کلمه‬ new‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫شیء‬ ‫از‬ ‫سازی‬ ‫نمونه‬ ‫جاوا‬ ‫در‬. ‫کالس‬ ‫یک‬ ‫از‬ ‫ء‬ ‫شی‬ ‫یک‬ ‫سازی‬ ‫نمونه‬ ‫کلی‬ ‫فرمت‬: ClassName variableName = new ClassName();
  • 16. ‫اشیاء‬ ‫با‬ ‫کار‬(Objects) ‫دسترسی‬ ‫آن‬ ‫رفتارهای‬ ‫و‬ ‫ها‬ ‫ویژگی‬ ‫به‬ ‫توانیم‬ ‫می‬ ‫ء‬ ‫شی‬ ‫ایجاد‬ ‫از‬ ‫پس‬‫پیدا‬ ‫مدل‬ ‫با‬ ‫خودرو‬ ‫یک‬ ‫زیر‬ ‫دستورات‬ ‫مثال‬ ‫بطور‬ ، ‫کنیم‬Benz‫رنگ‬ ‫و‬red ‫کند‬ ‫می‬ ‫ایجاد‬ ‫حافظه‬ ‫در‬: Car myCar = new Car(); myCar.color = “red”; myCar.model = “Benz” myCar.year = 2012 ‫متدی‬ ‫فراخوانی‬(‫رفتاری‬)‫شده‬ ‫تعریف‬ ‫ء‬ ‫شی‬ ‫از‬: myCar.Start();
  • 17. ‫دسترسی‬ ‫سطح‬ ‫کلیدی‬ ‫ی‬ ‫کلمه‬ ‫دو‬ ‫ی‬ ‫بوسیله‬ ‫کالس‬ ‫هر‬ ‫متدهای‬ ‫و‬ ‫متغیرها‬ ‫تعریف‬ ‫در‬ public‫و‬private‫نمود‬ ‫تعریف‬ ‫دسترسی‬ ‫سطح‬ ‫توان‬ ‫می‬. public(‫عمومی‬: )‫که‬ ‫متدی‬ ‫یا‬ ‫متغیر‬public‫و‬ ‫داخل‬ ‫از‬ ‫شود‬ ‫تعریف‬ ‫است‬ ‫دسترسی‬ ‫قابل‬ ‫کالس‬ ‫بیرون‬. private(‫خصوصی‬: )‫متدی‬ ‫یا‬ ‫متغیر‬private‫که‬ ‫کالسی‬ ‫داخل‬ ‫در‬ ‫فقط‬ ‫است‬ ‫دسترسی‬ ‫قابل‬ ‫شده‬ ‫تعریف‬. ‫کالس‬ ‫در‬ ‫مثال‬ ‫بطور‬car‫متد‬ ،Start‫بصورت‬ ‫را‬public‫تعریف‬ ‫کالس‬ ‫از‬ ‫بیرون‬ ‫تا‬ ‫ایم‬ ‫نموده‬car‫باشیم‬ ‫داشته‬ ‫را‬ ‫آن‬ ‫فراخوانی‬ ‫امکان‬.
  • 18. ‫نگاه‬ ‫یک‬ ‫در‬ ‫دسترسی‬ ‫سطوح‬
  • 19. ‫توابع‬ ‫و‬ ‫متدها‬ ‫تعریف‬ ‫کنیم‬ ‫می‬ ‫تعریف‬ ‫زیر‬ ‫فرمت‬ ‫به‬ ‫ها‬ ‫کالس‬ ‫داخل‬ ‫در‬ ‫را‬ ‫توابع‬ ‫و‬ ‫متدها‬: public void myMethod ( ) { } ‫دسترسی‬ ‫سطح‬ Public ‫یا‬ Private ‫بازگشتی‬ ‫مقدار‬ ‫نوع‬ int byte ‫و‬... ‫برای‬ ‫دلخواه‬ ‫نام‬ ‫تابع‬ ‫های‬ ‫آرگومان‬ ‫ورودی‬ ‫نیاز‬ ‫صورت‬ ‫در‬
  • 20. ‫متدها‬ ‫مورد‬ ‫در‬ ‫نکاتی‬ ‫آن‬ ‫بازگشتی‬ ‫مقدار‬ ‫که‬ ‫متدی‬void‫متد‬ ‫این‬ ‫یعنی‬ ‫شود‬ ‫گرفته‬ ‫نظر‬ ‫در‬ ‫گرداند‬ ‫نمی‬ ‫بر‬ ‫را‬ ‫مقداری‬. ‫که‬ ‫توابعی‬ ‫در‬ ‫مقادیر‬ ‫برگشت‬void‫دستور‬ ‫توسط‬ ‫نیستند‬return‫انجام‬ ‫شود‬ ‫می‬. ‫مثال‬: public double PI() { return 3.1415; {
  • 21. ‫سازنده‬ ‫متد‬ (Constructor) ‫باشد‬ ‫نداشته‬ ‫برگشتی‬ ‫مقدار‬ ‫و‬ ‫شود‬ ‫تعریف‬ ‫کالس‬ ‫با‬ ‫نام‬ ‫هم‬ ‫که‬ ‫متدی‬. ‫شود‬ ‫می‬ ‫فراخوانی‬ ‫خودکار‬ ‫بطور‬ ،‫شی‬ ‫یک‬ ‫ایجاد‬ ‫زمان‬ ‫در‬. ‫کالس‬ ‫در‬ ‫مثال‬ ‫بعنوان‬Car‫با‬ ‫داشته‬ ‫زیر‬ ‫شکل‬ ‫به‬ ‫سازنده‬ ‫متد‬ ‫یک‬ ‫توانیم‬ ‫می‬‫شیم‬: public Car () { year = 0 ; } ‫نوع‬ ‫از‬ ‫شی‬ ‫یک‬ ‫ایجاد‬ ‫محض‬ ‫به‬car‫متغیر‬ ‫به‬ ‫و‬ ‫شده‬ ‫اجرا‬ ‫فوق‬ ‫تابع‬year ‫دهد‬ ‫می‬ ‫را‬ ‫صفر‬ ‫مقدار‬. ‫است‬ ‫آبجکت‬ ‫داخل‬ ‫متغیرهای‬ ‫ی‬ ‫اولیه‬ ‫مقداردهی‬ ‫برای‬ ‫بیشتر‬ ‫سازنده‬ ‫متد‬ ‫از‬‫فاده‬ ‫شود‬ ‫می‬.
  • 22. setter & getter ‫از‬ ‫یکی‬ ‫کدها‬ ‫سایر‬ ‫از‬ ‫کالس‬ ‫داخل‬ ‫متغیرهای‬ ‫محافظت‬ ‫و‬ ‫سازی‬ ‫مخفی‬ ‫است‬ ‫گرا‬ ‫شیء‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫سازی‬ ‫کپسوله‬ ‫اصول‬.‫تعریف‬ ‫با‬‫یک‬ ‫بصورت‬ ‫متغیر‬private‫شود‬ ‫می‬ ‫انجام‬ ‫محفاظت‬ ‫این‬. ‫یک‬ ‫معموال‬ ، ‫کالس‬ ‫بیرون‬ ‫از‬ ‫خصوصی‬ ‫متغیرهای‬ ‫به‬ ‫دسترسی‬ ‫برای‬‫متد‬ setter‫متد‬ ‫یک‬ ‫و‬ ‫نوشتن‬ ‫برای‬getter‫متغیر‬ ‫مقدار‬ ‫خواندن‬ ‫برای‬ ‫بصورت‬public‫شوند‬ ‫می‬ ‫تعریف‬. ‫متد‬ ‫روبرو‬ ‫مثال‬ ‫در‬getName‫نقش‬getter‫و‬ ‫متد‬setName‫نقش‬setter‫کنند‬ ‫می‬ ‫ایفا‬ ‫را‬.
  • 23. ‫وراثت‬ ‫یک‬ ‫در‬ ‫را‬ ‫موجود‬ ‫کالس‬ ‫کد‬ ‫از‬ ‫مجدد‬ ‫استفاده‬ ‫ی‬ ‫اجازه‬ ‫شما‬ ‫به‬ ‫جاوا‬ ‫در‬ ‫وراثت‬ ‫دهد‬ ‫می‬ ‫دیگر‬ ‫کالس‬. ‫ج‬ ‫کالس‬ ‫به‬ ‫که‬ ‫کرد‬ ‫مشتق‬ ‫موجود‬ ‫کالس‬ ‫یک‬ ‫از‬ ‫را‬ ‫جدید‬ ‫کالس‬ ‫یک‬ ‫توان‬ ‫می‬‫دید‬ derived class‫شده‬ ‫بری‬ ‫ارث‬ ‫آن‬ ‫از‬ ‫که‬ ‫کالسی‬ ‫به‬ ‫و‬super class‫می‬ ‫گفته‬ ‫کالس‬ ‫های‬ ‫ویژگی‬ ‫جدید‬ ‫کالس‬ ‫و‬ ‫شود‬super‫برد‬ ‫می‬ ‫ارث‬ ‫به‬ ‫را‬. ‫کلیدی‬ ‫کلمه‬ ‫ی‬ ‫بوسیله‬ ‫جاوا‬ ‫در‬extends‫شود‬ ‫می‬ ‫انجام‬ ‫بری‬ ‫ارث‬. ‫مستندات‬ ‫از‬oracle: A subclass inherits all the members (fields, methods, and nested classes) from its superclass. Constructors are not members, so they are not inherited by subclasses, but the constructor of the superclass can be invoked from the subclass.
  • 24. ‫بری‬ ‫ارث‬ ‫مثال‬ ‫بعن‬ ‫دو‬ ‫هر‬ ‫کنیم‬ ‫تعریف‬ ‫استاد‬ ‫و‬ ‫دانشجو‬ ‫برای‬ ‫کالسهایی‬ ‫خواهیم‬ ‫می‬‫وان‬ ‫فرد‬ ‫اطالعات‬ ‫بنابراین‬ ‫هستند‬ ‫فردی‬ ‫مشخصات‬ ‫دارای‬ ‫شخصیت‬ ‫یک‬‫ی‬ ‫و‬ ‫خانوادگی‬ ‫نام‬ ، ‫نام‬ ‫مانند‬...‫است‬ ‫مشترک‬ ‫آنها‬ ‫بین‬.‫تو‬ ‫می‬ ‫نتیجه‬ ‫در‬‫انیم‬ ‫بنام‬ ‫اصلی‬ ‫کالس‬ ‫یک‬Person‫مان‬ ‫مشترک‬ ‫فیلدهای‬ ‫شامل‬ ‫که‬ ‫کنیم‬ ‫ایجاد‬‫ند‬ ‫ش‬ ‫مشتق‬ ‫کالس‬ ‫این‬ ‫از‬ ‫استاد‬ ‫و‬ ‫دانشجو‬ ‫های‬ ‫کالس‬ ‫و‬ ‫باشد‬ ‫فامیل‬ ‫و‬ ‫نام‬‫وند‬ ‫نتیجه‬ ‫در‬Student‫و‬Teacher‫کالسهای‬ ‫بعنوان‬derived‫و‬ Person‫کالس‬super‫آید‬ ‫می‬ ‫حساب‬ ‫به‬ ‫ما‬ ‫برنامه‬.
  • 25. ‫کالس‬Person ‫کالس‬Super‫کنیم‬ ‫می‬ ‫تعریف‬ ‫زیر‬ ‫بصورت‬ ‫را‬: public class Person { String name; String family; {
  • 26. ‫کالس‬Student public class Student extends Person{ int studentNo; //‫دانشجویی‬ ‫شماره‬ { ‫دانشجوی‬ ‫شماره‬ ‫فیلد‬ ‫فقط‬ ، ‫است‬ ‫دانشجو‬ ‫به‬ ‫مربوط‬ ‫که‬ ‫فوق‬ ‫کالس‬ ‫در‬‫را‬ ‫ی‬ ‫ر‬ ‫خانوادگی‬ ‫نام‬ ‫و‬ ‫نام‬ ‫مانند‬ ‫مشترک‬ ‫فیلدهای‬ ‫سایر‬ ، ‫کنیم‬ ‫می‬ ‫اضافه‬‫از‬ ‫ا‬ ‫کالس‬super‫برد‬ ‫می‬ ‫ارث‬ ‫به‬.
  • 27. ‫کالس‬Teacher public class Teacher extends Person { int employeeNO; //‫کارمندی‬ ‫شماره‬ float salary; //‫دریافتی‬ ‫حقوق‬ { ‫از‬ ‫را‬ ‫خانوادگی‬ ‫نام‬ ‫و‬ ‫نام‬ ‫فیلدهای‬ ‫نیز‬ ‫استاد‬ ‫کالس‬Person‫ارث‬ ‫به‬‫برد‬ ‫می‬ ‫نیست‬ ‫آنها‬ ‫مجدد‬ ‫تعریف‬ ‫به‬ ‫نیازی‬ ‫و‬.
  • 28. ‫چندریختی‬Polymorphism ‫به‬ ‫که‬ ‫است‬ ‫گرایی‬ ‫شی‬ ‫قابلیتهای‬ ‫از‬ ‫یکی‬ ‫نیز‬ ‫چندریختی‬SubClasses (‫شده‬ ‫مشتق‬ ‫های‬ ‫کالس‬)‫فردشان‬ ‫به‬ ‫منحصر‬ ‫رفتارهای‬ ‫تعریف‬ ‫امکان‬‫را‬ ‫کالس‬ ‫که‬ ‫رفتارهایی‬ ‫بر‬ ‫عالوه‬Super(‫والد‬)‫گذاشته‬ ‫اشتراک‬ ‫به‬ ‫برایشان‬ ‫دهد‬ ‫می‬ ‫را‬ ‫است‬. ‫کالس‬ ‫در‬ ‫مثال‬ ‫بعنوان‬Person‫بعنوان‬ ‫متدی‬ ‫توانیم‬ ‫می‬print‫داشته‬ ‫مشتق‬ ‫های‬ ‫کالس‬ ‫در‬ ‫و‬ ‫کند‬ ‫چاپ‬ ‫را‬ ‫فرد‬ ‫خانوادگی‬ ‫نام‬ ‫و‬ ‫نام‬ ‫که‬ ‫باشیم‬‫شده‬ ‫چا‬ ‫بر‬ ‫عالوه‬ ‫و‬ ‫شود‬ ‫تعریف‬ ‫کالس‬ ‫هر‬ ‫کاربرد‬ ‫اساس‬ ‫بر‬ ‫متد‬ ‫این‬ ‫نیز‬‫پ‬ ‫فرد‬ ‫مشخصات‬(‫متد‬ ‫طریق‬ ‫از‬super.print())‫را‬ ‫مشخصاتش‬ ‫سایر‬ ، ‫کند‬ ‫چاپ‬ ‫نیز‬.
  • 30. Overloading Methods ‫پارامتر‬ ‫بودن‬ ‫متفاوت‬ ‫صورت‬ ‫در‬ ‫نام‬ ‫هم‬ ‫متدهای‬ ‫تعریف‬ ‫امکان‬ ‫جاوا‬ ‫در‬‫ها‬ ‫گویند‬ ‫می‬ ‫متد‬ ‫سربارگذاری‬ ‫قابلیت‬ ‫این‬ ‫به‬ ‫دارد‬ ‫وجود‬. ‫مثال‬:
  • 31. ‫متدهای‬ ‫و‬ ‫ها‬ ‫کالس‬Final ‫بصورت‬ ‫متد‬ ‫یک‬ ‫تعریف‬final‫بازنویسی‬ ‫از‬(Overriding)‫در‬ ‫متد‬ ‫آن‬ ‫کند‬ ‫می‬ ‫جلوگیری‬ ‫شده‬ ‫مشتق‬ ‫های‬ ‫کالس‬. ‫بصورت‬ ‫کالس‬ ‫یک‬ ‫تعریف‬final‫نیست‬ ‫بری‬ ‫ارث‬ ‫قابل‬ ‫کالس‬ ‫یعنی‬ ،. ‫مثال‬: final void myMethod() { }
  • 32. Interface ‫شود‬ ‫می‬ ‫اطالق‬ ‫بدنه‬ ‫بدون‬ ‫مرتبط‬ ‫متدهای‬ ‫از‬ ‫گروهی‬ ‫به‬ ‫اینترفیس‬ ‫یک‬.‫وق‬‫که‬ ‫تی‬ ‫سازی‬ ‫پیاده‬ ‫را‬ ‫اینترفیسی‬ ، ‫کالس‬ ‫یک‬(Implements)‫سازی‬ ‫فراهم‬ ، ‫کند‬ ‫می‬ ‫شود‬ ‫می‬ ‫متعهد‬ ‫را‬ ‫اینترفیس‬ ‫آن‬ ‫رفتارهای‬.‫کلی‬ ‫مجموعه‬ ، ‫واقعی‬ ‫دنیای‬ ‫در‬‫دهای‬ ‫کا‬ ‫بین‬ ‫ارتباط‬ ‫برقراری‬ ‫برای‬ ‫اینترفیس‬ ‫نوعی‬ ‫تلویزیون‬ ‫جعبه‬ ‫روی‬‫و‬ ‫ربر‬ ‫هستند‬ ‫تلویزیون‬ ‫کنترل‬ ‫جهت‬ ‫داخلی‬ ‫مدارات‬. interface Car { void start(); void run(); void trunOff(); }
  • 33. ‫اینترفیس‬ ‫سازی‬ ‫پیاده‬ ‫کنیم‬ ‫می‬ ‫سازی‬ ‫پیاده‬ ‫زیر‬ ‫کالس‬ ‫در‬ ‫را‬ ‫قبل‬ ‫مثال‬ ‫اینترفیس‬: class Automobile implements Car { public void start(){ system.out.println(“Car is started.”); } public void run(){ system.out.println(“Car is running.”); } public void trunOff(){ system.out.println(“Car is turned off.”); } }
  • 34. ‫سایت‬ ‫وب‬ ‫مستندات‬ ‫از‬Oracle‫اینترفیس‬ ‫مورد‬ ‫در‬: Implementing an interface allows a class to become more formal about the behavior it promises to provide. Interfaces form a contract between the class and the outside world, and this contract is enforced at build time by the compiler. If your class claims to implement an interface, all methods defined by that interface must appear in its source code before the class will successfully compile.
  • 35. Generics ‫جاوا‬ ‫در‬ ‫جنریک‬ ‫قابلیتهای‬ ‫از‬: ‫اشیا‬ ‫از‬ ‫مختلفی‬ ‫انواع‬ ‫روی‬ ‫بر‬ ‫که‬ ‫کالسهایی‬ ‫و‬ ‫متدها‬ ‫تعریف‬ ‫امکان‬‫عمل‬ ‫ء‬ ‫کنند‬ ‫می‬. ‫اج‬ ‫زمان‬ ‫خطاهای‬ ‫بروز‬ ‫از‬ ‫که‬ ، ‫کامپایل‬ ‫هنگام‬ ‫در‬ ‫انواع‬ ‫قویتر‬ ‫بررسی‬‫را‬ ‫ح‬ ‫دو‬ ‫با‬ ‫زیر‬ ‫کد‬ ‫قطعه‬ ‫دو‬ ‫مثال‬ ‫بطور‬ ،‫کند‬ ‫می‬ ‫جلوگیری‬ ‫زیادی‬ ‫حد‬ ‫تا‬‫الت‬ ‫اند‬ ‫شده‬ ‫نوشته‬ ‫جنریک‬ ‫و‬ ‫غیرجنریک‬:
  • 36. ‫جنریک‬ ‫کالس‬ ‫تعریف‬ public class Box<T> { private T t; public void set(T t) { this.t = t; } public T get() { return t; } }
  • 37. ‫جنریک‬ ‫از‬ ‫استفاده‬ ‫نحوه‬ ‫مقدار‬ ‫خواندن‬ ‫و‬ ‫دهی‬ ‫مقدار‬ ، ‫قبل‬ ‫مثال‬ ‫جنریک‬ ‫کالس‬ ‫از‬ ‫نمونه‬ ‫ایجاد‬: Box<String> boxStr = new Box<String>(); boxStr.set(“Hello”); String valStr = boxStr.get(); Box<Integer> boxInt = new Box<Integer>(); boxInt.set(4520); int val = boxInt . get();
  • 38. Collections ‫خو‬ ‫داخل‬ ‫در‬ ‫را‬ ‫نوع‬ ‫هم‬ ‫عناصر‬ ‫که‬ ‫باشد‬ ‫می‬ ‫شیء‬ ‫یکی‬ ، ‫کالکشن‬ ‫یک‬‫د‬ ‫است‬ ‫نموده‬ ‫گروهبندی‬.‫ایمیل‬ ‫ی‬ ‫پوشه‬ ‫یک‬ ‫مثال‬ ‫بطور‬(‫از‬ ‫ای‬ ‫مجموعه‬ ‫ها‬ ‫نامه‬.) ‫ها‬ ‫مجموعه‬ ‫مزایای‬: ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫تالش‬ ‫کاهش‬:‫و‬ ‫ای‬ ‫داده‬ ‫ساختارهای‬ ‫سازی‬ ‫فراهم‬ ‫با‬ ‫مفید‬ ‫های‬ ‫الگوریتم‬ ‫برنامه‬ ‫کیفیت‬ ‫و‬ ‫سرعت‬ ‫افزایش‬:‫الگوری‬ ‫باالی‬ ‫کیفیت‬ ‫و‬ ‫کارایی‬‫پیاده‬ ‫های‬ ‫تم‬ ‫ها‬ ‫مجموعه‬ ‫در‬ ‫شده‬ ‫سازی‬ ‫یادگیری‬ ‫به‬ ‫نیاز‬ ‫کاهش‬APIs‫جدید‬:‫از‬ ، ‫ها‬ ‫کالکشن‬ ‫بودن‬ ‫جنریک‬ ‫بدلیل‬ ‫نمود‬ ‫استفاده‬ ‫ها‬ ‫آبجکت‬ ‫انواع‬ ‫روی‬ ‫بر‬ ‫توان‬ ‫می‬ ‫آنها‬ ‫امکانات‬.
  • 39. ‫جاوا‬ ‫در‬ ‫ها‬ ‫مجموعه‬ ‫انواع‬ Collection:‫هاست‬ ‫مجموعه‬ ‫مراتب‬ ‫سلسله‬ ‫ریشه‬. Set:‫عناصر‬ ‫شامل‬ ‫که‬ ‫ای‬ ‫مجموعه‬(elements)‫باشد‬ ‫تواند‬ ‫نمی‬ ‫تکراری‬. List:‫پذیرد‬ ‫می‬ ‫نیز‬ ‫را‬ ‫تکراری‬ ‫عناصر‬ ‫که‬ ‫منظم‬ ‫ای‬ ‫مجموعه‬. Queue:‫عموما‬(‫لزوما‬ ‫نه‬)‫شکل‬ ‫به‬ ‫عناصر‬FIFO (First Input First Output)‫شوند‬ ‫می‬ ‫مرتب‬. Deque:‫بعنوان‬ ‫هم‬FIFO‫بصورت‬ ‫هم‬ ‫و‬LIFO، (Last In First Out)‫شود‬ ‫استفاده‬ ‫تواند‬ ‫می‬. Map:‫مقداری‬ ‫کلید‬ ‫های‬ ‫جفت‬(Keys & Values)‫دهد‬ ‫می‬ ‫نگاشت‬ ‫هم‬ ‫به‬ ‫را‬. ‫پذیرد‬ ‫نمی‬ ‫را‬ ‫تکراری‬ ‫کلیدهای‬.
  • 40. ‫ها‬ ‫مجموعه‬ ‫از‬ ‫استفاده‬ ‫مجموعه‬ ‫یک‬ ‫تعریف‬: List<String> myList = new ArrayList<String>(); List<Teacher> teacherList = new ArrayList<Teacher>(); ‫به‬ ‫عنصر‬ ‫یک‬ ‫کردن‬ ‫اضافه‬myList: myList.add(“hello List”); ‫به‬ ‫عنصر‬ ‫یک‬ ‫کردن‬ ‫اضافه‬teacherList: Teacher te = new Teacher(); teacherList.add (te); ‫مجموعه‬ ‫در‬ ‫عناصر‬ ‫تعداد‬ ‫آوردن‬ ‫بدست‬: int count = teacherList.size();
  • 41. ‫ها‬ ‫مجموعه‬ ‫پیمایش‬ ‫ساختار‬ ‫بوسیله‬for-each‫پیمایش‬ ‫را‬ ‫ها‬ ‫آرایه‬ ‫و‬ ‫ها‬ ‫مجموعه‬ ‫توان‬ ‫می‬ ‫نمود‬. ‫کلی‬ ‫ساختار‬for-each: for (Object o : Collection) System.out.println(o); ‫مثال‬: For(Teacher te : teacherList) System.out.println( te.getName() );
  • 42. ‫خطاها‬ ‫مدیریت‬(Exceptions) ‫از‬ ‫جاوا‬exception‫استثنائی‬ ‫رخدادهای‬ ‫سایر‬ ‫و‬ ‫خطاها‬ ‫مدیریت‬ ‫برای‬ ‫ها‬ ‫کند‬ ‫می‬ ‫استفاده‬. ‫بلوک‬ ‫ی‬ ‫بوسیله‬ ‫را‬ ‫دارند‬ ‫خطا‬ ‫ایجاد‬ ‫احتمال‬ ‫که‬ ‫کدهایی‬Try-Catch‫می‬ ‫احاطه‬ ‫را‬ ‫خطا‬ ‫بتوان‬ ‫و‬ ‫نشده‬ ‫مشکل‬ ‫دچار‬ ‫برنامه‬ ، ‫خطا‬ ‫بروز‬ ‫صورت‬ ‫در‬ ‫تا‬ ‫کنند‬ ‫نمود‬ ‫مدیریت‬. ‫ی‬ ‫بوسیله‬ ‫کد‬ ‫احاطه‬ ‫کلی‬ ‫قالب‬Try-Catch: try{ // Code may generate errors }catch(Exception ex) { }
  • 43. ‫استثناء‬ ‫مدیریت‬ ‫مثال‬ ‫ک‬ ‫صورتی‬ ‫در‬ ‫کند‬ ‫می‬ ‫اشاره‬ ‫آرایه‬ ‫یک‬ ‫چهارم‬ ‫عنصر‬ ‫به‬ ، ‫زیر‬ ‫کد‬ ‫قطعه‬‫ه‬ ‫اجرا‬ ‫زمان‬ ‫خطای‬ ‫نتیجه‬ ‫در‬ ‫است‬ ‫عنصر‬ ‫سه‬ ‫دارای‬ ‫نظر‬ ‫مورد‬ ‫ی‬ ‫آرایه‬ ‫ی‬ ‫بوسیله‬ ‫که‬ ‫دهد‬ ‫می‬ ‫رخ‬Try-Catch‫است‬ ‫شده‬ ‫مدیریت‬ ‫خطا‬ ‫این‬.
  • 44. ‫زمانی‬ ‫هم‬ ‫نویسی‬ ‫برنامه‬ ‫همزمان‬ ‫سیستم‬(Concurrent System)‫محاسبه‬ ‫یک‬ ‫که‬ ‫است‬ ‫جایی‬ ، ‫شود‬ ‫اجرا‬ ‫دیگر‬ ‫ی‬ ‫محاسبه‬ ‫یک‬ ‫اتمام‬ ‫از‬ ‫قبل‬ ‫تواند‬ ‫می‬. ، ‫زمانی‬ ‫هم‬ ‫نویسی‬ ‫برنامه‬ ‫در‬processes‫و‬threads‫اجرای‬ ‫اساس‬ ‫هستند‬ ‫برنامه‬. Process:‫هستند‬ ‫کامپیوتر‬ ‫در‬ ‫اجرایی‬ ‫های‬ ‫برنامه‬ ‫همان‬ ‫پردازشها‬. Thread:‫اصلی‬ ‫ریسمان‬ ‫یک‬ ‫حداقل‬ ‫پردازش‬ ‫هر‬(Main Thread) ‫ایجاد‬ ‫ای‬ ‫جداگانه‬ ‫های‬ ‫ریسمان‬ ‫همزمان‬ ‫کارهای‬ ‫برای‬ ‫تواند‬ ‫می‬ ‫و‬ ‫دارد‬ ‫کند‬.‫مناب‬ ‫به‬ ‫نیاز‬ ‫جدید‬ ‫پردازش‬ ‫ایجاد‬ ‫به‬ ‫نسبت‬ ‫جدید‬ ‫ریسمان‬ ‫ایجاد‬‫کمتری‬ ‫ع‬ ‫دارد‬. ‫ریسمانی‬ ‫چند‬ ‫اجرای‬(MultiThreaded)‫ضروری‬ ‫های‬ ‫قابلیت‬ ‫از‬ ‫باشد‬ ‫می‬ ‫جاوا‬.
  • 45. Threads Objects ‫کالس‬ ‫از‬ ‫نمونه‬ ‫یک‬ ‫به‬ ‫ریسمان‬ ‫هر‬Thread‫باشد‬ ‫می‬ ‫مرتبط‬. ‫هر‬ ‫برای‬ ‫بسادگی‬ ، ‫تردها‬ ‫مدیریت‬ ‫و‬ ‫ایجاد‬ ‫بر‬ ‫مستقیم‬ ‫کنترل‬ ‫برای‬‫کار‬ ‫غیرهمزمان‬(asynchronous)‫کالس‬ ‫از‬ ‫نمونه‬ ‫یک‬Thread‫ایجاد‬ ‫کنید‬. ‫اجرایی‬ ‫کد‬ ‫باید‬ ‫کند‬ ‫می‬ ‫ایجاد‬ ‫را‬ ‫ترد‬ ‫کالس‬ ‫از‬ ‫ای‬ ‫نمونه‬ ‫که‬ ‫ای‬ ‫برنامه‬‫که‬ ‫کند‬ ‫فراهم‬ ‫را‬ ‫ریسمان‬ ‫در‬.‫است‬ ‫انجام‬ ‫قابل‬ ‫روش‬ ‫دو‬ ‫به‬ ‫کار‬ ‫این‬: 1. Runnable Object 2. Subclass Thread
  • 46. Runnable ‫سازی‬ ‫پیاده‬ ‫با‬ ‫ترد‬ ‫یک‬ ‫ایجاد‬Runnable: public class HelloRunnable implements Runnable { public void run() { System.out.println("Hello from a thread!"); } }
  • 47. SubClass Thread ‫کالس‬ ‫از‬ ‫بری‬ ‫ارث‬ ‫با‬ ‫ترد‬ ‫یک‬ ‫ایجاد‬Thread: public class HelloThread extends Thread { public void run() { System.out.println("Hello from a thread!"); } }
  • 48. ‫ریسمان‬ ‫اجرای‬ ‫ترد‬ ‫اجرای‬ ‫مثال‬HelloRunnable: HelloRunnable helloRunnableA = new HelloRunnable (); Thread t = new Thread( helloRunnableA ); t.start(); ‫ترد‬ ‫اجرای‬ ‫مثال‬HelloThread: HelloThread t = new HelloThread (); t.start();
  • 49. Runnable ‫یا‬ Thread 1) Implementing Runnable is the preferred way to do it. Here, you’re not really specializing or modifying the thread’s behavior. You’re just giving the thread something to run. That means composition is the better way to go. 2) Java only supports single inheritance, so you can only extend one class. 3) Instantiating an interface gives a cleaner separation between your code and the implementation of threads. 4) Implementing Runnable makes your class more flexible. If you extend thread then the action you’re doing is always going to be in a thread. However, if you extend Runnable it doesn’t have to be. You can run it in a thread, or pass it to some kind of executor service, or just pass it around as a task within a single threaded application. 5) By extending Thread, each of your threads has a unique object associated with it, whereas implementing Runnable, many threads can share the same runnable instance.
  • 50. ‫جاوا‬ ‫در‬ ‫فایلها‬ ‫با‬ ‫کار‬ ‫مسیر‬ ‫یک‬ ‫در‬ ‫های‬ ‫پوشه‬ ‫و‬ ‫فایلها‬ ‫لیست‬ ‫آوردن‬ ‫بدست‬: File myFile = new File("C:" + File.separator); String[] filesList = myFile.list(); ‫مسیر‬ ‫یک‬ ‫در‬ ‫فایل‬ ‫یک‬ ‫وجود‬ ‫بررسی‬: File mfile = new File("C:Windows", "notepad.exe"); boolean isExist = mfile .exists(); ‫فایل‬ ‫وجود‬notepad.exe‫مسیر‬ ‫در‬ ‫را‬C:Windows‫میکند‬ ‫چک‬.
  • 51. ‫عملکرد‬‫متد‬ ‫نام‬ ‫مسیر‬ ‫در‬ ‫شده‬ ‫مشخص‬ ‫فولدر‬ ‫یا‬ ‫فایل‬ ‫حذف‬delete() ‫از‬ ‫خواندن‬ ‫امکان‬ ‫آیا‬‫دارد‬ ‫وجود‬ ‫فایل‬canRead() ‫فایل‬ ‫در‬ ‫تغییر‬ ‫امکان‬ ‫آیا‬‫دارد‬ ‫وجود‬canWrite() ‫جدید‬ ‫فولدر‬ ‫یک‬ ‫ایجاد‬mkdir() ‫فایل‬ ‫نام‬ ‫تغییر‬renameTo(dest) ‫فایل‬ ‫نام‬ ‫آوردن‬ ‫بدست‬getName() ‫فایلهای‬‫کند‬ ‫می‬ ‫لیست‬ ‫را‬ ‫مسیر‬ ‫یک‬listFiles() ‫کالس‬ ‫متدهای‬ ‫از‬ ‫برخی‬File ‫کالس‬ ‫از‬ ‫آبجکت‬ ‫یک‬ ‫باید‬ ‫زیر‬ ‫متدهای‬ ‫از‬ ‫استفاده‬ ‫برای‬File‫نمایید‬ ‫ایجاد‬ ‫زیر‬ ‫شکل‬ ‫به‬: File myFile = ne w File (Path );
  • 52. ‫فایل‬ ‫از‬ ‫اطالعات‬ ‫خواندن‬ ‫کالس‬ ‫از‬ ‫استفاده‬ ‫با‬FileInputStream‫آورد‬ ‫بدست‬ ‫را‬ ‫فایل‬ ‫یک‬ ‫محتوای‬ ‫توان‬ ‫می‬. ‫مثال‬:‫بنام‬ ‫متنی‬ ‫فایل‬ ‫یک‬ ‫محتوای‬ ‫خواندن‬test.txt: try { File myfile = new File("D:","test.txt"); FileInputStream fi = new FileInputStream(myfile ); byte[] bt = new byte[ fi.available() ]; fi.read(bt, 0, bt.length); fi.close(); String s = new String( bt ); System.out.println(s); } catch (Exception e) { e.printStackTrace(); }