آموزش جاوا امکانات و قابلیت های متعددی دارد که در زیر به آن ها اشاره می کنیم:
از آنجایی که گرامر زبان Java مبتنی بر C++ است، آن دسته از برنامه نویسانی که قبلا با C++ کار کرده اند به راحتی می توانند Java را نیز یاد بگیرند. همچنین بسیاری از قابلیت هایی که کم استفاده می شوند یا در کد سردرگمی ایجاد می کنند نظیر explicit pointer ها (اشاره گرهای صریح)، سربارگذاری عملگرها (operator overloading) را حذف کرده است. این زبان با برخورداری از قابلیت مدیریت خودکار حافظه (garbage collection) می تواند آبجکت های بلا استفاده را از حافظه حذف کند.
منظور از شی گرایی، سازمان دهی نرم افزار مورد نظر در قالب ترکیبی از انواع آبجکت است که علاوه بر داده های برنامه، رفتار و قابلیت های مختلف آن را در خود کپسوله می کند.
برنامه نویسی شی گرا یا OOP در واقع یک تکنیک برنامه نویسی است که با رعایت کردن یک سری قوانین، توسعه ی نرم افزار و نگهداشت آن را ساده می سازد.
مفاهیم و اصول OOP به شرح زیر می باشند:
مستقل از بستر اجرا (Platform independent)
بستر اجرا یا platform عبارت است از محیط سخت افزاری و نرم افزاری که برنامه در آن اجرا می شود. platform به دو بخش تقسیم می شود: 1. مبتنی بر نرم افزار 2. مبتنی بر سخت افزار. Java با بستر اجرای نرم افزاری سروکار دارد.
گفتنی است که پلت فرم جاوا با سایر پلت فرم ها تفاوت دارد از این نظر که یک بستر اجرای نرم افزاری است که بر پایه ی سایر پلت فرم های مبتنی بر سخت افزار ساخته شده است و بر روی آن ها اجرا می شود. Java از دو کامپوننت تشکیل شده است:
جالب است بدانید که کد جاوا بر روی چندین محیط قابل اجرا می باشد که از جمله ی آن ها می توان به ویندوز، لینوکس، سلاریس و مک اشاره کرد. کد جاوا را ابتدا کامپایلر ترجمه کرده و به bytecode که یک زبان میانی است تبدیل می کند. Bytecode یک کد مستقل از پلت فرم است که بر روی محیط های مختلف اجرا می شود و با شعار یکبار بنویس و همه اجرا کن کاملا منطبق است.
جاوا Java به دلایل زیر یک زبان امن درنظر گرفته می شود:
این مقدار امنیت از سمت زبان Java تامین می شود. علاوه بر این خود توسعه دهنده نیز می تواند از طریق SSL، JAAS و Cryptography/رمزنگاری سطح امنیت اپلیکیشن های Java را بالا ببرد.
واژه ی انگلیسی Robust به معنای قدرتمند بودن می باشد. Java زبانی است که خود حافظه را به صورت بهینه مدیریت کرده، دارای سیستم memory management خودکار کارا و بهینه می باشد. در زبان مذکور خبری از pointer یا متغیری که آدرس متغیر دیگری را در خود نگه می دارد نیست و این امر سطح ایمنی اپلیکیشن را بالا می برد. زبان Java از سیستم مدیریت حافظه ی خودکار که garbage collector نام دارد برخودار است. علاوه بر این، خطاهایی که در زمان اجرا رخ می دهند را مدیریت نموده (از exception handling پشتیبانی می کند) و از مکانیزم بررسی نوع داده ای (type checking) پشتیبانی می کند. تمامی ویژگی های نام برده Java را قدرتمند می سازند.
بدین معنی است که نرم افزار توسعه یافته با Java طوری طراحی شده است که از محیط یا بستر اجرایی که قرار است در آن نصب و راه اندازی شود، کاملا مستقل است (target platform independant). به طور مثال اندازه ی انواع داده ای اولیه این زبان در انواع محیط های سخت افزازی و نرم افزاری ثابت است. در زبان برنامه نویسی C، انواع داده ای int (عدد صحیح) در معماری 32 بیتی 2 بایت را به خود تخصیص می دهد و در معماری 64 بیتی 4 بایت را اشغال می کند. این در حالی است که نوع داده ای int زبان java در هر دو معماری مقداری یکسان از حافظه را اشغال می کند.
می توان بایت کد جاوا را به هر بستر اجرایی (platform) انتقال داده و در آنجا از کد مورد نظر خروجی گرفت.
جاوا Java سریع تر از کدهای تفسیر شده ی قدیمی عمل می کند چراکه byte code جاوا به کد طراحی شده برای سخت افزار و سیستم عامل خاص/Native code نزدیک است. با این وجود کد جاوا که ابتدا کامپایل و بعد تفسیر می شود، نسبت به زبان های منحصرا کامپایلی نظیر C++ کندتر اجرا می شود.
جاوا Java زبانی است که توسعه دهنده با آن می تواند اپلیکیشن هایی با مقایس بزرگ و توزیع شده پیاده سازی کند. RMI و EJB دو فریم ورکی هستند که برای ساخت اپلیکیشن های توزیع شده بکار می روند. می توان با فراخوانی متدها از هر دستگاهی در اینترنت به فایل های مورد نظر دسترسی داشته باشید.
هر thread مانند یک برنامه ی مستقل می باشد که به موازات برنامه ی دیگری اجرا می شود. می توان به واسطه ی thread، با Java برنامه هایی نوشت که وظایف و عملیات مختلفی را به موازات هم (در آن واحد و به طور همزمان) مدیریت می کند. مزیت اصلی ویژگی multi-threading یا قابلیت پردازش موازی این است که به ازای هر thread حافظه را اشغال نمی کند بلکه برای این منظور، یک ناحیه ی مشترک در حافظه درنظر می گیرد. thread ها برای اپلیکیشن های تحت وب و چند رسانه ای بسیار کاربردی و حائز اهمیت می باشند.
در این آموزش، با گرامر و ابزار زبان Java یک برنامه ی ساده ی کاربردی خواهیم نوشت. کافی است ابزار توسعه ی اپلیکیشن جاوا یا JDK را نصب کنیم.
برای نصب یک برنامه ی Java، لازم است کلاسی که دربردارنده ی متد main (تابعی که اجرای برنامه از آن نقطه شروع می شود) می باشد را ایجاد کنید.
برای پیاده سازی و اجرای برنامه Java، لازم است مراحل زیر را دنبال نمایید:
نرم افزار JDK را نصب کنید. برای دانلود آن می توانید به آدرس مربوطه مراجعه کرده و پس از بارگیری فایل، آن را نصب نمایید.
در زیر برنامه ی ساده ی hello java را ایجاد کرده و پیاده سازی خواهیم کرد:
class Simple{
public static void main(String args[]){
System.out.println("Hello Java");
}
}
این فایل را تحت اسم Simple.java ذخیره نمایید.
خروجی:
Hello Java
در زیر به شرح هر یک از کلیدواژگان class، public، static، main، String[]، System.out.printIn() که در اپلیکیشن ساده ی پیاده سازی شده با Java بکار رفته خواهیم پرداخت.
برای نوشتن یک برنامه ی ساده مورد نظر، مراحل رو به رو را به ترتیب طی نمایید: by start menu -> All Programs -> Accessories -> notepad . سپس برنامه ی ساده ی زیر را بنویسید:
همان طور که در تصویر بالا نمایش داده شده است، کدهای جاوا برنامه ی ساده ی خود را در محیط برنامه ی notepad نوشته و سپس آن را تحت اسم Simple.java ذخیره نمایید. حال به منظور کامپایل و اجرای برنامه، پنجره ی فرمان را با طی کردن مراحل رو به رو باز نمایید:
برای کامپایل و اجرای برنامه، ابتدا به پوشه ی جاری مراجعه نمایید. همان طور که می بینید، پوشه (directory) جاری من c:\new هست. دستورهای زیر را اجرا کنید:
راه های مختلفی برای نوشتن یک برنامه ی جاوایی وجود دارد. اصلاحات و تغییرات جزئی که می توان در برنامه ی مورد نظر اعمال کرد، به شرح زیر می باشند:
با تغییر توالی یا ترتیب قرارگیری modifier ها (static، public)، نمونه ی اولیه ی متد (method prototype) تغییر نمی کند.توجه خود را به متد ساده ی main و تغییری که در ترتیب قرارگیری modifier ها اعمال شده است جلب نمایید.
static public void main(String args[])
روش نگارش آرایه در Java و در مکان قراردهی جاینگهدار اندیس آرایه "[]" به سه صورت امکان پذیر می باشد: 1. اینکه [] را پس از نوع درج کنید
2. آن را قبل از متغیر قرار دهید
3. اینکه آن را پس از متغیر جایگذاری نمایید.
در زیر روش های مختلف نوشتن متد main که در هر یک نحوه ی نگارش مکان نگهدار اندیس آرایه متفوات است را مشاهده می کنید.
public static void main(String[] args)
public static void main(String []args)
public static void main(String args[])
می توان با ارسال سه نقطه یا در اصطلاح برنامه نویسی ellipses به متد main، از امکان var-args در متد نام برده بهره گرفت.
در زیر یک کد ساده که از var-args در متد اصلی استفاده می کند را مشاهده می نمایید. در مباحث آینده درباره ی امکان var-args شرح خواهیم داد.
public static void main(String... args)
درج نقطه ویرگول در انتهای کلاس در Java اختیاری است.
توجه خود را به کد ساده ی زیر جلب نمایید.
class A{
static public void main(String... args){
System.out.println("hello java4");
}
};
public void main(String[] args)
static void main(String[] args)
public void static main(String[] args)
abstract public static void main(String[] args)
چنانچه خطایی نظیر آنچه در تصویر زیر مشاهده می کنید، رخ داد، در آن صورت جهت رفع مشکل لازم است متغیر path را مقداری دهی نمایید. از آنجایی که DOS با javac یا java آشنایی ندارد، شما بایستی متغیر path را تنظیم کنید. البته اگر شما برنامه ی خود را داخل پوشه ی jdk/bin ذخیره نمایید، دیگر نیازی به مقداردهی متغیر path نخواهد بود. اما در هر حال بهتر متغیر نام برده را مقداردهی نمایید.