هفت سال قبل اولین مطلبم در مورد جاوا را با عنوان «تاریخچه زبان جاوا» نوشتم. مطلبی که در ادامه مشاهده میفرمایید، ادامه آن مقاله و راهنمایی برای شروع برنامهنویسی به زبان جاوا است.
معرفی JDK
JDK که مخفف کلمه Java Development Kit میباشد، مجموعهای از کلاسها و ابزارهاست که با استفاده از آن میتوان یک برنامه جاوا را کامپایل و اجرا کرد. JDK از اجزای زیر تشکیل شده است:
- مجموعهای از کلاسها (که در واقع کتابخانه یا Library جاوا محسوب میشوند.)
- کامپایلر
- دیباگر یا اشکالزدا (Debugger)
- محیط اجرایی جاوا JRE
JDK همچنین حاوی ابزارهایی است که با استفاده از هریک از آنها میتوانید عملیات مختلفی که در زبان جاوا وجود دارند را انجام دهید. برخی از این ابزارها (دستورات) عبارتند از:
- javac: ابزاری برای کامپایل کردن کدهای جاواست. این ابزار از روی فایلهای *.java فایلهای *.class میسازد.
- java: این ابزار، برنامهای را که کامپایل شده است را اجرا میکند.
- jar: از روی مجموعهای از فایلها، یک فایل jar میسازد. فایلهای jar، فایلهای بستهبندی شبیه zip هستند که در جاوا استفاده میشوند. این فایلها پسوند *.jar دارند.
- javadoc: از این ابزار برای تولید مستندات کلاسهای جاوا استفاده میشود.
- jdb: ابزاری برای اشکالزدایی (debug) برنامههاست.
- appletviewer: ابزاری برای تست و مشاهده اپلتهاست. زمانیکه در حال نوشتن یک اپلت هستید، با استفاده از این ابزار میتوانید آن را اجرا نموده و عملکرد صحیح آن را بررسی کنید.
نصب JDK
ابتدا نسخه متناظر با سیستم عامل خود را از صفحه Java SE Development Kit 7 Downloads دریافت نمایید. در مراحل نصبی که در ادامه مشاهده میفرمایید، <version> زیر نسخه مرتبط با بروزرسانی JDK است. همچنین در تمامی مراحل از نسخه 64bit جاوا استفاده شده است.
نصب JDK در گنو/لینوکس
بسته deb برای اوبونتو و توزیعهای مشابه
دستورات زیر را برای اضافه کردن مخزن ppa و نصب جاوا به ترتیب در خط فرمان وارد نمایید:
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-installer sudo apt-get install oracle-java7-set-default sudo update-java-alternatives -s java-7-oracle
در صورتیکه هنگام دانلود جاوا با خطای Forbidden 403 مواجه شدید، دستور نصب چندین بار تکرار نمایید تا نهایتا به یک mirror باز دست یابید. برای مطمئن شدن از نصب کامل جاوا دستور زیر را وارد نمایید:
java -version
خروجی دستور بالا باید مشابه زیر باشد:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
بسته rpm برای RHEL، CentOS 6/5 و Fedora 18-12
بعد از دریافت فایل rpm از سایت اوراکل دستور زیر را در خط فرمان وارد نمایید:
rpm -Uvh jdk-7u45-linux-x64.rpm
برای مطمئن شدن از نصب کامل جاوا دستور زیر را وارد نمایید:
java -version
خروجی دستور بالا باید مشابه زیر باشد:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
سایر توزیعهایگنو/لینوکس
وارد خط فرمان (ترمینال) شده و با دستور cd به پوشهای که قصد نصب جاوا در آن را دارید بروید. با دستور mv فایل jdk-7u<version>-linux-x64.tar.gz را به این پوشه منتقل نمایید. در نهایت با دستور tar فایل را از حالت فشرده خارج نمایید:
tar zxvf jdk-7u-linux-x64.tar.gz
نصب JDK در ویندوز
برای نصب حداقلی JDK کافیست فایل jdk-7<version>-windows-x64.exe را اجرا کرده و مراحل نصب را طی نمایید.
نصب JDK در مک
برای نصب JDK در مک بر روی فایل jdk-7u<version>-macosx-x64.dmg دوبار کلیک نموده و در پنجره جدید بر روی فایلی که پسوند pkg دارد دوبار کلیک نمایید تا برنامه install اجرا شود. مراحل نصب را تا انتها ادامه دهید تا جاوا به طور کامل رو روی سیستم عامل شما نصب شود.
عناصر پایه زبان جاوا
قبل از شروع به کدنویسی به هر زبانی، ابتدا باید عناصر پایهای آن زبان مانند کلمات کلیدی، انواع داده و ... را فرا گرفت. در ادامه عناصر پایهای زبان جاوا و نحوه پیادهسازی و استفاده برخی از آنها را نوشتهام.
کلمات کلیدی (Keywords)
کلمات کلیدی به کلماتی گفته میشود که برای کامپایلر و زبان برنامهنویسی با معنا بوده و نحوه تغسیر یک کد را مشخص میکنند. در زبان جاوا این کلمات تماما به حروف کوچک بوده و امکان استفاده از آنها به عنوان نام متغیر، نام کلاس، نام تابع و متد وجود ندارد. زبان جاوا پنجاه کلمه کلیدی دارد که عبارتند از:
abstract | continue | for | new | switch |
assert | default | goto | package | synchronized |
boolean | do | if | private | this |
break | double | implements | protected | throw |
byte | else | import | public | throws |
case | enum | instanceof | return | transient |
catch | extends | int | short | try |
char | final | interface | static | void |
class | finally | long | strictfp | volatile |
const | float | native | super | while |
توضیحات کد (Comments)
منظور از توضیحات، عباراتی هستند که کامپایلر آنها را هنگام کامپایل نادیده میگیرد. دلایل نوشتن توضیحات در کد عبارتند از:
- خواناتر کردن کد برنامه
- مشخص کردن مواردی که نیاز به رسیدگی دارند (TODO)
- مشخص کردن کلی اطلاعات نگارش کد مانند نسخه، برنامهنویس، زمان نگارش، تاریخ بروزرسانی، محیط برنامهنویسی مورد استفاده و...
- تعریف نحوه استفاده از یک تابع (Method)، پارامترها و خروجی آن
- استفاده از ابزارهایی مانند javadoc برای ساخت خودکار مستندات از توضیحات موجود در کدها
برای نوشتن توضیحات (Comment) در زبان جاوا، با توجه به توضیح مورد نظر میتوان آن را به یکی از سه نوع خطی، چند خطی (بلوکی) و مستنداتی (Documentation) نوشت. مانند:
خطی
// This is an end-of-line comment
چند خطی
/* This is a multi-line comment. It may occupy more than one line. */
با هدف تولید مستندات (Documentation)
/** * This is a documentation comment. * * @author Saeid Zebardast * @see Docs * @since 1.0 */
انواع داده (Data Types)
در زبان جاوا ۸ نوع داده اولیه (Primitive Data Type) تعریف شده است. توضیحات ۸ نوع داده اولیه جاوا در جدول زیر آماده است:
نوع | حاوی | پیشفرض | اندازه | محدوده قابل استفاده و نمایش |
---|---|---|---|---|
boolean | true یا false | false | 1bit | NA |
char | کاراتر یونیکد | \u0000 | 16bits | \u0000 to \uFFFF |
byte | داده عددی صحیح | 0 | 8bits | -128 .. 127 |
short | داده عددی صحیح | 0 | 16bits | -32,768 .. 32,767 |
int | داده عددی صحیح | 0 | 32bits | -2,147,483,648 .. 2,147,483,647 |
long | داده عددی صحیح | 0 | 64bits | -9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807 |
float | داده عددی اعشاری | 0.0 | 32bits | 3.40282347 x 1038, 1.40239846 x 10-45 |
double | داده عددی اعشاری | 0.0 | 64bits | 1.7976931348623157 x 10308, 4.9406564584124654 x 10-324 |
برای تعریف متغیر میتوان از این نوع دادهها یا نوع دادههای پیچیدهتر استفاده کرد. نوع دادهها پیچیدهتر با استفاده از دادههای اولیه تعریف میشوند. به عنوان مثال نوع داده رشته (String) از یک یا ترکیب چند کاراکتر تولید میشود. هر کاراکتر در زبان جاوا داخل یک quote قرار میگیرد در حالیکه یک رشته داخل double quote قرار میگیرد:
char myChar = 'a'; String s = "Hello guys";
عملگرها (Operators)
عملگرها در زبان جاوا مشابه زبان سی پلاس پلاس میباشند. در جدول زیر فهرست عملگرهای زبان جاوا را مشاهده مینمایید:
اولویت | عملگر | توضیحات |
---|---|---|
1 | () | فراخوانی متد |
[] | دسترسی به آرایه | |
. | انتخاب یک عضو کلاس | |
2 | ++ -- | افزایش و کاهش پسوندی |
3 | ++ -- | افزایش و کاهش پیشوندی |
+ - | علامت منفی و مثبت اعداد | |
! ~ | NOT منطقی و NOT بیتی | |
(type) val | تبدیل نوع val به type | |
new | ایجاد یک instance از کلاس یا ساخت آرایه | |
4 | * / % | ضرب، تفریق و باقیمانده تقسیم |
5 | + - | جمع و تفریق |
+ | پیوست دادن رشتهها به یکدیگر (String concatenation) | |
6 | << >> >>> | Bitwise left shift, signed right shift and unsigned right shift |
7 | < <= | رابطه کوچکتر و کوجکترمساوی |
> >= | رابطه بزرگتر و بزرگترمساوی | |
instanceof | مقایسه نوع یک آبجکت | |
8 | == != | رابطه برابری و نابرابری |
9 | & | AND بیتی و منطقی |
10 | ^ | XOR بیتی و منطقی |
11 | | | OR بیتی و منطقی |
12 | && | شرط AND منطقی |
13 | || | شرط OR منطقی |
14 | c ? t : f | شرط (if) یک خطی |
15 | = | انتساب یک مقدار |
+= -= | انتساب افزایش و کاهشی | |
*= /= %= | انتساب با عملگر ضرب، تقسیم و باقیمانده تقسیم | |
<<= >>= >>>= | انتساب با bitwise left shift, signed right shift and unsigned right shift | |
&= ^= |= | انتساب با AND, XOR و OR بیتی |
گرامر و نحو کدنویسی (Syntax)
به منظور فراگیری اولیه گرامر و نحو کدنویسی در زبان جاوا قطعه کد زیر، معروف به Hello World را در نظر بگیرید:
/**************************************** * Compilation: javac HelloWorld.java * Execution: java HelloWorld * * @author Saeid Zebardast * Prints "Hello, World". By tradition, this is * everyone's first program. * * % java HelloWorld * Hello, World * ****************************************/ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } }
- خط 1 تا 12: توضیحات برنامه هستند که شامل نحوه کامپایل، اجرا و خروجی تولید شده آن میباشند.
- خط 14: تعریف کلاس و نام آن. این کلاس به صورت public تعریف شده. دقت کنید که هر فایل .java فقط میتواند یک کلاس public داشته باشد و نام این کلاس باید با نام فایل برابر باشد.
- خط 16: تعریف متد main برای اجرا. با توجه به ضرورت متد main باید به صورت public و static و بدون خروجی (void) تعریف شود. دقت کنید که زبان جاوا به کوچک و بزرگ بودن حروف حساس است (case-sensitive).
- خط 17: چاپ عبارت Hello, World در خروجی (کنسول)
محیطهای برنامهنویسی برای جاوا
شما میتوانید از هر ویرایش متنی مانند Notepad، Notepad++، Sumblime و Vi برای نوشتن و ویرایش کدهای جاوا استفاده نمایید. با این حال محیطهای یکپارچه توسعه نرمافزار (IDE) مانند IntelliJ IDEA، NetBeans و Eclipe نیز استفاده نمایید. من IntelliJ IDEA را نسبت به سایر نرمافزارها ترجیح میدهم.
چند نکته
- این راهنما براساس نسخه ۷ جاوا نوشته شده است.
- این مطلب فقط شروعی برای برنامهنویسی جاوا بوده و دربرگیرنده موارد ابتدایی در این زمینه است.
- من متوجه تحریم بودن ایران از سوی شرکت اوراکل هستم ولی از طرفی بر این باورم که مطمئنا شما راهی برای دور زدن این تحریم خواهید یافت.
مدتی بود که می خواستم جاوا رو یاد بگیرم، خوب الان وقتشه :)
پاسخحذفبسيار عالي استفاده كرديم. اگه ميشه ادامه بديد.
پاسخحذفسلام استاد گرامی! خسته نباشید.
پاسخحذفانجمنی با امکانات بالا و ظاهری زیبا و کاربر پسند تر از سایت های همکار راه اندازی کردم که خوشحال میشم توی اون عضو شید و سر بزنید و سایت رو با کمک هم بالا بکشیم... آدرس سایت:
http://www.ubuntuforums.ir/
خوشحال میشم ثبت نام کنید و سایت رو به دوستان و آشنایان گنو/لینوکسیتون معرفی کنید! :دی
روزخوش.
سلام،لطف میکنید وجواب مسئله زیررابرام بفرستید
پاسخحذفترمینالی به نام خودتان ایجاد کنید.در مسیر جاری دو پوشه به نامهای azsysو pnu ایجاد کنید .به پوشه azsysتغییر مسیر دهید و در آن فایلی به نام نمرات ایجاد کرده و داخل آن 3سطر نام و نام خانوادگی و نمره وارد کنید.پوشه azsys را به pnu انتقال دهید.با دستور مورد نظر تمام جزئیات پوشه pnu را مشاهده کنید.به شکل عددی از پوشه pnu مجوز خواندن و نوشتن را از گروه بگیرید.با دستور مورد نظر حجم فایلها وپوشه های مسیر جاری را ببینید. مجوز اجرا را به فایل نمرات بدهید. سه دستور آخری که وارد سیستم شده را نشان دهید.از طریق کاربر root مسیر جاری را نشان دهید.به دایرکتوری proc رفته و محتویات فایلهای موجود در proc را نشان دهید.
سلام آقای زبردست، یک خواهش داشتم ازتون، من خیلی اینجا سر میزنم و چون جاوا کار دیگه ای (در سطح پیشرفته) نمیشناسم از شما این درخواست رو دارم اگه امکانش هست مبحث Dynamic Proxies های جاوا رو برام توضیح بدید. یه چیزهایی فهمیدم ازش ولی در کل گیج شدم ...
پاسخحذفخیلی سپاسگزار خواهم بود اگر کمکم کنید.
سلام،
پاسخحذفتلاش میکنم تا در اولین فرصتی که میتونستم در این مورد مطلبی بنویسم.
بسیار سپاسگزارم.
پاسخحذفخیلی ممنون از مطالب خوبتون
پاسخحذفنظر شخصی بنده اینه که هرکی می خواد Programing یاد بگیره Java بهترین زبانی است که میتونه بره یاد بگیره، و همیشه برای این زبان کار هست، و نکته ای که تو یادگیری وجود داره اینه که هیچکس به اندازه خود آدم نمیتونه به خودش کمک کنه، من خودم واقعا خیلی علاقه مند به یادگیری این زبان هستم در اولین فرصت که وقت کنم حتما میرم سروقتش، آقای زبردست چند تا لینک خوب انگلیسی زبان میشه معرفی کنی؟
پاسخحذفمهندس اینجارو یه نگاه بنداز نظرت رو بهم بگو:
پاسخحذفhttp://overapi.com/
به نظر خودم واسه آموزش جای خوبی نیست
پاسخحذفسایتی که معرفی کردی فقط برگه تقلب زبانهای مختلف رو گردآوری کرده. این سایت در مواقعی به درد میخوره که قصد مرور امکانات و دستور زبان یک زبان رو داشته باشین. برای یادگیری بهتره که مجموعهای از آموزشها رو به ترتیب فرا گرفت.
پاسخحذفسلام،
پاسخحذفبهترین مرجع خود سایت اوراکل هست که تمرینات و مستندات خیلی خوبی داره:
Learning the Java Language
خیلی عالی بود ممنونم
پاسخحذفسلام. من یه دانشجوام که جاوا تعطیلم. استادمون چند تا تمرین داده که نمی تونم کاریش بکنم و 5 نمره امتحان داره. شما جایی یا سایتی میتونید معرفی کنید که تمرین جاوا حل کنن یا داشته باشن؟ خیلی خیلی خیلی ممنون میشم اگه جوابمو بدید.
پاسخحذفسلام،
پاسخحذفدر حال حاضر سایتی به زبان فارسی سراغ ندارم ولی اگه زبانتون خوبه میتونید به سایت اوراکل سر بزنید:
http://docs.oracle.com/javase/tutorial
مرسی آقای زبردست از اینکه منو خوندید و جواب دادین. راستش مشکل توی اوراکل بیشتر شد چون هم انگلیسیه و هم اینکه خیلی تخصصی تر از حد این تمریناست. دیگه فکر می کنم چاره ای نیست جز پاس نشدن. بازم مرسی.
پاسخحذف