در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد

با سلام به همه دوستان وهمراهان Itpro. اعداد ویژگی های متعددی در زبان جاوا دارند که در این بخش به بحث در مورد اعداد در جاوا می پردازیم. وقتی که شما از اعداد در جاوا استفاده می کنید به این معنی است که شما از انواع داده های اولیه در جاوا مثل byte,int, long, double , … استفاده می نمایید. برای مثال به کد زیر توجه کنید:

int i = 5000;
float gpa = 13.65;
byte mask = 0xaf;

در زمان برنامه نویسی ممکن است وضعیتی پیش بیاید که ما به جای انواع داده اولیه از اشیاء استفاده کنیم. جاوا این امر را با استفاده از کلاس های wrapper میسر می سازد. در جاوا کلاس هایی وجود دارد که متناظر با انواع داده اولیه هستند و در این کلاس ها مجموعه متدهایی تعریف شده است که می تواند در برنامه نویسی بسیار مورد استفاده قرار بگیرد. همه ی کلاس های wrapper از کلاس Number ارث برده اند. شکل زیر انواع این کلاس ها را نشان می دهد.

آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد

اشیائی که از کلاس wrapper ساخته می شود می تواند یک مقدار از نوع داده مورد نظر را درخود ذخیره کند. تبدیل نوع داده واقعی به یک شی را boxing می گویند و این عمل توسط کامپایلر انجام می شود. بنابراین زمانی که یک شی از کلاس wrapper می سازیم باید در constructor آن یک مقدار از نوع داده متناسب آن قرار دهیم. تبدیل شئی از کلاس wrapper به نوع داده اولیه را unboxing می گویند. کلاس Number در پکیج java.lang قرار دارد. در کد زیر مثالی از boxing و unboxing آورده شده است.

public class Test{

   public static void main(String args[]){
      Integer x = 5; // boxes int to an Integer object
      x =  x + 10;   // unboxes the Integer to a int
      System.out.println(x); 
   }
}

نتیجه اجرای کد بالا 15 خواهد بود. وقتی که یک شی از کلاس Integer ساخته می شود و نام آن را x می گذاریم. وقتی که یک مقدار عدد صحیح به این شئ انتساب می دهیم کامپایلر عمل boxing را انجام می دهد و آن را در داخل یک شئ می ریزد. اما در خط بعد که عمل جمع کردن عدد انجام می شود کامپایلر باید x را تبدیل به نوع اصلی int بکند تا بتواند با عدد10 جمع کند و در این حالت عمل unboxing انجام می شود.

متدهای کلاس Number

در ادامه به لیستی از متدهای موجود در کلاس های ارث برده از کلاس Number آورده شده است و هرکدام توضیح داده شده اند. کلاس های wrapper که گفته شد همه از کلاس Number ارث برده اند.

  • تابع [datatype]Value این تابع عمل تبدیل نوع داده شده را به نوع خواسته شده انجام می دهد. مقدار datatype در اول این تابع می تواندبا نام انواع داده های عددی جایگزین شود توابع این متد به شکل زیر هستند:
  • byte byteValue()
    short shortValue()
    int intValue()
    long longValue()
    float floatValue()
    double doubleValue()
    

توابع گفته شده متدهای پیش فرض هستند و هیچ پارامتری ندارند و مقدار بازگشتی آنها همان مقدار [datatype] است. برای درک بهتر به کد زیر توجه کنید:

public class Test{ 

   public static void main(String args[]){
      Integer x = 5;
      // داده بایت برمی گرداند
      System.out.println( x.byteValue() );

      // نوع داده دابل برمیگرداند
      System.out.println(x.doubleValue());

      // نوع داده لانگ برمی گرداند
      System.out.println( x.longValue() );      
   }
}

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

5
5.0
5
  • متد compareTo: این متد عدد شی صدا زننده را با عددی که به عنوان آرگومان به متد داده شده را مقایسه می کند. با استفاده از این تابع می توان اعداد از انواع متفاوت را با هم مقایسه کرد ولی باید دقت داشت که هر دو عدد از یک نوع باشند و نمی توان تابع compareTo مربوط به یک نوع byte را با ورودی long صدا زد. این عمل باعث خطا می شود. شکل نوشتاری این متد مانند خط زیر است:
  • public int compareTo( NumberSubClass referenceName )
    

همانگونه که گفته شد پارامتر ورودی این متد یک شی از کلاس wrapper متناظر می باشد. مقدار بازگشتی این متد یک عدد صحیح از نوع int است که می تواند یا 0 یا 1 و یا -1 باشد. که به شرح این اعدا می پردازیم. اگر دو عدد با یکدیگر برابر باشند در نتیجه متد عدد 0 را بازمی گرداند و اگر عدد از آرگومان خودش کوچکتر باشد عدد -1 و اگر عدد از آرگومان خود بزرگتر باشد عدد 1 به عنوان نتیجه بازگشت داده می شود. برای مثال به کد زیر دقت کنید:

public class Test{ 

   public static void main(String args[]){
      Integer x = 5;
      System.out.println(x.compareTo(3));
      System.out.println(x.compareTo(5));
      System.out.println(x.compareTo(8));            
     }
}

