مقالات آموزشی جاواهاستینگ

۱۷ مطلب در بهمن ۱۳۹۹ ثبت شده است

سه شنبه, ۱۴ بهمن ۱۳۹۹، ۰۹:۳۴ ق.ظ واحد فنی
نکات پایه و کاربردی زبان برنامه نویسی جاوا بخش سوم

نکات پایه و کاربردی زبان برنامه نویسی جاوا بخش سوم

Exception ها

Exception ها یا استثناهایی برای مدیریت خطاها در یک برنامه هستند. انواع گوناگونی از استثناها وجود دارد که رایج ترین آنها عبارتند از :

 

DivideByZeroWithExceptionHandling که هنگام تقسیم بر صفر رخ می دهد و زیر مجموعه استثنای ArithmeticException می باشد که موقع وقوع خطای ریاضی اتفاق می افتد.

ArrayIndexOutOfBoundsException در صورتی که اندیس خارج از خانه های آرایه باشد رخ می دهد.

ArrayStoreException زمانی که نوع داده ای که در خانه آرایه ریخته می شود با خود نوع آرایه متفاوت باشد این exception رخ خواهد داد.

IllegalArgumentException وقتی که از آرگومان های ورودی نامعتبر برای فراخوانی یک متد استفاده شود این exception رخ می دهد.

NullPointerException این استثنا زمانی رخ می دهد که از اشیائی استفاده کنیم که مقداردهی نشده و null هستند.

FileNotFoundException وقتی فایل مورد نظر در آدرس وجود نداشته باشد این استثنا رخ می دهد.

InputMismatchException استثنای ورود مقادیر اشتباه توسط کاربر است.

InstantiationException زمانی که بخواهیم از یک کلاس abstract و یا اینترفیس یک شئ بسازیم این استثنا رخ خواهد داد.

UnsupportedOperationException این exception زمانی رخ می دهد که از عملیاتی استفاده شود که زبان جاوا از آن پشتیبانی نکند.

ادامه مطلب...
۱۴ بهمن ۹۹ ، ۰۹:۳۴ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
سه شنبه, ۱۴ بهمن ۱۳۹۹، ۰۹:۲۴ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش چهارم

نکات آموزشی کاربردی برای هر جاواکار بخش چهارم

کلاس های انتزاعی Abstract Class

 

از انواع مهم کلاس ها می باشد که می توان از آنها بعنوان کلاس پایه برای سایر کلاس ها استفاده نمود. امکان تعریف متدهای انتزاعی یا غیر انتزاعی در این نوع کلاس وجود دارد. نمی توان مستقیما از این کلاس ها آجکتی new کرد بلکه ابتدا باید از کلاسی که از آن ارث بری می کند برای ایجاد نمونه استفاده شود.  ;A a=new B  در اینجا برای نمونه کلاس  ‌‌A انتزاعی و کلاس B همان کلاسی است که از آن ارث بری نموده است.  در صورت ارث بری کلاسی غیر انتزاعی از کلاسی انتزاعی, آن کلاس حتما باید متد های درون Abstract Class را پیاده سازی مجدد یا Override کند که در غیر این صورت با خطا مواجه می شویم. ولی در صورت ارث بری کلاسی انتزاعی از کلاس انتزاعی دیگر, پیاده سازی همه متد های آن اجیاری نمی باشد. همچنین امکان ایجاد آبجکت از آن بصورت مستقیم وجود نداشته و برای حل این مشکل باید از مفهومی تحت عنوان Polymorphism (چندریختی) استفاده کرد.

public abstract class Animal{}  نمونه تعریف یک کلاس انتزاعی

چند ریختی Polymorphism

 

یکی از مفاهیم مهم زبان برنامه نویسی جاوا, چند ریختی است که از قابلیت اشیاء است. طی این فرآیند شی از کلاس فرزند تعریف شده اما با کلاس پدر new می شود. (یک شی از کلاس فرزند که از جنس کلاس پدر ایجاد شده) که با این کار کلاس فرزند به مولفه های کلاس پدر دسترسی پیدا کرده و و می تواند عملیات مدنظر را انجام دهد. مثالی که در بحث کلاس های انتزاعی مطرح شد نمونه ای از polymorphism می باشد.

۱۴ بهمن ۹۹ ، ۰۹:۲۴ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
سه شنبه, ۱۴ بهمن ۱۳۹۹، ۰۹:۲۰ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش سوم

نکات آموزشی کاربردی برای هر جاواکار بخش سوم

شی Object
 
برای دسترسی و مقداردهی خصوصیات و بطور کلی هر مولفه ای که در کلاس تعریف شده , باید یک شی یا اشیایی از آن کلاس new کنیم. با اجرای برنامه , object متد سازنده کلاس را فراخوانی کرده سپس عملیات مقداردهی به مولفه های کلاس انجام می شود. در صورت عدم ایجاد سازنده , کامپایلر یک سازنده پیشفرض می سازد.

 

