آموزش جاوا - کلاس اعداد
به طور معمول، وقتی با اعداد کار میکنیم، از نوع دادههای ابتدایی مانند byte، int، long، double و غیره استفاده میکنیم.
مثال
int i = 5000;
float gpa = 13.65f;
double mask = 125;
با این حال، در فرایند توسعه، ممکن است با مواقعی مواجه شویم که نیاز به استفاده از اشیاء به جای نوع دادههای ابتدایی داشته باشیم. برای رسیدن به این هدف، جاوا کلاسهایی به نام کلاسهای پوششی (Wrapper classes) را فراهم میکند.
تمامی کلاسهای پوششی (Integer، Long، Byte، Double، Float، Short) زیرکلاسهایی از کلاس انتزاعی Number هستند.
شیء کلاس پوششی، نوع دادهی ابتدایی متناظر خود را حاوی میشود یا آن را پوشش میدهد. تبدیل نوع دادههای ابتدایی به اشیاء، به باکسکردن (boxing) معروف است و این کار توسط کامپایلر انجام میشود. بنابراین، هنگام استفاده از یک کلاس پوششی، فقط کافیست مقدار نوع دادهی ابتدایی را به سازندهی کلاس پوششی ارسال کنید.
و شیء کلاس پوششی به نوع دادهی ابتدایی تبدیل میشود و این فرآیند را انباکسکردن (unboxing) میگویند. کلاس Number قسمتی از بستهی java.lang است.
مثال زیر نمونهای از باکسکردن و انباکسکردن است:
مثال
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
وقتی مقدار عدد صحیحی به x اختصاص داده میشود، کامپایلر آن را به علت x یک شیء صحیح میپوشاند (boxing). بعداً، x از حالت پوشاندگی خارج شده و این امکان فراهم میشود که به عنوان یک عدد صحیح اضافه شود.
روشهای کلاس Number
لیستی از روشهای نمونه که همه زیرکلاسهای کلاس Number پیادهسازی میکنند، به شرح زیر است −
ردیف | روش و توضیحات |
---|---|
1 | xxxValue()
مقدار شیء Number فعلی را به نوع داده xxx تبدیل کرده و آن را بازمیگرداند. |
2 | compareTo()
شیء Number فعلی را با آرگومان مقایسه میکند. |
3 | equals()
تعیین میکند که آیا شیء عددی فعلی برابر با آرگومان است یا خیر. |
4 | valueOf()
یک شیء Integer را بازمیگرداند که مقدار مورد نظر را نگه میدارد. |
5 | toString()
یک شیء رشته را که مقدار یک int یا Integer مشخص را نمایش میدهد، بازمیگرداند. |
6 | parseInt()
این روش برای بهدست آوردن نوع داده ابتدایی رشتهای خاص استفاده میشود. |
7 | abs()
مقدار مطلق آرگومان را برمیگرداند. |
8 | ceil()
کوچکترین عدد صحیحی که بزرگتر یا مساوی آرگومان است را به صورت عدد اعشاری بازمیگرداند. |
9 | floor()
بزرگترین عدد صحیحی که کوچکتر یا مساوی آرگومان است را به صورت عدد اعشاری بازمیگرداند. |
10 | rint()
عدد صحیحی که نزدیکترین مقدار به آرگومان است را به صورت عدد اعشاری بازمیگرداند. |
11 | round()
نزدیکترین long یا int به آرگومان را براساس نوع بازگشتی متد برمیگرداند. |
12 | min()
کوچکترین مقدار بین دو آرگومان را برمیگرداند. |
13 | max()
بزرگترین مقدار بین دو آرگومان را برمیگرداند. |
14 | exp()
مقدار پایهٔ لگاریتم طبیعی، e، به توان آرگومان را برمیگرداند. |
15 | log()
لگاریتم طبیعی آرگومان را برمیگرداند. |
16 | pow()
مقدار اولین آرگومان را به توان دومین آرگومان برمیگرداند. |
17 | sqrt()
ریشهٔ مربعی آرگومان را برمیگرداند. |
18 | sin()
سینوس مقدار دوبل مشخص را برمیگرداند. |
19 | cos()
کسینوس مقدار دوبل مشخص را برمیگرداند. |
20 | tan()
تانژانت مقدار دوبل مشخص را برمیگرداند. |
21 | asin()
آرکسین مقدار دوبل مشخص را برمیگرداند. |
22 | acos()
آرکوسینوس مقدار دوبل مشخص را برمیگرداند. |
23 | atan()
آرکتانژانت مقدار دوبل مشخص را برمیگرداند. |
24 | atan2()
مختصات مستطیلی (x، y) را به مختصات قطبی (r، theta) تبدیل کرده و theta را برمیگرداند. |
25 | toDegrees()
آرگومان را به درجه تبدیل میکند. |
26 | toRadians()
آرگومان را به رادیان تبدیل میکند. |
27 | random()
یک عدد تصادفی برمیگرداند. |