جلسه سوم : برنامه نویسی شئ گرا
کلاس Scanner که در پکیج java.util قرار دارد. که امکان دریافت مقادیر از کاربر را فراهم می کند در ابتدا باید آبجکتی به شکل زیر از روی کلاس Scanner بسازید
Scanner scanner = new Scanner(System.in);
System.in که در سازندة کلاس Scanner استفاده شده معرف جریان داده ای است که از طریق کنسول برنامه از کاربر دریافت می شود. این جریان داده در اختیار آبجکت Scanner قرار داده می شود تا این آبجکت نیز داده ها را در قالب یک متن قابل تفسیر در اختیار ما قرار دهد.
این کلاس تا بع های مختلفی را دارد مثل
long nextLong() , int nextInt() , float nextFloat() , next() , String nextLine()
توجه شود که حرف بعد next باید به صورت بزرگ باشد
در اینجا اگر متغییر line از نوع string یک آبجکت از کلاس scanner است
حال با فراخوانی متد next() می توان به متنی که توسط کاربر تایپ شده است دست یافت.
Scanner myline = new Scanner(System.in);
String line = myline.next Line();
متد nextLine() یک خط از متنی که توسط کاربر وارد شده است را برمی گرداند. معنی این جمله این است که اگر متن کاربر چند خطی است باید برای خواندن هر خط یکبار متد nextLine() فراخوانی شود.
مثال
دراینجا کلاس Addition دو عدد را از ورودی گرفته وجمع آنها را در خروجی چاپ می کند
import java.util.scanner;
public classAddition {
public static void main(string args[ ]){
scanner input =new scanner(System.in);
int number1, number2, sum;
System.out.printf("Enter your numbers ");
number1=input.nextInt();
number2=input.nextInt();
sum= number1 + number2 ;
System.out.printf(" \nsum is%d\n",sum);
}
}
درپایان هم میتوان آبجکت به صورت زیر مسدود کرد
scanner.close();
مسدود کردن آبجکت scanner باعث آزاد شدن کنسول برنامه می شود تا قسمت های دیگر برنامه در صورت نیاز بتوانند از آن استفاده کنند.
برنامه نویسی شی ء گرا :
برنامه نویسی شی ء گرا (Object Oriented Programming – OOP) قصد دارد مدلی از دنیای واقعی را وارد برنامه نویسی کامپیوتر کند دنیای اطراف ما از اشیاء ساخته شده است .
اشیاء و کلاسها :
شئ کلیدی ترین مفهوم برنامه نویسی شی گرا است هر شئ یک حالت و رفتار
دارد و برنامه عبارت است از بر هم کنش بین اشیاء . حالت یک شی ء عبارت است
از متغییرهای عناصر داده ای شییء و مقدار آنها . رفتار یک شی ء را متدهای
آن تعیین می کند . شیء در واقع مقداری کد است که کار خاصیتی انجام می دهد .
هر شیء کپسولی است از مقداری متغییر و کد که کار نگهداری و به روز در آوردن
آنها را ساده می کند . معمولاً درون یک شیء از دسترس دنیای خارج به دور
است و برای کار با آن باید از ارسال پیام استفاده کرد . مزیتش آن است که
کاربر برای کار با آن هیچ نیازی به دانستن مکانیزم های درونی آن ندارد و
فقط باید ساختار پیام ها را بداند . معمولاً ساختار پیام ها در اشیاء مختلف
یکسان است . در دنیای واقعی هم وضع به همین منوال است مثلاً برای استفاده
از یک تلویزیون شما هیچ نیازی به آشنایی با پیچیدگیهای درون آن ندارید فقط
کافی است بدانید که باید آن را به برق زده و روشن کنید و یک کانال را
انتخاب کنید . کلاس در واقع الگویی است برای ایجاد شیء
اعلان نمودن اشیاء
بدست آوردن اشیاء از یک کلاس ، نوعی پردازش دو مرحله ای است . اول ، باید یک متغیر از نوع همان کلاس اعلان نمایید . این متغیر یک شئ را تعریف نمی کند . در عوض ، متغیری است که می تواند به یک شئ ارجاع نماید .دوم ، باید یک کپی فیزیکی new انجام دهید . با عملگر new یک شئ بدست آورده و به آن متغیر منتسب کنید . می توانید اینکار را با استفاده از عملگربطور پویا ( یعنی در حین اجرا ) حافظه را برای یک شئ تخصیص داده و یک ارجاع به آن را برمی گرداند این ارجاع (reference) آدرس آن شئ در حافظه است که توسط new تخصیص یافته است.
در اینجا یک مثال میزنیم که مطلب واضح تر شود
public class Course{
public void display massage(){
System.out.printf (" welcome to java course");
}
}
public class TestCourse{
public static void main(string arge[ ]){
course mycourse = new course;
mycourse.display massage();
}
}
خط زیر برای اعلان یک شئ ازنوع coure استفاده شده
course mycourse = new course;
میتوان آن را بصورت زیر بازنویسی نمود :
course mycourse;
mycourse =new course;
خط اول mycourse را بعنوان یک ارجاع به شئ از نوع course اعلان می کند پس از اجرای این خط mycourse محتوای تهی خواهد داشت که نشانگر آن است که هنوز شئ بطور واقعی بوجود نیامده است هر تلاشی برای استفاده ازmycourse در این مرحله سبب بروز خطا میشود خط بعدی یک شی ئ واقعی ر ا تخصیص داده و یک ارجاع از آن به mycourse انجام می دهد . پس از اجرای خط دوم ، می توانید از mycourse بعنوان یک شئ است course استفاده نمود


mycourse.display massage();
ور این دستور شئ mycourse تابع از display massageکلاس قبلی را اجرا میکند و خروجی TestCourse به صورت زیر است
welcome to java course
آموزش جامع جاوا