آموزش هسته جاوا 1.7

                                                                                                                     java core  

 

مقدمه ای در مورد جاوا
 جاوا یک زبان برنامه نویسی قدرتمند است، و در سال 1995، توسط جیمز گاسلینگ به طور رسمی به برنامه نویسان و گسترش دهندگان برنامه های کاربردی معرفی گردید. ابتدا نام این زبان، اوآک ( OAK ) بوده، که به دلیل مشکلات ثبتی به جاوا، تغییر نام داده است. اوآک به معنای درخت بلوط، و جاوا یک اسم محلی برای قهوه است. این زبان برنامه نویسی با JavaScript هیچگونه ارتباطی ندارد.
در ابتدا پروژه ای با نام گرین ( Green ) در شرکت سان تعریف شد. مقصود از این پروژه، سکویی برای پیاده سازی برنامه های کاربردی بر روی تمامی ابزارهای الکترونیکی همانند: مایکرویو، تلویزیون و ... بود. اما در آن زمان، این پروژه با شکست روبرو شد. این اتفاق باعث شد، تا جیمز (مدیر پروژه شکست خورده Green ) به کمک تیم خود یک زبان برنامه نویسی جدید تولید نماید. یکی از دلایلی که بعضی از مواقع جاوا را به عنوان یک سکوی برنامه نویسی یاد می کنند، همین موضوع است. 
برتری های زبان برنامه نویسی جاوا نسبت به سایر زبان های برنامه نویسی
-     مستقل از سکوی اجرا ( Free Platform ): این خاصیت به برنامه نویسان و گسترش دهندگان این امکان را می دهد، تا بدون وابستگی به هیچ سیستم عاملی، برنامه های کاربردی خود را تولید و اجرا نمایند. 
-     پشتیبانی از برنامه نویسی شی گرا ( Object Oriented Programming ): این خاصیت به برنامه نویسان و گسترش دهندگان این امکان را می دهد، تا بتوانند برنامه های کاربردی خود را پیاده، و آن را به سهولت گسترش دهند.
-     دارای تکنولوژی های متعدد کد باز و غیر کد باز: همان گونه که در پیشتر یادآور شدیم، جاوا متعلق به شرکت سان می باشد، اما شرکت های متعددی برای این زبان، تکنولوژی ها و فریم ورک های مختلفی را ارایه کرده اند.
توضیحی در مورد مثال ‌ های این فصل
لازم به ذکر است که گروهی از مثال ‌ های ارائه شده در این فصل اجرا نمی شوند. دلیل این امر آن است که برنامه نویس ابتدا باید با مفاهیم بنیادی جاوا آشنا سپس درگیر قواعد آن شود، در غیر اینصورت برنامه نویس و فراگیرنده دچار سر درگمی می ‌ شوند.
متد Main
پدر زبان جاوا زبان C است. قالب برنامه ‌ نویسی در زبان C  بر پایه توابع است و برای اجرای برنامه، مترجم زبان C  بدنبال تابع اصلی که همان تابع main  است می ‌ گردد و این تابع را اجرا می ‌ کند. پس اجرای برنامه شما با اجرای این تابع آغاز می ‌ گردد و هر کلاس شما که حاوی تابع یا همان متد main  باشد به عنوان کلاس اجرایی شما می ‌ تواند در نظر گرفته شود.
 
public static void main (String [] arg)
{
              System.out.print("Hello");
}
خروجی این برنامه فوق کلمه  Hello   است.
 
نوشتن توضیحات در برنامه
در صورتی که شما در زبان برنامه نویسی جاوا از علامت // استفاده کنید جاوا آن خط از برنامه را نادیده می ‌ گیرد. از این روش برای نوشتن توضیحات در برنامه استفاده می ‌ شود. به طور مثال :
public static void main (String [] arg)
{
            System.out.print("Hello"); //Tozihat
}
در صورتی که شما در زبان برنامه نویسی جاوا از علامت /** ... */ استفاده کنید جاوا آن قسمت از خطوط برنامه را نادیده می ‌ گیرد. از این روش برای نوشتن توضیحات در برنامه استفاده می ‌ شود. به طور مثال :
 