Interface (رابط)
 
مفهومی شبیه به کلاس ها می باشند که می توانند مولفه های مختلف از جمله متد, متغیر و ... داشته باشند با این تفاوت که بدون بدنه تعریف می شوند.  باید توجه داشت که متغیر های تعریف شده در رابط حتما باید از نوع Final (ثابت) تعریف شوند. چنانچه کلاسی بخواهد از مولفه های آن استفاده کند باید از کلمه کلیدی implements بجای extends استفاده  و سپس نام رابط قید شود. در مرحله بعد باید متدهای رابط درون کلاس, بازنویسی (override) شوند. همچنین امکان implements یک کلاس از چند interface و interface ها از یکدیگر ممکن می باشد. رابط متد سازنده ندارد به همین دلیل نمی توان از آن آبجکتی new کرد. در مواقعی که کلاسی از رابط ارث بری می کند,  باید ابتدا از آن کلاس آبجکتی ایجاد سپس بعد از new, با قید نام رابط می توان  کرد به مولفه های آن دسترسی پیدا کرد. باید به این نکته توجه داشت که سطح دسترسی همه مولفه ها در interface باید public باشد تا دسترسی در هر جای برنامه به آن مقدور باشد.

۱۴ بهمن ۹۹ ، ۰۹:۲۰ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
دوشنبه, ۶ بهمن ۱۳۹۹، ۰۹:۵۷ ق.ظ واحد فنی
نکات پایه و کاربردی زبان برنامه نویسی جاوا بخش دوم

نکات پایه و کاربردی زبان برنامه نویسی جاوا بخش دوم

​نوع داده جنریک Generic

جنریکها نوع داده عمومی هستند. قبل از این هرگاه برنامه نویس قصد طراحی متدی که چند نوع پارامتر را ارسال می کند داشت باید از سربارگذاری متدoverload کردن استفاده می کرد که طی آن متد چند بار ایجاد و باعث بالارفتن تعداد خطوط برنامه می شد که با استفاده از نوع داده جنریک, متد فقط یکبار با داده جنریک تعریف شده و نیاز به سربازگذاری نمی شود. علاوه بر متدهای جنریک, امکان تعریف کلاس های جنریک هم وجود دارد. نمونه ای از متد و کلاس جنریک :

متد با نوع داده جنریکPublic Static <T,E> void show(T key,E value){ } T

