پاسخ به:کلاس اموزش برنامه نویسی اندروید(دوره اول)
جمعه 3 بهمن 1393 1:51 AM
آموزش:
به دلیل اینکه قصد دارم این آموزشها برای کسانی که با برنامه نویسی هم هیچ آشنایی ندارند مفید واقع شود، این قسمت تکمیلی به دوره آموزشی اضافه شد. توجه داشته باشید اگر با برنامه نویسی آشنایی ندارد باید تلاشتان را چندین برابر افزایش دهید تا از پس سایر آموزشها برآیید.
ویرایش: جهت آزمایش کد های زیر می توانید از مثال آموزشی قسمت قبل استفاده کنید و در Text موجود روی صفحه تغییری حاصل کنید. بطور مثال برای نمایش مقدار عددی aValue بر روی TextView موجود در صفحه برنامه قسمت OnClick را به شکل زیر تغییر دهید:
01 btn.setOnClickListener(new OnClickListener() ..
02
03 @Override
04 public void onClick(View v) ..
05 text.setText("Value is " + aValue);
06 }
07 });
برای استفاده آن در حلقه های گردشی هم می تواند ابتدا نتیجه خود را در یک String ذخیره کنید و سپس setText کنید، مانند مثال زیر:
01 btn.setOnClickListener(new OnClickListener() ..
02
03 @Override
04 public void onClick(View v) ..
05
06 String output = "Values are: " + "\n";
07 for (int i = 0; i < 10; i++) ..
08 output = output + i + "\n";
09 }
10
11 output = output + "End For" + "\n";
12
13 text.setText(output);
14 }
15 }
توجه داشته باشید که استفاده از "n\" باعث نوشته شدن باقی متن در خط بعدی می شود. خروجی قطعه برنامه بالا پس از کلیک بر روی دکمه به شکل زیر است:
متغیرها ( Variables * ) :
متغیرها اشاره کننده هایی به قسمتی از حافظه کامپیوتر هستند که در آن مقداری نهفته است. بطور مثال وقتی می گوییم int value=2 یعنی متغیر value از جنس int ( اعداد صحیح بین -2,147,483,648 تا 2,147,483,647 ) است که نیاز به اشغال 32بیت یا همان 4 بایت از حافظه دارد. متغیر value فقط به آدرس اولین بایت از این حافظه مورد نیاز اشاره می کند. با استفاده از عملگر ( Operator * ) تساوی ( = ) می گوییم که مقدار این فضا ( که 4 بایت است ) 2 باشد. هر گاه متغیر value را بخوانیم، داریم مقدار حافظه متصل شده به این متغیر را می خوانیم. نیاز نیست خیلی نگران چگونگی عملکرد جاوا در خواندن و نوشتن متغیرها باشید اما خوب بود که بدانید معنی واقعی یک متغیر چیست.
با توجه به توضیح فوق می توانیم متغیرهایی از جنس های مختلف ( محدود اعدادی که ساپورت می کند، نوع اعدادی که ساپورت می کند و ... ) داشته باشیم. نوع متغیرهایی که در جاوا قابل استفاده است که به آنها Primitives می گوییم در لینک * موجود و قابل مطالعه است.
برای تعریف کردم متغیرها با نوع های مختلف کد زیر می تواند به شما کمک کند.
01 byte aValue = 1;
02 short bValue = 1;
03 int cValue = 1;
04 long dValue = 1;
05 float eValue = 2.0f;
06 double fValue = 2.0d;
07 boolean gValue = false;
08 char hValue = 'A';
عملگرها ( Operators * ) :
با استفاده از عملگرها می توانید مقادیر یک متغیر را تغییر دهید. مثلاً عملگرهای زیر برای متغیرهایی از نوع عددی قابل استفاده است.
01 cValue++; //cValue will be 2
02 cValue--; //cValue will be 1
03 cValue += 3; //cValue will be 4
04 cValue -= 2; //cValue will be 2
05 cValue *= 3; //cValue will be 6
06 cValue = aValue + 1; //cValue will be 7
07 cValue = 5; //cValue will be 5
08 cValue = 6 * 2 + 3; //cValue will be 15
عبارت بعد از // صرفاً توضیحی است و هیچ اثری بر چگونگی اجرای برنامه ندارد، به آنها Comments می گوییم. همانطور که می بینید در انتهای هر خط از دستور یک ; درج شده است که معرف اتمام دستور است.
جهت کسب اطلاعات بیشتر می توانید از لینک * استفاده کنید
عبارات کنترل شرط ( IF Statements * ):
برای مقایسه دو مقدار یا متغیر و انجام عملکرد مناسب از دستور if استفاده می کنیم. به کدهای زیر توجه کنید:
01 int aValue = 2;
02 int bValue = 3;
03
04 if (aValue < bValue) ..
05 // code statements here when aValue<bValue
06 } else ..
07 // code your statements when aValue>=bValue
08 }
09
10 boolean cValue = false;
11 if (cValue) ..
12 // code statements here when cValue=true
13 } else ..
14 // code your statements when cValue=false
15 }
16
17 if ( !cValue) ..
18 // code statements here when cValue=false
19 } else ..
20 // code your statements when cValue=true
21 }
22
23 boolean dValue = aValue < bValue;
24 if (dValue) ..
25 // code statements here when aValue<bValue
26 } else ..
27 // code your statements when aValue>=bValue
28 }
29
30 float eValue = 4.0f;
31 float fValue = 5.0f;
32 if ((aValue < bValue) && (eValue < fValue)) ..
33 // code statements here when aValue<bValue and eValue<fValue
34 } else ..
35 // code statements here when aValue>=bValue or eValue>=fValue
36 // for more information see boolean algebra concepts
37 }
38
39 int gValue = 54;
40 if (gValue > 100) ..
41 // code statements here when gValue>100
42 } else if (gValue > 50) ..
43 // code statements here when gValue>50
44 } else if (gValue > 0) ..
45 // code statements here when gValue>0
46 } else ..
47 // code statements here when gValue<=0
48 }
جهت کسب اطلاعات بیشتر می توانید از لینک * استفاده کنید
حلقه ها ( For-Loops * ) :
جهت مشخص شدن طریقه کار به کدها و Comment های زیر توجه کنید.
01 for (int i = 0; i < 3; i++) ..
02 Log.i("LOG", "i is: " + i);
03 }
04 /* output:
05 * i is: 0
06 * i is: 1
07 * i is: 2
08 */
09
10 for (int i = 3; i > 0; i--) ..
11 Log.i("LOG", "i is: " + i);
12 }
13 /* output:
14 * i is: 3
15 * i is: 2
16 * i is: 1
17 */
18
19 for (int i = 3; i > 0; i--) ..
20 Log.i("LOG", "Statement");
21 }
22 /* output:
23 * Statement
24 * Statement
25 * Statement
26 */
27
28 for (float num = 0.8f; num > 0.1f; num -= 0.3f) ..
29 Log.i("LOG", "num is: " + num);
30 }
31 /* output:
32 * num is: 0.8
33 * num is: 0.5
34 * num is: 0.2
35 */
36
37 for (int i = 1; i < 3; i++) ..
38 for (int j = 1; j <= 4; j++) ..
39 Log.i("LOG", i + "*" + j + "=" + (i * j));
40 }
41 }
42 /* output:
43 * 1*1=1
44 * 1*2=2
45 * 1*3=3
46 * 1*4=3
47 * 2*1=2
48 * 2*2=4
49 * 2*3=6
50 * 2*4=8
51 */
جهت کسب اطلاعات بیشتر می توانید از لینک * استفاده کنید
حلقه ها ( While-Loops * ) :
01 int aValue = 0;
02 while (aValue < 2) ..
03 Log.i("LOG", "value is: " + aValue);
04 aValue++;
05 }
06 /* output:
07 * value is: 0
08 * value is: 1
09 */
10
11 while (aValue < 2) ..
12 Log.i("LOG", "value is: " + aValue);
13 aValue++;
14 }
15 /* output:
16 */
17
18 aValue = 0; //reset aValue again
19 while (aValue < 2) ..
20 aValue++;
21 Log.i("LOG", "value is: " + aValue);
22 }
23 /* output:
24 * value is: 1
25 * value is: 2
26 */
27
28 float bValue = 0.8f;
29 while (bValue > 0.1f) ..
30 Log.i("LOG", "value is: " + bValue);
31 bValue -= 0.3f;
32 }
33 /* output:
34 * value is: 0.8
35 * value is: 0.5
36 * value is: 0.2
37 */
38
39 int cValue = 2;
40 do ..
41 Log.i("LOG", "value is: " + cValue);
42 cValue++;
43 }
44 while (cValue < -5); //! :)
45 /* output:
46 * value is: 2
47 */
48 }
جهت کسب اطلاعات بیشتر می توانید از لینک * استفاده کنید
انتخاب ( Switch Statement * ) :
01 int aValue = 3;
02 String aValueStr = "";
03
04 switch (aValue) ..
05 case 1:
06 aValueStr = "One";
07 break;
08 case 2:
09 aValueStr = "Two";
10 break;
11 case 3:
12 aValueStr = "Three";
13 break;
14 case 4:
15 aValueStr = "Four";
16 break;
17 default:
18 aValueStr = "Unknown Number";
19 break;
20 }
21 Log.i("LOG", "String representation of " + aValue + " is " + aValueStr);
22 /* output:
23 * String representation of 3 is Three
24 */
جهت کسب اطلاعات بیشتر می توانید از لینک * استفاده کنید
توابع ( Functions * ) :
تابع مجموعه دستور العملی است که با دریافت ورودی ها، پردازشی انجام داده و خروجی مناسب ارائه می دهد. یک تابع ممکن است مقدار ورودی نداشته باشد، همینطور ممکن است خروجی نداشته باشد. تعداد ورودی ها هر عددی می تواند باشد اما خروجی همیشه یکی است. یک تابع مثل زیر تعریف می شود:
01 int doWork(float number1, boolean bool) ..
02 Log.i("LOG", "Number is : " + number1);
03 if (bool) ..
04 Log.i("LOG", "Boolean value is true");
05 } else ..
06 Log.i("LOG", "Boolean value is false");
07 }
08
09 int result = (int) (number1 * 2);
10 return result;
11 }
تابع بالا دارای ورودیهای number1 از جنس float و bool از جنس boolean می باشد. همینطور خروجی آن از جنس int می باشد. با استفاده از return می توان مقدار مورد نظر را از تابع خارج کرد. برای استفاده از تابع بالا از دستور زیر استفاده می کنیم.
01 int value = doWork(3.0f, false);
02 Log.i("LOG", "Value is: " + value);
همانطور که می بینید خروجی تابع را درون یک متغیر از جنس خروجی تابع ریختیم و آن را چاپ کردیم. با ورود مقدار 3.0 باید عدد 6 به عنوان خروجی تابع برگردانده شود.
جهت کسب اطلاعات بیشتر می توانید از لینک * استفاده کنید
قالب یک فایل جاوا:
یک فایل جاوا همیشه حاوی یک class یا یک interface است و نمی توان کدهای برنامه نویسی را همان جا نوشت بلکه باید داخل class ها نوشته شود. در ابتدای فایلهای جاوا نام package ـی که class در آن تعریف شده نوشته می شود. سپس لیستی از package ها و کلاسهای مورد نیاز این کلاس توسط import درخواست می شود. سپس کلاس تعریف شده و با تعریف فیلدها و متدها ( که در قسمت چهارم این آموزشها توضیح داده شده ) کلاس تکمیل می شود. به مثال زیر توجه کنید.
01 package com.uncocoder.course.lessons;
02
03 import android.util.Log;
04
05 public class CourseHelper ..
06
07 private CourseHelper() ..
08 call();
09 }
10
11
12
13 int doWork(float number1, boolean bool) ..
14 Log.i("LOG", "Number is : " + number1);
15 if (bool) ..
16 Log.i("LOG", "Boolean value is true");
17 } else ..
18 Log.i("LOG", "Boolean value is false");
19 }
20
21 int result = (int) (number1 * 2);
22 return result;
23 }
24
25
26
27 void call() ..
28 int value = doWork(3.0f, false);
29 Log.i("LOG", "Value is: " + value);
30 }
31 }
توصیه ها:
- در صورتیکه این مطالب برای شما تازگی داشت حتماً بسیار مطالعه کنید، چون شرط لازم برای ادامه آموزشها دانستن مقدمات برنامه نویسی خواهد بود.
- ممکن است نتوانید کدهای بالا را اجرا کنید چون طریق اجرا فعلاً برای شما دشوار است اما در قسمتهای آینده هر جا که توانستید تمام کدهای بالا را آزمایش و با ابتکار عمل خود سعی در فهم دقیق دستورات نمایید.
- اگر سرعتتان در تایپ و کار با ادیتور کم است، بسیار تمرین کنید. فاصله زمان تصمیم گرفتن به تغییر یا نوشتن یک قطعه کد تا اجرا کردن آن باید بسیار کوتاه باشد. یعنی چنانچه تصمیم به تغییر کد گرفتید اصلاً نباید به چگونگی تایپ آن فکر کنید بلکه بصورت غیر ارادی باید بتوانید این کار را انجام دهید. لذا در صورت نیاز بسیار تمرین کنید و یک قطعه کد را بارها و بارها بنویسید و ویرایش کنید.
Android , iOS , Windowsphone , Symbian , Java, Mobile Review ,Learning