public static void main (String [] arg)
{
            System.out.print("Hello");
    /**
     * Tozihat
     */
}
متغیرها و نوع ‌ ها
همانطور که می ‌ دانید در دنیای واقعی اطلاعات به دسته ‌ های مختلفی تقسیم می ‌ شوند و هر دسته از نوع ‌ های مختلفی تشکیل شده است، مثلاً اطلاعات شخصی یک فرد شامل نام و نام خانوادگی وی که از نوع رشته ای و شماره شناسنامه که از نوع عددی و تاریخ تولد که از نوع تاریخ است. ما برای نگهداری این اطلاعات در کامپیوتر مجبوریم مقدار فضایی از حافظه کامپیوتر را به آن اختصاص دهیم. که توانایی نگهداری این اطلاعات را برای ما داشته باشد. به نوع اطلاعات در کامپیوتر Data Type  گفته می ‌ شود که از دید کلی به دسته ‌ های زیر تقسیم می ‌ شوند:
اطلاعات عددی: که مقادیر عددی را در خود ذخیره می ‌ کند.
اطلاعات حرفی: که برای نگهدا ر ی کاراکترها استفاده می ‌ شود .
اطلاعات ارجاعی: که برای دسترسی به یک محدوده خاص از فضای حافظه که دارای یک قالب خاص از اطلاعات می ‌ باشد، مورد استفاده قرار می ‌ گیرد.
اطلاعات منطقی: که از این نوع برای عملیات منطقی (صحیح یا غلط)، استفاده می ‌ شود.
زبان برنامه ‌ نویسی جاوا نیز نوع ‌ های اطلاعاتی مختلفی را در اختیار برنامه نویسان قرار مي ‌ دهد، این نوع ها عبارتند از:
int : که برای نگهداری اعداد صحیح استفاده می ‌ شود .
int i = 12;
long : برای نگهداری اعداد بسیار بزرگ مورد استفاده قرار می گیرد. علامت l در انتهای عدد مشخص کننده نوع long می باشد.
long i = 14 l ;
float : که برای نگهداری اعداد اعشاری کوتاه مورد استفاده قرار می ‌ گیرد. علامت f در انتهای عدد مشخص کننده نوع float می باشد.
float i = 13.5 f ;
double : که برای نگهداری اعداد اعشاری بلند مورد استفاده قرار می ‌ گیرد. علامت d در انتهای عدد مشخص کننده نوع double  می باشد.
double d = 14.0 d ;
char : که برای نگهداری یک کاراکتر استاندارد مورد استفاده قرار می ‌ گیرد. علامت ‘ در ابتدا و انتهای حرف مشخص کننده نوع کاراکتری می باشد.
char i = ‘ a ’ ;
boolean : که برای نگهداری یک حالت منطقی مورد استفاده قرار می ‌ گیرد.
boolean i = true ;
String : که برای نگهداری یک رشته مورد استفاده قرار می ‌ گیرد. (توجه داشته باشید که String   در حقیقت یک کلاس است) علامت " در ابتدا و انتهای جمله  مشخص کننده نوع رشته ای می باشد.
String i = “ salam donya ” ;
برای تعریف متغیر در جاوا بدین صورت عمل مي ‌ كنيم.
DataType  Variablename [variablenames];
مثال :
int num ;
int n1,n2;
float p;
این نکته را به یا داشته باشید که جاوا به حروف بزرگ و کوچک حساس است.
انواع عملگرها
وقتی ما اطلاعات را به منظور پردازش در کامپیوتر ذخیره می ‌ کن ی م پس باید دستوراتی برای پردازش نیز در نظر بگیریم که به این دستورات عملگر گفته می ‌ شود و برحسب نوع عملی که انجام می ‌ دهند به دسته ‌ های مختلفی تقسیم می ‌ شوند. برای مثال از عملگر"=" برای مقداردهی استفاده می ‌ شود و اصطلاحاً به آن عملگر Assignment  گفته می ‌ شود. مانند :
int number ;
number = 2 ;
با این عمل مقدار 2 به متغیر number  نسبت اعطا می ‌ شود .
عملگرهای محاسباتی
از این عملگرها برای انجام اعمال ریاضی بر روی مقادیر یا متغیرها استفاده می ‌ شود. این عملگرها عبارتند از :
* : برای عمل ضرب  مانند A * B
/   : برای عمل تقسیم  مانند A / B
+ : برای عمل جمع  مانند A + B
% : برای بدست آوردن حاصل باقیمانده یک تقسیم استفاده می ‌ شود مانند 5 % 2  که حاصل آن برابر 1 می ‌ باشد.
- : برای عمل تفریق و یا نشان دادن منهای یکانی از این عملگر استفاده می ‌ شود مانند 2 - 3 و یا 2-
++ : این عملگر یک واحد بر مقدار متغیر مورد نظر اضافه می ‌ کند مانند :
  A=2 ;