کلاس با پارامتر جنریک که متدی از آن استفاده نموده است  }<Public class Number <T
       {{ }  (public void addtocollection(T value
   

 همچنین امکان ارث بری نیز وجود دارد{ }<Public class users extends employee<Integer

}(Public <T extends Comparable<T>(T a,T b
 {;( a.Compare(b

}<Class test<T
   ایجاد آرایه ای با استفاده از نوع جنریک       ; [T[] data=new T[5  
}

;()test <double> t1=new test

 در اینجا نمونه ای ایجاد شده که از نوع داده خام است چون نوع <double> در طرف دیگر ذکر نشده که آن نمونه unsafe می باشد و برنامه به خطای زمان اجرا برخورد می کند. در هر طرف باید نوع جنریک ذکر شده باشد که این مورد قبل از اجرا باید چک شود

۰۶ بهمن ۹۹ ، ۰۹:۵۷ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
دوشنبه, ۶ بهمن ۱۳۹۹، ۰۸:۵۸ ق.ظ واحد فنی
نکات پایه و کاربردی زبان برنامه نویسی جاوا بخش اول

نکات پایه و کاربردی زبان برنامه نویسی جاوا بخش اول


کلکسیون ها Collections دارای Interface ها و زیر مجموعه های مهمی هستند که شامل موارد زیر می شوند :

 

صف Queue : صف دارای ساختاری ترتیبی می باشد که جهت ذخیره داده های Fifo (داده ای که اول وارد شده اول استخراج می شود که حافظه پشته عکس آن می باشد) هستند. نمونه تعریف یک صف :

 صف معمولی      ; () <Queue<String>q1=new Queue<String
 صف با ارزش      ; () <PriorityQueue<String>q2=new PriorityQueue<String

همچنین صف ها دارای متدهای کلیدی برای درج در صف , نمایش داده , نمایش سپس حذف داده , پاک کردن کل صف و نمایش تعداد خانه هستند که به ترتیب عبارتند از :

()Offer(),pool(),Peek(),Clear(),Size

 

لیست List : برای ذخیره داده های غیر خاص ولی ترتیبی کاربرد دارد. لیست ها دارای دو پیاده سازی هستند که شامل Arraylist و linklist می باشد که برای ایجاد نمونه ای از لیست بکار می روند. نمونه تعریف یک لیست :

;()< List <string> list=new Arraylist<string

ادامه مطلب...
۰۶ بهمن ۹۹ ، ۰۸:۵۸ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
يكشنبه, ۵ بهمن ۱۳۹۹، ۱۱:۱۱ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش دوم

نکات آموزشی کاربردی برای هر جاواکار بخش دوم

کپسوله سازی Encapsolation

 

بهتر است برای ارتقای امنیت و مخفی ماندن مقداردهی به متغیرهای کلاس ابتدا آنها را از نوع  private تعریف شود که با ایجاد متدهای  set مولفه ها مقداردهی می شوند. در مرحله بعد با ایجاد متد get مقادیر اختصاص داده شده برگردانده می شود. البته در جاوا کتابخانه ای بنام lombook وحود دارد که بصورت خودکار برای هر متغیر تعریف شده در کلاس این دو متد را ایجاد می کند. مشکلی در استفاده از این کتابخانه وجود دارد و آن ساده بودن متدهای پیاده سازی شده توسط lombook می باشد. برای نمونه اگر بخواهیم در متد های set یا  get شرطی قرار دهیم یا عملیات دیگری انجام دهیم, ناچارا باید آنها را دستی تعریف نماییم.

}public class users

{;private int id

}()public int getId

{;return id

}(public void setId(int id

{;this.id=id

وراثت 

 

در برنامه نویسی شی گرا با قرار دادن کلمه کلیدی extends  بعد از نام کلاس سپس قید نام کلاس پدر یا والد مقابل آن انجام می گیرد. وقتی کلاسی از کلاس دیگر ارث بری می کند در واقع می تواند به مولفه های تعریف شده درون آن دسترسی پیدا کند البته بشرطی که سطح دسترسی مولفه ها خصوصی یا  private نباشد. معمولا در ارث بری کلاس ها از هم قانونی بنام is a وجود دارد. بعنوان مثال کلاس سگ از کلاس حیوان ارث بری می کند پس سگ یک حیوان است. همچنین در حالت عادی امکان ارث بری چند گانه کلاس ها از یکدیگر در زبان برنامه نوبسی جاوا ممکن نیست اما در interface این مورد امکان دارد.برای ارث بری یک کلاس از رابط  (interface) امکان استفاده از کلمه کلیدی extends وجود ندارد و بجای آن باید از کلمه کلیدی implements استفاده نمود.

{}public class Dog extend Animal

{} public Interface Dog implements Animal

 

۰۵ بهمن ۹۹ ، ۱۱:۱۱ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی
يكشنبه, ۵ بهمن ۱۳۹۹، ۱۰:۱۵ ق.ظ واحد فنی
نکات آموزشی کاربردی برای هر جاواکار بخش اول

نکات آموزشی کاربردی برای هر جاواکار بخش اول

کلاس  Class

کلاس ها در جاوا به این صورت تعریف می شوند :

بعنوان مثال {}Public class Time


اولین مولفه سطح دسترسی به کلاس است که در اینجا عمومی Public است و در هر جای دیگر برنامه قابل استفاده می باشد. مولفه بعدی کلمه کلیدی class است که باید حتما قید شود و مولفه سوم نام کلاس می باشد. در زبان جاوا چند سطح دسترسی وجود دارد که عبارتند از کلاس با دسترسی عمومی که در نمونه فوق ذکر شد, مولفه های درون آن کلاس در همه جای برنامه قابل استفاده است. سطح دسترسی دیگر پکیج یا No Modifier می باشد که موقع نوشتن این نوع کلاس نیاز به ذکر سطح دسترسی نمی باشد. کلاس با این نوع دسترسی فقط به کلاس ها و مولفه های دیگری که درون آن پکیج قرار دارند اجازه دسترسی می دهد در غیر اینصورت امکان دسترسی وجود نخواهد داشت. نوع دیگر دسترسی خصوصی  Private می باشد که امکان دسترسی را فقط درون خود کلاس می دهد و در خارج از کلاس نمی توان از آنها استفاده نمود. آخرین نوع دسترسی محافظت شده Protected است که از درون کلاس و پکیج های یکسان دسترسی دارد اما از بیرون کلاس و پکیج خودش این مورد ممکن نیست.
 

متد سازنده Constructor
 
هر کلاس می بایست حداقل یک متد سازنده داشته باشد. وظیفه اصلی سازنده , مقداردهی اولیه به مولفه های تعریف شده در کلاس مربوطه می باشد که می توانند با پارامتر یا بدون آن تعریف شوند. در نوع با پارامتر سازنده, به محض اجرای برنامه عملیات مقداردهی اولیه به مولفه های کلاس را با کلمه کلیدی this و قید نام پارامتر مقابل آن , مقادیر دریافتی از object را به پارامترها پاس می دهد. در صورت ارث بری کلاسی از کلاس دیگر, می توان با متد سازنده SubClass, مقادیری را به متد سازنده ParentClass ارسال کرد که در اینجا باید کلمه کلیدی super به همراه نام پارامترها قید شوند.

۰۵ بهمن ۹۹ ، ۱۰:۱۵ ۰ نظر موافقین ۰ مخالفین ۰
واحد فنی