کار با اشیاء در جاوا

+1
+65
1394/01/24 2 535 م.مطلبی

در این آموزش شما را با مفهوم کلاس و شی (یا همان نمونه) آشنا می کنیم و سپس نحوه ایجاد اشیا با عملگر new را در یک تمرین عملی آموزش خواهید دید و در ادامه با کلاس StringTokenizer آشنا می شوید

با ساب سان همراه شوید با آموزشی دیگر از جاوا.

کار با اشیاء در جاوا

همان طور که می دانید جاوا یکزبان برنامه نویسی کاملا شی گراست. در جاوا برای انجام عملیات از اشیا استفاده می کنیم. در واقع در این زبان اشیا را ایجاد و سپس بر روی آنها تغییراتی را اعمال می کنیم. همچنین آنها را جابجا نموده و یا متغییر های آنها را تغییر داده و سپس متدهای آنها را فراخوانی نموده و یا اینکه آنها را با یکدیگر اشیا ترکیب کنیم.

آشنایی با عملگر new در جاوا

هنگامی که از عملگر new استفاده می کنیم چندین مسئله رخ می دهد که در ادامه به بررسی آنها می پردازیم . در ابتدا یک نمونه جدید از کلاس مورد نظر ایجاد می شود . سپس حافظه ای به این نمونه اختصاص داده می شود و یک متد ویژه که در آن کلاس تعریف شده است فراخوانی می گردد .به آن متد ویژه در اصطلاح سازنده (Constructor) اطلاق می شود.متد سازنده متد ویژه ای است که از آن برای ایجاد و مقدار دهی اولیه یک نمونه(شی) جدید از کلاس استفاده می کنیم . توسط این متد شی جدید و نیز متغییر های آن مقدار دهی شده و سپس هر شیئی که به این شی نیاز داشته باشد را ایجاد می نماید و تمامی عملیاتی که این شی برای مقدار دهی خود نیاز دارد را انجام می دهد.لازم به توضیح است که در یک کلاس می توان چندین سازنده داشته باشیم که تعداد و نوع آرگومان های آنها با یکدیگر تفاوت دارد .زمانی که از عملگر new استفاده می کنیم قادر هستیم تا آرگومتن های مختلفی را در فهرست آرگومان ها تعیین کنیم.

نحوه ایجاد اشیاء در جاوا

در هنگام نوشتن یک برنامه جاوا در واقع مشغول تعریف مجموعه ای از کلاس ها هستیم . در واقع کلاس ها الگو هایی هستند که از آنها برای ایجاد اشیا استفاده می کنیم.برخی موارد از اشیا به نمونه هم یاد می شود. در اغلب بخش ها یک برنامه از کلاس ها برای ایجاد نمونه ها استفاده می کنیم و سپس با این نمونه ها کار می کنیم.در جاوا ایجاد یک شی جدید از عملگر new استفاده می کنیم. در کد زیر نحوه استفاده از این عملگر برای ایجاد شی string را مشاهد می کنید.

String na = new string();

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

URL path = new URL("http://subsun.ir");

 مقادیر موجود در پرانتز می توانند مقادیر متغییر های  نمونه ای و یا دیگر خصوصیات اولیه شی را تعیین نمایند.توجه شود که تعداد و نوع آرگومان هایی را که می توانیم به همراه عملگر new مورد استفاده قرار دهیم به وسیله متد سازنده مشخص می شود. در صورتی که در زمان ایجاد یک نمونه جدید از کلاس تعداد و یا نوع آرگومان ها را به اشتباه تعیین کنیم در زمان کامپایل برنامه با خطا مواجه می شویم. در ادامه همین بخش می خواهیم با استفاده از یک تمرین عملی انواع مختلف اشیا همراه با تعداد و انواع متنوعی از آرگومان های مورد استفاده قرار دهیم. در این تمرین از کلاس string tokenizer که در بسته java.util می باشد استفاده می کنیم . با استفاده از این کلاس می توانید یک رشته را به تعداد رشته کوتاه تر که token نامیده می شود تقسیم کنیم. به عنوان مثال یک رشته به وسیله برخی از کارکتر های جدا کننده به بخش هایی تقسیم می شود. مثلا رشته "welcome,to,subsun.ir"  را می توان به سه بخش welcome و to و subsun.ir تقسیم کنیم .کاراکتر جدا کننده در این رشته کاما می باشد. حال پروژه عملی این بخش را آغاز می کنیم. به همین منظور پروژه ایجاد شده در درس قبل را باز کنید و کلاس جدیدی با نام subsun_class_5 به پکیج subsun_package اضافه کنید .و درون متد main را بصورت زیر پر کنید و آن را توسط ترکیب کلید های ctrl+s ذخیره کنید.

package subsun_package;
import
java.util.StringTokenizer;
public
class subsun_class_5
{
     public static void main(String[] args)
     {
         StringTokenizer st1,st2;
         String q1 = "welcome to subsun";
         st1 = new StringTokenizer(q1);
         System.out. println("token 1 :"+st1.nextToken());
         System.out. println("token 2 :"+st1.nextToken());
         System.out. println("token 2 :"+st1.nextToken());
         String q2 = "welcome#to#subsun";
         st2 = new StringTokenizer(q2,"#");
         System.out. println("\n"); // ایجاد خط جدید در خروجی
         System.out. println("token 1 :"+st2.nextToken());
         System.out. println("token 2 :"+st2.nextToken());
         System.out. println("token 3 :"+st2.nextToken());
     }
}


حال دستورات تایپ شده را بررسی می کنیم.با استفاده از دستور import کلاس  StringTokenizer از پکیج  java.util را به برنامه اضافه کرده ایم .درون تابع main همانگونه که مشاهده کرده اید دو شی از کلاس StringTokenizer با نام st1 و st2 تعریف شده است. اولین نمونه از این کلاس با استفاده از عملگر new  به گونه ای که مشاهد می شود ایجاد شده است.

st1 = new StringTokenizer(q1);

به مقداری که درون پرانتز به این نمونه داده شده است دقت نمایید . در این دستورات و اولین شی StringTokenizer از جدا کننده های پیش فرض مانند فاصله و یا new line و کاراکتر های مشابه استفاده می نمایم. در صورتی که هر یک از این کاراکتر ها درون رشته موجود باشد آنگاه بر اساس جدا کننده های مورد نظر، رشته به رشته های کوتاه تر شکسته می شود. دومین شی از StringTokenizer  کاراکتر#  را به عنوان جداکننده استفاده می کند .

حال وقت مشاهد خروجی برنامه است. فایل subsun_class_5 را در Package Explorer ایکلیپس انتخاب کنید و آن را اجرا کنید.

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

eclipse run result 5

 

دیدگاه ها (2)

  • پوریا

    +1
    +7

    مرسی ، آموزنده بود

  • حسین

    +1
    +2

    سلام.ببخشید من متوجه نمیشم.هیج جاهم پیدا نکردم این سوالمو.چجورییه شی مثل ادم رو حرکت بدیم

ارسال دیدگاه ها

Image CAPTCHA
حروف نمایش داده شده در تصویر را وارد کنید.