ساخت یک برنامه ساده در JAVA
اجازه بدهيد يک برنامه بسيار ساده به زبان جاوا بنويسيم. اين برنامه يک پيغام را نمايش میدهد. در اين درس میخواهم ساختار و دستور زبان يک برنامه ساده جاوا را توضيح دهم. قبل از ایجاد برنامه به این دو نکته خیلی مهم توجه کنید:
یکی از تنظیماتی که قبل از شروع این درس توصیه می کنیم که اعمال کنید این است که پسوند فایل ها داخل ویندوز را قابل مشاهده کنید. برای این کار به My Computer رفته و به صورت زیر از منوی Organize گزینه Folder and search options را بزنید:
از پنجره باز شده به صورت زیر به سربرگ View رفته و تیک کنار گزینه Hide Extension for khnown file types را بردارید:
در ادامه شما را نحوه ایجاد اولین برنامه در جاوا با و بدون استفاده از NetBeans آشنا می کنیم.
بدون استفاده از NetBeans
همانطور که گفته شد، شما برای کامپایل و اجرای برنامههای جاوا به ابزاری به نام JDK نیاز دارید. JDK مخفف عبارت Java Development Kit است و شامل ابزارهای مورد نیاز شما برای اجرای برنامههای جاوا میشود. این مجموعه شامل ابزاری به نام JVM یا Java Virtual Machine است که ماشین مجازی جاوا نام دارد و وظیفهی کامپایل و اجرای کدهای شما را برعهده دارد. خود JVM هم شامل ابزارهای دیگری است. مثلاً javac یا java compiler اختصاصاً وظیفهی کامپایل کردن برنامهها را برعهده دارد. در درس قبل JDK را نصب کردیم و الان فرض میکنیم که شما هیچ IDE مانند netbeans و یا eclipse در اختیار ندارید و میخواهید یک برنامه جاوا بنویسید. در این برنامه میخواهیم پیغام Welcome to JAVA Tutorials چاپ شود. ابتدا یک ویرایشگر متن مانند Notepad را باز کرده و کدهای زیر را در داخل آن نوشته (حروف بزرگ و کوچک را رعایت کنید) و با پسوند java ذخیره کنید :
public class MyFirstProgram { public static void main(String[] args) { System.out.println("Welcome to JAVA Tutorials!"); } }
و در درایو D و با نام و پسوند MyFirstProgram.java ذخیره میکنیم :
یک بار دیگر تاکید می کنم که فایل باید به صورت زیر و با پسوند java ذخیره و نوع کدگذاری (Encoding) آن بر روی ANSI قرار داده شود:
نگران توضیح کدهای بالا نباشید، در ادامه در مورد آنها توضیح میدهیم. پس شکل نهایی برنامه، باید به صورت زیر باشد :
حال نوبت به اجرای برنامه میرسد :
فایل ما در درایو D قرار دارد. ابتدا cmd را باز کرده و کد زیر را در داخل آن نوشته و دکمه Enter را میزنید :
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\JavaTutorials>d: D:\>javac MyFirstProgram.java D:\>
با اجرای کد بالا هیچ پیغامی چاپ نمیشود چون که دستور javac برنامه را کامپایل کرده و یک فایل همنام با کلاس MyFirstProgram و با پسوند class. ایجاد میکند :
اگر فایل ایجاد شده یعنی MyFirstProgram.class را با برنامه NotePad باز کنید مشاهده میکنید که شامل کدهایی نا مفهوم میباشد :
به این کدهای نامفهوم که برای ماشین مجازی جاوا (JVM) قابل فهم میباشد، ByteCode گفته میشود. حال برای اجرای فایل MyFirstProgram.class باید دستور زیر را بنویسیم :
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\JavaTutorials>d:
D:\>javac MyFirstProgram.java
D:\>java MyFirstProgram
Welcome to JAVA Tutorials!
D:\>
مشاهده میکنید که فایل جاوا اجرا و پیغام Welcome to JAVA Tutorials چاپ شد.
با استفاده از NetBeans
برنامه NetBeans را اجرا کنيد. از مسيري که در شکل زير نشان داده شده است يک پروژه جديد ايجاد کنيد :
حال با يک صفحه مواجه میشوید. طبق شمارههایی که در شکل زير نمايش داده شدهاند گزینهها را انتخاب کرده و به مرحله بعد برويد :
با زدن دکمه Next صفحهای به صورت زير نمايش داده میشود. در اين پنجره نام پروژهتان (MyFirstProgram) را نوشته و سپس بر روي دکمه Finish کليک کنيد :
بعد از فشردن دکمه Finish ، وارد محيط کدنويسي برنامه به صورت زير میشویم :
محيط کدنويسي یا IDE جايي است که ما کدها را در آن تايپ میکنیم. کدها در محيط کدنويسي به صورت رنگي تايپ میشوند در نتيجه تشخيص بخشهاي مختلف کد را راحت میکند. همانطور که در شکل بالا مشاهده میکنید ما کدهاي پيشفرض را به سه قسمت تقسيم کردهایم. قسمت اول Package، قسمت دوم کلاس و قسمت سوم متد ()main. نگران اصطلاحاتي که به کار برديم نباشيد آنها را در فصول بعد توضيح خواهم داد. در محل کد نويسي کدهايي از قبل نوشته شده که براي شروع شما آنها را پاک کنيد و کدهاي زير را در محل کدنويسي بنويسيد :
package myfirstprogram; public class MyFirstProgram { public static void main(String[] args) { System.out.println("Welcome to JAVA Tutorials!"); } }
ساختار يک برنامه در جاوا
مثال بالا سادهترین برنامهای است که شما میتوانید در جاوا بنويسيد. هدف در مثال بالا نمايش يک پيغام در صفحه نمايش است. هر زبان برنامه نويسي داراي قواعدي براي کدنويسي است. اجازه بدهيد هر خط کد را در مثال بالا توضيح بدهيم. در خط اول Package تعريف شده است که شامل کدهاي نوشته شده توسط شما است و از تداخل نامها جلوگيري میکند. درباره Package در درسهاي آينده توضيح خواهيم داد.
در خط 4 آکولاد (}) نوشته شده است. آکولاد براي تعريف يک بلوک کد به کار میرود. جاوا يک زبان ساخت يافته است که شامل کدهاي زياد و ساختارهاي فراواني میباشد. هر آکولاد باز ({) در جاوا بايد داراي يک آکولاد بسته (}) نيز باشد. همه کدهاي نوشته شده از خط 4 تا خط 9 يک بلوک کد است.
در خط 3 يک کلاس تعريف شده است. درباره کلاسها در فصلهاي آينده توضيح خواهيم داد. در مثال بالا کدهاي شما بايد در داخل يک کلاس نوشته شود. بدنه کلاس شامل کدهای نوشته شده از خط 4 تا 9 میباشد. خط 5 متد ()main يا متد اصلي ناميده میشود. هر متد شامل يک سري کد است که وقتي اجرا میشوند که متد را صدا بزنيم. درباره متد و نحوه صدا زدن آن در فصول بعدي توضيح خواهيم داد. متد ()main نقطه آغاز اجراي برنامه است. اين بدان معناست که ابتدا تمام کدهاي داخل متد ()main و سپس بقيه کدها اجرا میشود. درباره متد ()main در فصول بعدي توضيح خواهيم داد. متد ()main و ساير متدها داراي آکولاد و کدهايي در داخل آنها میباشند و وقتي کدها اجرا میشوند که متدها را صدا بزنيم. هر خط کد در جاوا به يک سيميکولن (;) ختم میشود. اگر سيميکولن در آخر خط فراموش شود برنامه با خطا مواجه میشود. مثالي از يک خط کد در جاوا به صورت زير است :
System.out.println("Welcome to JAVA Tutorials!");
اين خط کد پيغام Welcome to JAVA Tutorials! را در صفحه نمايش نشان میدهد. از متد ()println براي چاپ يک رشته استفاده میشود. يک رشته گروهي از کاراکترها است که به وسيله دابل کوتيشن (“) محصور شده است. مانند :“Welcome to JAVA Tutorials!”
يک کاراکتر میتواند يک حرف، عدد، علامت يا …. باشد. در کل مثال بالا نحوه استفاده از متد ()println نشان داده شده است. اين متد يک متد از کلاس PrintStream بوده و از آن براي چاپ مقدير استفاده میشود. out يک فيلد استاتيک از کلاس System و کلاس System هم يک کلاس از پيش تعريف شده در جاوا میباشد. جاوا فضاي خالي و خطوط جديد را ناديده میگیرد. بنابراين شما میتوانید همه برنامه را در يک خط بنويسيد. اما اينکار خواندن و اشکال زدايي برنامه را مشکل میکند. يکي از خطاهاي معمول در برنامه نويسي فراموش کردن سيميکولن در پايان هر خط کد است. به مثال زير توجه کنيد :
System.out.println("Welcome to JAVA Tutorials!");
جاوا فضاي خالي بالا را ناديده میگیرد و از کد بالا اشکال نمیگیرد. اما از کد زير ايراد میگیرد.
System.out.println(; "Welcome to JAVA Tutorials!");
به سيميکولن آخر خط اول توجه کنيد. برنامه با خطاي نحوي مواجه میشود چون دو خط کد مربوط به يک برنامه هستند و شما فقط بايد يک سيميکولن در آخر آن قرار دهيد. هميشه به ياد داشته باشيد که جاوا به بزرگي و کوچکي حروف حساس است. يعني به طور مثال MAN و man در جاوا با هم فرق دارند. رشتهها و توضيحات از اين قاعده مستثني هستند که در درسهاي آينده توضيخ خواهيم داد. مثلاً کدهاي زير با خطا مواجه میشوند و اجرا نمیشوند :
system.out.println("Welcome to JAVA Tutorials!"); SYSTEM.OUT.PRINTLN("Welcome to JAVA Tutorials!"); sYsTem.oUt.pRinTLn("Welcome to JAVA Tutorials!");
تغيير در بزرگي و کوچکي حروف از اجراي کدها جلوگيري میکند. اما کد زير کاملاً بدون خطا است :
System.out.println("Welcome to JAVA Tutorials!");
هميشه کدهاي خود را در داخل آکولاد بنويسيد.
{ statement1; }
اين کار باعث میشود که کدنويسي شما بهتر به چشم بيايد و تشخيص خطاها راحتتر باشد. يکي از ويژگيهاي مهم جاوا نشان دادن کدها به صورت تو رفتگي است بدين معني که کدها را به صورت تو رفتگي از هم تفکيک میکند و اين در خوانايي برنامه بسيار مؤثر است.
ذخيره پروژه و اجراي برنامه
براي ذخيره پروژه و برنامه میتوانید به مسير File > Save All برويد يا از کليدهاي ميانبر Ctrl+Shift+S استفاده کنيد. همچنين میتوانید از قسمت Toolbar بر روي شکل زير کليک کنيد :
و براي اجراي برنامه هم از فلش سبزرنگ موجود در Toolbar و يا دکمه F6 استفاده کنيد :
با اجراي برنامه بالا مشاهده میکنید که رشته Welcome to JAVA Tutorials! در خروجي برنامه به صورت زير نمايش داده میشود :
وجود خط سبز در پايين فلش قرمز در شکل بالا نشان دهنده اجراي بدون نقص برنامه میباشد. حال که با خصوصيات و ساختار اوليه جاوا آشنا شديد در دسهاي آينده مطالب بيشتري از اين زبان برنامه نويسي قدرتمند خواهيد آموخت.
استفاده از Package
برای دسته بندی کلاسها و قرار دادن کلاسهای مرتیط با هم در یک مکان، جاوا از مفهومی به نام بسته یا package استفاده میکند. Package معادل فضای نام در سی شارپ هستند. یک دلیل برای گروه بندی کلاسها در package این است که امکان دارد دو برنامه نویس از دو کلاس هم نام استفاده کنند. با این کار از چنین برخوردهایی جلوگیری به عمل میآید. یعنی اگر دو کلاس هم نام در دو Package غیر همنام باشند مشکلی به وجود نمیآید. همانطور که در مثال بالا دیدید به طور پیشفرض NetBeatns هنگام ایجاد برنامه یک Package همنام با اسمی که برای برنامه انتخاب کردهایم با حروف کوچک و در داخل این Package هم کلاسی به همین اسم ایجاد میکند :
package myfirstprogram; public class MyFirstProgram { ... }
برای وارد کردن کلاس یک Package در داخل Package دیگر از کلمه کلیدی import به صورت زیر استفاده میشود :
import PackageName.ClassName
همانطور که در مثال بالا مشاهده میکنید برای استفاده از کلاسی که در یک Package قرار دارد در Package دیگر ابتدا کلمه import سپس نام Package ، بعد علامت نقطه و در آخر نام کلاس را مینویسیم. مثلاً برای استفاده از کلاس MyFirstProgram مربوط به پکیج myfirstprogram به صورت زیر عمل میشود :
import myfirstprogram.MyFirstProgram;
بستهها را میتوان به صورت تو در تو تعریف کرد. در این حالت در تعریف بسته یک کلاس، از بیرونیترین بسته شروع کرده و هر بسته را با نقطه (.) به بسته بعدی متصل میکنیم :
import firstPackage.secondPackage.ClassName
نکتهای که بهتر است در همین جا به آن اشاره کنم این است که اگر بخواهید کد زیر را بدون استفاده از NetBeans کامپایل و اجرا کنید، کامپایل میشود ولی در زمان اجرا با خطای Error: Could not find or load main class MyFirstProgram مواجه میشوید :
package myfirstprogram; public class MyFirstProgram { public static void main(String[] args) { System.out.println("Welcome to JAVA Tutorials!"); } }
کد بالا را با نام و پسوند MyFirstProgram.java و در درایو D ذخیره کنید. حال cmd را اجرا کرده و سعی کنید کد بالا را کامپایل و اجرا نمایید :
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\YounesJava>d:
D:\>javac MyFirstProgram.java
D:\>java MyFirstProgram
Error: Could not find or load main class MyFirstProgram
D:\>java -cp . myfirstprogram.MyFirstProgram
Welcome to JAVA Tutorials!
همانطور که مشاهده میکنید برای کامپایل کد بالا به صورت زیر عمل کردهایم :
javac MyFirstProgram.java
اما برای اجرای کد، اگر از دستور زیر استفاده کنیم با خطا مواجه میشویم :
java MyFirstProgram
دلیل وجود خطا، خط اول کد، یعنی package myfirstprogram; میباشد. برای رفع این مشکل یا باید خط مذکور را از برنامه حذف و برنامه را مجدداً کامپایل و اجرا کرد یا اگر آن را پاک نکنید باید از کد زیر برای اجرای کد استفاده کنید :
java -cp . myfirstprogram.MyFirstProgram
که در این صورت برنامه اجرا و پیغام Welcome to JAVA Tutorials! چاپ میشود. در درسهای آینده توصیه میکنیم که اگر میخواهید از NotePad و cmd برای اجرای کدها استفاده کنید این خط را از اول هم فایلها حذف و سپس برنامه را کامپایل و اجرا کنید.
سلام وقتی می خوام پروژه ایجاد کنم پوشه ای به اسم java نداره مال من که جاوا اپلیکیشن رو از توش انتخاب کنم لطفا کمکم کنید
با سلام
من بعد از نوشتن برنامه برنامه ام با فرمت داکیومنت اجرا می شه باید چی کار کنم
سلام، یعنی با پسوند Doc اجرا میشه؟ اگه اینطوره شما حتما درس رو از اول و با دقت مطالعه نکردین و مراحل رو درست انجام ندادین یا سیستمتون ویروسیه. همون ویروسی که همه پسوند ها رو به یه پسوند خاص تغییر میده.
سلام.
ببخشید میشه قسمته importرو توضیح بدین کجا بزنیم اونو
سلام من نرم افزار netbeans را نصب کردم با jdk و پیکربندی کردم
اما وقتی وارد نرم افزار میشم و صفحه میاد هرچی روی new file میزنم چیزی نمیاد ولی
چیز های دیگه رو بزنم میاد.نرم افزار رو هم یه بار پاک کردم و از جای دیگه دانلود کردم ولی درست نشد
باید چیکارش بکنم؟
سلام، نسخه netbeans و jdk تون با هم سازگار نیست. تو لینک زیر هر دو رو گذاشتم، دانلود و نصب کنید
http://dl.w3-farsi.com/Software/Java/NetBeans.v8.2-JDK.v8.Update.112.zip
سلام تا اینجا کار برای یک مبتدی مثل واقعا عالی بود
ولی کاش پایان هر درس یک تمرین هم میگذاشتین بهتر بود به نظرم
با سلام
من هر چی روی new project کلیک میکنم هیچی برام باز نمیشه چیکار کنم؟
سلام، نسخه netbeans و jdk تون با هم سازگار نیست. تو لینک زیر هر دو رو گذاشتم، دانلود و نصب کنید
http://dl.w3-farsi.com/Software/Java/NetBeans.v8.2-JDK.v8.Update.112.zip
سلام دوست عزیز و تشکر از جوابت درست شد اما یه مشکل دیگه تو برنامه نیت بینز دارم من تمامی کودها رو مطمینم که کاملا درست نویشتم باز هم زمانی که اجرا رو میزنم اجرا نمیشه و دو خط انگلیسی به رنگ قرمز میاره که نمیدونم چیه
فقط از آخرش همینو یادمه که به خط قرمز به انگلیسی نشته بود 7سیکند
سلام دوست عزیز خسته نباشی
من بعداز اینکه کودها رو داخل note pad نویشتم و داخل دریو D بنام MyFirstProgram.java ذخیره میکنم پسوند java گم میشه و تنها myfirstprogram ذخیره میشه
و زمانیکه تو cmd برنامه رو اجرا میکنم این ارور رو میده
file not find myfirstprogram.java
اگه میشه لطفا کمکم کنید و جوابم رو بدید
سلام، مرسی
پست قبل و این پست رو با دقت بخونید. همین پست رو اصلاح کردم، مخصوصا اون دو شکل اول رو ببینید و اعمال کنید.
سلام
وقتی برنامه را اجرا میزنم خطا میده!!!
http://uupload.ir/files/lx9m_untitled.jpg
برای رفع خطاش باید چکار کنم؟
سلام دوست عزیز
اون println ه نه printIn، بیشتر دقت بفرمایید. حرف (ال) کوچیک انگلیسیه نه حرف (آی) بزرگ
سلام
ممنون…
با سلام و خسته نباشید
من تمام مراحل نصبو همانطور ک گفتید انجام دادم برنامه اولی ( که در ویرایشگر متن گفتید بنویسید)نوشتم ولی cmdخطا میده..چکار کنم!؟خطاش برای چی هسش؟
ممنون
http://uupload.ir/files/9l4_error1.jpg
سلام،
دقیق دقیق عین کد گفته شده تو درس رو بنویسید و حروف بزرگ و کوچک رو رعایت کنید.
احتمالا نوع کدگذاری utf8 ه، حالا هر چی هست شما تغییرش بدین. یعنی وقتی گزینه Save As رو می زنید اون کادر پایین رو به ANSI تغییر بدین. از ++Notepad هم استفاده نکنید چون تنظیماتی داره که در وقوع این خطاها بی تاثیر نیستن
سلام
ممنون از رهنماییتون و سرعت جواب دادنتون….کدگذاری را به ANSI تغییر دادم درست شد… .
موفق باشید
خواهش می کنم، همچنین