و نتایج کدهای بالا به شکل زیر است:

1
0
-1
  • متد equals: این متد مشخص می‌کند که دو عدد با هم برابر هستند یا خیر. کار این متد به این شکل است توسط شئی صدا زده می‌شود و یک عدد به آن داده می‌شود اگر عدد داده شده برابر با مقدار خود شئ باشد مقدار true و اگر برابر نباشد مقدار إfalse برگردانده می‌شود.شکل تعریف شده این تابع به شکل زیر است:
  • public boolean equals(Object o)
    

چیزی که این متد به عنوان پارامتر ورودی می‌گیرید می‌تواند هر نوع شیئی باشد.

مقدار بازگشتی این متد همانطور که گفته شد یک مقدار boolean است که اگر ورودی متد با خود شئ برابر باشند true برگردانده می شود. در ادامه مثالی برای این متد آورده شده است:

public class Test{ 

   public static void main(String args[]){
      Integer x = 5;
      Integer y = 10;
      Integer z =5;
      Short a = 5;

      System.out.println(x.equals(y));  
      System.out.println(x.equals(z)); 
      System.out.println(x.equals(a));
     }
}

خروجی کد بالا به شکل زیر خواهد بود

false
true
false
  • متد valeuOf: این متد مقدار عددی موجود در یک شئ وارد شده را بر‌می‌گرداند. آرگومان ورودی می‌تواند نوع داده اصلی یا String و مانند این‌ها باشد.

این یک متد استاتیک است. این متد می‌تواند ۲ آرگومان ورودی داشته باشد که آرگومان اولی یک رشته و آرگومان دوم مبنای عدد مورد نظر باشد. به این شکل که اگر بخواهیم عدد موجود در رشته را به یک عدد در مبنای ۱۶(هگزادسیمال) تبدیل شود آرگومان دوم را ۱۶ قرار دهیم. شکل‌های استفاده از این تابع در کد زیر آمده است:

static Integer valueOf(int i)
static Integer valueOf(String s)
static Integer valueOf(String s, int radix)

پارامتر ورودی در خط اول کد بالا برای یک عدد int است که وارد می‌شود و می‌توان این عدد را با استفاده از این متد به انواع داده عددی مختلف تبدیل کرد. در خط دوم یک رشته به متد داده می‌شود که دارای اعداد در داخل رشته است که با استفاده از این متد می‌توان آن را تبدیل به عدد کرد. در خط سوم نیز یک رشته دارای عدد به عنوان پارامتر ورودی اولی می‌باشد و پارامتر دوم نیز مبنای عدد است. خروجی این تابع یک عدد است که در مثال زیر استفاده از این متد آورده شده است.

public class Test{ 

   public static void main(String args[]){
      
      Integer x =Integer.valueOf(9);
      Double c = Double.valueOf(5);
      Float a = Float.valueOf("80");               

      Integer b = Integer.valueOf("444",16);

      System.out.println(x); 
      System.out.println(c);
      System.out.println(a);
      System.out.println(b);
   }
}

خروجی کد به شکل زیر خواهد بود:

9
5.0
80.0
1092
  • متد toString این متد مقدار هر شی را تبدیل به رشته می‌کند و بازمی گرداند. این متد می‌تواند یک ورودی عددی داشته باشد که آن را به رشته تبدیل کرده و بازمی گرداند. این متد برای همه اشیاء درجاوا وجود دارد. انواع مختلف این متد به شکل‌های زیر است:
  • String toString()
    static String toString(int i)
    

مثال‌هایی از این متد در کد زیر نشان داده شده است:

public class Test{ 

   public static void main(String args[]){
      Integer x = 5;

      System.out.println(x.toString());  
      System.out.println(Integer.toString(12)); 
   }
}

خروجی کد به شکل زیر خواهد بود:

5
12

در این بخش به معرفی کلاس های wrapper مربوط به اعداد پرداختیم و متدهای آن را معرفی کردیم. در مطالب بعدی به ادامه معرفی متدهای این کلاس ها خواهیم پرداخت Itpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#متدهای_مربوط_به_اعداد_در_جاوا #نحوه_استفاده_از_کلاس_در_جاوا #آموزش_برنامه_نویسی_جاوا #کلاس_های_wrapper_در_جاوا #آموزش_جاوا #boxing_و_unboxing_در_جاوا #دوره_آموزشی_جاوا #آشنایی_با_متدهای_integer_در_جاوا #زبان_برنامه_نویسی_جاوا #یادگیری_زبان_برنامه_نویسی_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
3 نظر
سینا جلال وندی

چقدر من جاوا بلد بودم و خبر نداشتم : ))

اینکه همون سی شارپ خودمونه!

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

حالا کدومشون از رو اون یکی کپی کرده؟؟ مایکروسافت از سان مایکروسیستم یا سان مایکروسیستم از مایکروسافت؟؟

mars

خب مشخصه که سی شارپ از جاوا الگو برداری کرده... اول جاوا بوده...

حسین احمدی

دوست عزیز، به خاطر اینکه سی شارپ و جاوا ریشه در زبان سی دارند، به همین خاطر Syntax این زبان ها خیلی شبیه هم هست.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....