A++ ;
که بعد از اجرای این دستور مقدار A برابر 3 خواهد شد.
-- : این عملگر یک واحد از مقدار متغیر مورد نظر کم می ‌ کند مانند :
  A = 2 ;
A--;
که بعد از اجرای این دستور مقدار A  برابر 1 خواهد شد.
عملگر های رابطه ای
از این عملگرها برای مشخص کردن یا مقایسه رابطه بین دو یا چند حالت یا مقدار استفاده می ‌ شود. نتیجه حاصل از این عملگرها بر روی عملوندهای خود یک مقدار منطقی می ‌ باشد. البته این نکته را فراموش نکنید که دو عملوند این عملگرها باید از یک جنس یا یک نوع باشند. این عملگرها عبارتند از:
== :برای نشان دادن یا مقایسه دو چیز که مقادیر آنها باهم برابر باشد. مثلا A == B که اگر مقدار A   با مقدار B برابر باشد حاصل برابر با true (صحیح) و در غیر این صورت برابر با false (نادرست) می ‌ باشد .
> :برای نشان دادن یا مقایسه دو چیز که مقدار اولی از دومی کوچکتر باشد. مثلا A < B که اگر مقدار A از مقدار B کوچکتر باشد حاصل برابر با true (صحیح) و در غیر این صورت برابر با false (نادرست) می ‌ باشد.
< :برای نشان دادن یا مقایسه دو چیز که مقدار اولی از دومی بزرگتر باشد. مثلا A > B که اگر مقدار A از مقدار B بزرگتر باشد حاصل برابر با true (صحیح) و در غیر این صورت برابر با false (نادرست) می ‌ باشد.
=! :زمانی خروجی این عملگر برابر با true می ‌ باشد که مقدار دو عملوند آن باهم برابر نباشد. اگر A= 2  و B = 3  باشد در این صورت حاصل A != B  برابر با true  می ‌ شود.
البته در جاوا عملگرهای دیگری مانند => (کوچکتر مساوی) و =< (بزرکتر مساوی) نیز وجود دارد.
عملگر های منطقی
این عملگرها بر روی مقادیر منطقی عمل می ‌ کنند و نتیجه حاصل از آنها نیز یک مقدار منطقی است. این عملگرها در شرطها بسیار مورد استفاده قرار می ‌ گیرند. و عبارتند از:
 && : این عملگر جزء عملگرهای باینری می ‌ باشد یعنی دو ورودی دارد. عملگر &&  معادل "و" می ‌ باشد. این عملگر بر پایه جدول زیر عمل می ‌ کند.
 
