Download presentation
Presentation is loading. Please wait.
1
برنامه نویسی پیشرفته مقدمات
2
دسته بندی زبانها دسته بندي زبانهاي از لحاظ نزديكي به سخت افزار:
سطح پايين مانند اسمبلي سطح ميانی مانند C,C++ سطح بالا مانند Java،Pascal،Delphi،.net دسته بندي به لحاظ ساخت يافتگي –شي گرا: ساخت يافته C،Pascal ساخت يافته-شي گرا C++،JAVA،Delphi،.net غيرساخت يافته qbasic
3
تاریخچهی جاوا توسط تیم شرکت سان به رهبری جیمز گاسلینگ ایجاد شد.
در ابتدا برای برنامه ریزی وسایل خانگی طراحی شد. این کار مشکل است چون وسایل خانگی از پردازنده های متفاوتی استفاده می کنند. نوشتن یک کامپایلر برای هر پردازنده مقدور نیست. راه حل: ترجمه ی دو مرحله ای: کامپایل کردن کد جاوا به یک مرحله ی میانی (بایت کد) اجرای بایت کد توسط مفسری به اسم ماشین مجازی جاوا (JVM)
4
تاریخچه ی جاوا ارائه شده در سال 1991 و 1992
1991: OAK (بلوط) : درخت بلوطی که جیمز از پنجره اتاق کارش می دید 1992: Java : James Gosling, Arthur Van hoff, Andy bechtolsheim یک فنجان قهوه داغ نماد Java ایجاد شده بر اساس زبان های C و C++ کامپایلری- مفسری
5
خصوصیات جالب جاوا: یک زبان 100% شیء گرا ساده )حذف اشاره گرها و…)
قدرتمند) مدیریت حافظه خودکارو پشتیبانی آسان از متغییرهای پویا ، مدیریت ﮐﻠﯿﻪ ﺧﻄﺎﻫﺎی حین اﺟﺮا، زﺑﺎن ﮐﺎﻣﻼ" ﻧﻮع ﺑﻨﺪی ﺷﺪه و …) ایمن قابل حمل (Write Once , Run AnyWhere) مستقل از محیط (یکی از بزرگ ترین امتیازات جاوا) قابلیت اجرا شدن در وب جهانی
6
واژه نامه ی جاوا JVM به ماشین مجازی جاوا گفته می شود که بایت کد را به کد ماشین ترجمه می کند. API به واسط برنامه نویسی کاربرد (یعنی همان کتابخانه های جاوا) گفته می شود. JRE: محیط اجرایی جاوا JVM بعلاوه ی API جاوا JDK: JRE بعلاوه ی ابزارهای کامپایل و خطایابی جهت برنامه نویسی J2SE: نسخه ی استاندارد پلاتفرم جاوا 2 JRE و JDK بعنوان یک خانواده در نظر گرفته می شوند.
7
کاربردهای جاوا انواع برنامه های جاوا: کاربردها: اپلت:
برنامه ای که دارای یک کلاس است و متدی به نام main دارد. هنگام اجرای برنامه، سیستم بصورت اتوماتیک main را صدا می زند. تمام برنامه های کاربردی جاوا با main شروع می شوند. اپلت: برنامه جاوایی که قرار است توسط مرورگر وب اجرا شود. می توان آنرا روی اینترنت قرار داد. می توان توسط برنامه ی مشاهده ی اپلت آنرا اجرا کرد. تمام اپلتها دارای واسط پنجره هستند. اما کاربردها از کنسول I/O یا واسط پنجره استفاده می کنند.
8
انواع داده ها در مجموع 8 نوع داده ای متفاوت برای اعداد صحیح، اعداد اعشاری، کاراکترها و مقادیر منطقی وجود دارد. انواع داده ای فوق را انواع اولیه(پایه) هم می نامند. دلیل نام گذاری فوق وجود این انواع داده ای در زبان جاوا به طور پیش فرض می باشد، به عبارت دیگر این انواع داده ای شیء نیستند بنابراین استفاده از آنها راحت تر است. انواع داده ای فوق در هر محیط اجرا و سیستم عاملی دارای طول یکسان می باشند.
9
انواع داده ها مقادیر ذخیره سازی نوع داده 8 bit byte 16 bit short
-128 to 127 8 bit byte to 32767 16 bit short to 32 bit int -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 64 bit long
10
انواع داده ها مقادیر ذخیره سازی نوع داده 1.4E-45 to 3.4E+38 32bit
float 4.9E-324 to 1.7E+308 64bit double برای ذخیره کردن کاراکترها از char و برای ذخیره کردن داده های منطقی از boolean استفاده می شود.
11
اعلان متغیرها Data_Type Variable_name; int zipCode; string lastName;
قبل از استفاده از متغییر، باید آنرا اعلان کنید، که به صورت زیر اعلان می شود: Data_Type Variable_name; int zipCode; string lastName; در هنگام اعلان متغییر مکانی از حافظه برای نگهداری متغییر در نظر گرفته می شود. این مکان توسط نام متغییر قابل دسترسی است.
12
نامگذاری متغیرها نام یک متغیر باید با یک حرف، underscore یا $ آغاز شده و پس از آن می تواند ترکیبی از حروف واعداد باشد . نکته: زبان جاوا یک زبان Case-Sensitive می باشد. نکته: برای متغیرهای خود نامهای با معنی انتخاب کنید. این امر باعث می شود که نام متغیرها بهتر در ذهنتان بماند. مثال: متغیرهای معتبر: Sum x SUM read_ _two متغیرهای نامعتبر: 2x hello! One+two s*m
13
قوانين نام گذاری متغیرها
جهت افزایش خوانایی نام متغیرها از قواعد زیر استفاده کنید. با حرف کوچک شروع شود. مرز کلمات را با حروف بزرگ مشخص کنید. بقیه ی کاراکترها یا حروف کوچک باشند یا ارقام. مثال: nextLine firstProgram
14
مقدار دهی اولیه به متغیرها
مقدار دهی اولیه به متغیرها در زبان جاوا به صورت زیر می باشد. Data_Type Variable_name = Value; int zipCode = 90210; string lastName=“asadi” توجه: واضح است که string نوع داده اولیه نیست. String یک کلاس از پیش تعریف شده در جاوا است که برای ذخیره و پردازش رشته ها استفاده می گردد. دستور آخری برای متغیر lastname مکان حافظه ای تخصیص میدهد. اما بر خلاف متغیر zipcode داده ها را مستقیما در فضای حافظه خود ذخیره نمی کند. متغیر lastname فقط آدرس حافظه ای را که asadi در آن ذخیره شده، در خودش ذخیره می کند.
15
انواع متغیرها متغیر نوع داده اولیه:متغیرهایی که از نوع داده اولیه تعریف شوند. int sum; متغیر مرجع: متغیرهایی که از یک کلاس تعریف شوند. به مثال زیر توجه کنید. string lastname=“asadi”; مکان حافظه ای که رشته asadi را در خود ذخیره می کند ، شی ای از نوع کلاس string است، که شی lastname نام دارد. متغیر lastname به شی lastnam اشاره دارد. توجه شود که با دو چیز متفاوت مواجه ایم: متغیر lastname شی lastname
16
عملگرهای ریاضی انتساب =, +=, -=, *=, etc. ضرب، جمع، باقیمانده و ....
*, +, /, % کاهش و افزایش (قبل و بعد) ++, --
17
عملگرهای انتساب = += -= *= /= %= Statement Equivalent Statement
= += -= *= /= %= Statement Equivalent Statement a = a + 2 ; a += 2 ; a = a - 3 ; a -= 3 ; a = a * 2 ; a *= 2 ; a = a / 4 ; a /= 4 ; a = a % 2 ; a %= 2 ; b = b + ( c + 2 ) ; b += c + 2 ; d = d * ( e - 5 ) ; d *= e - 5 ;
18
عملگرها و عبارات ریاضی اگرحداقل یکی از عملوندهای تقسیم، ضرب، جمع یا تفریق از نوع اعشاری باشد، نتیجه نیز اعشاری خواهد بود. اگر انواع مختلف داده در یک عبارت باشند ، نتیجه از نوع سمت راست ترین نوع در عبارت زیر خواهد بود. byteshortcharintlongfloatdouble استثنا: اگر قرار است نوع نتیجه byte یا short باشد، در این صورت نوع نتیجه int خواهد بود.
19
مثال 15.0 / 2 = * 2.0 = / 2.0 = /2 =7
20
عملگرهای افزایشی و کاهشی
در C++ ، افزايش يك واحد به مقدار يك متغير از نوع صحيح را افزايش و بطور مشابه كاهش يك واحد از مقدار يك متغير از نوع صحيح را كاهش مينامند. عملگر كاهش را با - - و عملگر افزايش را با ++ نمايش ميدهند. چون عملگرهاي ++ و - - فقط روي يك عملوند اثر دارند اين دو عملگر نيز جزء عملگرهاي يكتائي ميباشند.
21
از عملگرهای ++ و – می توان به دو صورت پیشوندی و پسوندی استفاده نمود
از عملگرهای ++ و – می توان به دو صورت پیشوندی و پسوندی استفاده نمود. دردستورالعملهای پیچیده عملگر پیشوندی قبل از انتساب ارزیابی می شود و عملگر پسوندی بعد از انتساب ارزیابی می شود.
22
مثال سه دستور العمل زیر معادل ميباشند :
++x; x++; x=x+1; و بطريق مشابه سه دستورالعمل زير نیز معادل مي باشند. - - y ; y=y-1; y- - ;
23
مثال پس از اجراي دستورالعملهاي فوق : x=6;
int x=5; y=++x * 2; پس از اجراي دستورالعملهاي فوق : y=12 x=6; y=x++ * 2; y=10; X=6;
24
عملگرهای مقایسه اشتباه گرفتن عملگر = و عملگر == بسیار معمول است!
نتیجه اعمال یک عملگر مقایسه ای همیشه true یا false است.
25
اولویت عملگرها ادامه
26
تغییر نوع ”تغییر نوع“ یک متغییر از نوع a را می گیرد و آنرا به نوع b و با همان مقدار تبدیل می کند. int n, m; double ans = n / (double)m; OR double ans = (double)n / m; double ans = (double)n / (double)m; نوع و مقدار m و n تغییر نمی کند.
27
توضیحات در ابتدای خط از علامت // استفاده می شود.
جهت افزایش خوانایی برنامه از توضیحات استفاده می شود. در زبان جاوا دو روش برای افزودن توضیحات به برنامه وجود دارد. توضیحات یک خطی: در ابتدای خط از علامت // استفاده می شود. int creditHours = 3; //Setup credit hours for course
28
توضیحات توضیحات چند خطی:
ابتدا و انتهای آنها به ترتیب از علامتهای */ و /* استفاده می شود . /* This program was written late at night under the influence of expired antihistamine medicine and generic supermarket soda. I offer no warranties express nor implied that works for any useful purpose whatsoever. */
29
ثابتها ثابتها بصورت زیر تعریف می شوند:
public static final int INCHES_PER_FOOT = 12; public static final double RATE = 0.14; کلمه ی کلیدی final از تغییرات ناخواسته ی متغیر جلوگیری می کند. راجع به public و static بعدا بیشتر بحث می کنیم. قواعد نامگداری ثابتها: از حروف بزرگ استفاده کنید. مرز کلمات را با خط فاصله ی زیرین مشخص کنید
30
ثابتها و توضیحات Version 9/10
31
کلاسها و اشیاء اصول برنامه نویسی شیء گرا از جهان واقعی اقتباس شده است. در جهان واقعی یک شیء از اشیاء کوچکتر تشکیل شده است. بنابر این در برنامه نویسی شیء گرا قابلیت ترکیب اشیا برای ایجاد اشیاء بزرگتر یکی از اصول می باشد. از کلاسها برای ایجاد اشیاء استفاده می کنیم، در واقع اشیاء نمونه های یک کلاس می باشند. برای مثال از کلاس به نام دوچرخه می توان تعداد زیادی شیء دوچرخه ایجاد کرد.
32
درست کردن ساندویچ تهیه ی ساندویچ بر اساس رویه
آرد کردن گندم و پختن نان ذبح گاو و تهیه همبرگر دوشیدن گاو و درست کردن پنیر سرخ کردن همبرگر، قرار دادن همبرگر روی نان، گذاشتن پنیر روی همبرگر و گذاشتن نان روی پنیر تهیه ی ساندویچ به روش شی گرا تهیه ی نان از نانوایی تهیه گوشت از قصابی تهیه پنیر از لبنیاتی
33
کلاس یک نوع است کلاس یک نوع است که توسط برنامه نویس تعریف می شود.
متغیرها را می توان از نوع کلاس تعریف کرد. به متغیری که از نوع کلاس باشد شی یا یک نمونه از کلاس گفته می شود. string lastName;
34
تعریف کلاس تعریف کلاس مدل کلاس را پیاده سازی می کند.
رفتار کلاس توسط متدهای کلاس پیاده می شود. خواص کلاس فیلد یا مشخصه خوانده می شوند. فیلد کلاس ممکن است: نوع اولیه باشد. از نوع یک کلاس دیگر باشد. توسط تمام متدهای کلاس قابل دسترسی است.
35
Class body: instance variables, methods
آناتومی یک کلاس جاوا Keyword class Name of the class public class test { Class body: instance variables, methods } NO semi-colon
36
Method code: local variables and statements
mainاعلان متد public static void main(string[] args) { Method code: local variables and statements }
37
ساده ترین ساختار برنامه در جاوا
public class ClassName { public static void main(string[] args) دستورات برنامه
38
اصول برنامه های جاوا اجرای همه ی برنامه ها با main شروع می شود.
System.out.print( ) چاپ خروجی روی صفحه نمایش System.out.print(“Hello”); System.out.println( ) چاپ خروجی روی صفحه نمایش و رفتن به خط بعدی System.out.println(“Hello and advance”);
39
مثال public class Example_1 { public static void main(string [] args) { system.out.print(“hello”); system.out.println(“how are you”); system.out.println(“I am fine “); system.out.println(“thank you.”);}} خروجی به صورت زیر است: hello how are you I am fine thank you.
40
عملگر + با استفلده از عملگر + می توان هر تعداد ازرشته ها را به هم متصل کرد. “The answer is “ = “The answer is 42“ “The sum=“ = (“The sum = + 12”)+10 = “The sum = “ = The sum = 1210
41
مثال اکنون دستور زیر را ببینید: “The sum =“ + ( ) = The sum = 22
42
مثال public class Example_1 { public static void main(string [] args) { int x=12, y=10; float z=2.0; float avg; avg=(x+y+z)/3; system.out.print (“average =“ + avg); خروجی به صورت زیر است: average= 8.0
43
مثال دیگر:جمع اعداد صحیح
1)import java.util.Scanner;//program uses class scanner 2)public class Addition { 3) public static void main(string [] args) { 4)Scanner input = new Scanner(system.in);// create a Scanner to obtain input from the command window 5)int number1, number2, sum; 6)system.out.print(“enter first integer:”); 7)number1=input.nextInt();// read first number from user
44
System.out.print(“enter second integer:”);
8)number2=input.nextInt(); // read second number from user 9)sum=number1+number2;//add numbers, then store total in sum 10) system.out.print(“sum=“+sum); //display sum }//end main }//end class
45
دستور(1) اعلان import است و به کامپایلر کمک می کند تا مکان کلاس مورد استفاده در برنامه را پیدا کند.(برای استفاده از کلاسهای از پیش تعریف شده باید از اعلان import استفاده کرد.) در این مثال از کلاس از پیش تعریف شده scanner در بسته java.util استفاده شده است. دستور(2 )اعلان کلاس Addition است. دستور(3) اعلان متد main است. اجرای برنامه با متد main شروع می شود. دستور(4) دستور اعلان متغیر است. این دستور متغیری به نام input و از نوع داده Scanner را برای استفاده در برنامه اعلان می کند. یک Scanner به برنامه امکان می دهد تا بتواند داده ها را برای استفاده در برنامه بخواند. دستور(7)با استفاده از متدnextInt شی input از نوع Scanner عدد صحیحی که کاربر وارد می کند را می خواند.
46
اعلان متد public double Name of the method
Visibility modifier (More on this later) return type Optional parameters public double toCelcius (double fTemp) { Method code: local variables and statements }
47
مثال: کلاس GradeBook public class GradeBook { public void displayMessage() System.out.println(“welcome to the GradeBook”); }
48
متدdisplayMessage از کلاس GradeBook
متدهای کلاس ممکن است: چیزی برنگردانند یا مقدار بازگشتی داشته باشند. دارای پارامترهایی (اختیاری) باشند که: از انواع اصلی داده هستند. اشیا هستند. تمام متدهای کلاس به همه ی متغیرهای کلاس (خواص) دسترسی دارند.
49
استفاده ازdisplayMessage
public class GradeBookTest { public static void main(string [] args) GradeBook ob1= new GradeBook(); ob1.displayMessage(); }
50
ایجاد شی ob1 و علامت . عبارت ob1.displayMessage();
دستور GradeBook ob1=new GradeBook(); یک شی جدید به اسم ob1 از نوعGradeBook ایجاد می کند. عبارت ob1.displayMessage(); متد displayMessage(); از شی ob1 را که از نوع GradeBook است را فراخوانی می کند.
51
اعلان متدی با یک پارامتر
public class GradeBook { public void displayMessage(String coursName) System.out.printf(“\nwelcome to the grade book for\n%s!\n”,coursName); }
52
هر پارامتر باید یک نوع داده و یک شناسه را مشخص نماید.
متد displayMessage نام درس را به عنوان آرگومان دریافت کرده و آن را به عنوان قسمتی از پیام خوش آمدگویی چاپ میکند.
53
استفاذه از متد پارامترداردر کلاس
import java.util.Scanner; 2 public class GradeBookTest { 3 public static void main(string [] args) 4 Scanner input = new Scanner(system.in); 5 GradeBook ob1= new GradeBook(); 6 System.out.println(“enter the course name”); 7 String courseName=input.nextLine(); 8 ob1.displayMessage(courseName); }
54
خروجی enter the course name java programming welcome to the grade book for
55
دستور 4 و 5 شی input از نوع Scanner و شی ob1 از نوع GradeBook ایجاد می کند.
دستور 6 از کاربر می خواهد تا نام درسی را وارد نماید. دستور 7 نام وارد شده توسط کاربر را با استفاده از متد nextLine کلاس Scanner خوانده و در متغیر courseName ذخیره می نماید. دستور8 متدdisplayMesage شی ob1 را فرا می خواند. متغیرcourseName موجود در پرانتزها، آرگومانی است که به متدdisplayName ارسال می شود تا این متد بتواند کارش را انجام دهد.
56
نكته سه نوع متغیر متفاوت در زبان جاوا وجود دارد این سه نوع متغیر عبارتند از: متغیرهای نمونهInstance Variable این نوع متغیرها هنگام ایجاد یک شی از کلاس مقدار می گیرند، اشیا متفاوتی که از روی یک کلاس ساخته می شوند، می توانند دارای مقادیر متفاوتی برای این نوع متغیر باشند. متغیرهای کلاس Class Variable متغیرهای کلاس در هنگام تعریف کلاس مقدار می گیرند، و مقدارشان برای تمام اشیا کلاس یکسان می باشد.
57
نكته متغیرهای محلی Local Variable
این نوع متغیرها درون یک متد یا بخشی از یک متد تعریف می شوند.
58
نكته متغیرهای محلی باید قبل از استفاده مقدار دهی شوند، بنابر این بهتر است به تمام متغیرهای محلی مقدار اولیه نسبت داد. نکته: متغیرهای نوع کلاس و نمونه بسته به نوع متغیر مقدار اولیه می گیرند. متغیرهای عددی : 0 متغیرهای منطقی : false اشیاء : null متغیرهای کاراکتری : ‘\O’
59
مثال public class Date1 { public String month; public int day;
public int year; public String toString( ) return month + “ “ + day + “, “ + year; }
60
متغیرهای نمونه month,day,year به صورت public اعلان شده اند، یعنی این متغیرها توسط متدهای کلاسهای دیگر قابل دسترسی هستند. متغیرها و متدهایی که به صورت private اعلان می شوند تنها برای متدهای کلاسی که برای آنها اعلان شده اند، قابل دسترسی هستند.
61
استفاده از کلاس date1 public class Date1Demo {
public static void main( String[ ] args ) { Date1 ob = new Date1( ); ob.month = “July”; ob.day = 4; ob.year = 2007; String dateString = ob.toString( ); System.out.println(dateString); }
62
خروجی July
63
می توان متغیرهای عمومی شی را از طریق . مورد ارجاع قرار داد.
ob.month = “July”; ob.day = 4; ob.year = 2007;
64
مثال Public class GradeBook { private string courseName; public void setCourseName(string name){ courseName=name;} public string getCourseName(){ return courseName;} public void displayMessage(){ System.out.printf(“welcome to the grade book for\n%s\n”, getCourseName());} }
65
متغیرنمونه courseName فقط توسط متدهای کلاس قابل دسترسی است
متد setCourseName هیچ مقداری را برنمی گرداند(void). این متد پارامتر name را دریافت می کند(در زمان فراخوانی).همچنین پارامتر name را به متغیر نمونه courseName انتساب میدهد. متد getCourseName پس از اتمام کارش نتیجه ای را به متد فراخوانی کننده اش باز می گرداند
66
استفاده از GradeBook Public class GradeBookTest { public static void main(String[] args) { Scanner input=new Scanner(System.in); GradeBook ob=new GradeBook(); System.out.printf(“initial course name is:%s\n” ob. getCourseName());
67
System.out.println(“please enter the course name:”); String theName=input.nextLine(); ob.setCourseName(theName); System.out .println(); ob.displayMessage(); }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.