F
T
AND
F
T
T
F
F
F

 
همانطور که می ‌ بینید زمانی خروجی این عملگر صحیح است که حتماً دو ورودی آن صحیح باشد.
|| : این عملگر نیز جزء عملگرهای باینری می ‌ باشد یعنی دو ورودی دارد. عملگر ||  معادل "یا" می ‌ باشد. این عملگر بر پایه جدول زیر عمل می ‌ کند.
 
F
T
OR
T
T
T
F
T
F

 
همانطور که می ‌ بینید زمانی خروجی این عملگر ناصحیح است که فقط هر دو ورودی آن ناصحیح باشد.
! : این عملگر جزء عملگرهای تک مقدار می ‌ باشد یعنی فقط یک عملوند دارد. این عملگر را "نقیض" می ‌ نامند و بر پایه جدول زیر عمل می ‌ کند.
 
F
T
 
T
F
NOT

 
همانطور که می ‌ بینید این عملگر ورودی خود را از لحاظ منطقی برعکس می ‌ کند. یعنی صحیح را ناصحیح و ناصحیح را به صحیح تغییر می ‌ دهد.
عملگرهای انتسابی
از این عملگرها برای مقداردهی متغیرها و یا بدست آوردن حاصل یک عبارت استفاده می ‌ شود. که ما در اینجا چند عدد از پر کاربردترین آنها را معرفی می ‌ کنیم.
= : همانطور که گفتیم از این عملگر برای مقداردهی مستقیم به یک متغیر استفاده می ‌ شود مانند:
   Number = 2 ;
  =+ : این عملگر علاوه بر انتساب حاصل عبارت یا مقدار سمت راست خود را با مقدار فعلی متغیر سمت چپ خود جمع می ‌ کند.
مثال :
Num += 3 ; 
معادل خط زیر می ‌ باشد.
Num = Num + 3 ; 
همانند مثال بالا برای بقیه عملگرهای انتسابی هم به روش ذیل می ‌ توان عمل کرد.
=- : برای عمل تفریق                                                                  Num -= 2 ;  ==> Num = Num - 2 ;
=* : برای عمل ضرب                                                                  Num *= 2 ;  ==> Num = Num * 2 ;
=/ :  برای عمل تقسیم                                                               Num /= 2 ;  ==> Num = Num / 2 ;
=% : برای عمل  باقیمانده                                                       Num %= 2 ;  ==> Num = Num % 2 ;
البته عملگرهای دیگری نیز برای عملیات ‌ های منطقی مانند =& وجود دارد که در اینجا به آنها اشاره نمی ‌ کنیم.
تقدم عملگرها
یکی از اساسی ‌ ترین بحث ‌ ها در استفاده از عملگرها بحث تقدم عملیاتی عملگرها می ‌ باشد. زیرا رعایت تقدم باعث تغییر در مقدار حاصل عبارت می ‌ شود برای مثال حاصل عبارت 3 + 2 * 5 برابر با 13 است در صورتی که در نگاه اول بنظر می ‌ رسد که حاصل عبارت برابر با 25 باشد. علت اینکه این حاصل با فرض ما متفاوت است تقدم عملگر ضرب نسبت به جمع است در واقع اول عمل ضرب انجام می ‌ شود که حاصل  (2 * 5) = 10 می ‌ باشد و بعد عمل جمع و در نهایت جواب 13 می ‌ شود.
تقدم عملگرها در جاوا به صورت زیر است :
         1 عبارت درون داخلی ترین پرانتز
         2 عملگرهای بیتی ( که در این کتاب توضیح ندادیم )
         3 عملگرهای محاسباتی
         4 عملگرهای منطقی
         5 عملگرهای رابطه ‌ ای
         6 عملگرهای انتسابی
 
البته در درون هر کدام از این دسته ‌ ها نیز بین عملگرها تقدم وجود .

----------------------------------------------------------------------------------------
ادامه مبحث  در بخش بعدی 
با ما همرا باشید 
www.safarme.com