فصل 25: کلاس Math و کلاس های Wrapper در جاوا

03 شهریور 1397
wrapper-and-math-classes

کلاس java.lang.Math از پرکاربردترین کلاس های داخلی جاوا می باشد که شامل متدهایی برای انجام محاسبات ریاضی مانند توابع مثلثاتی، لگاریتم، به توان رساندن و جذر گرفتن می باشد.

متدهای پایه‌ای کلاس Math

متد توضیح
Math.abs() قدر مطلق یه مقدار را بر می گرداند
Math.max() عدد بزرگتر میان دو عدد را بر می گرداند
Math.min() عدد کوچکتر از میان دو عدد را بر می گرداند
Math.round() اعداد اعشاری را به نزدیک ترین عدد صحیح گرد می کند
Math.sqrt() ریشه دوم یک عدد را باز می گرداند
Math.cbrt() ریشه سوم یک عدد را باز می گرداند
Math.pow() عدد اول را به توان عدد دوم می رساند و نتیجه را باز می گرداند
Math.signum() برای پیدا کردن علامت یک عدد استفاده میشود
Math.ceil() کوچکترین عدد صحیح که بزرگترمساوی آرگومان ورودی است را باز می گرداند
Math.copySign() قدر مطلق مقدار اول را به همراه علامت مشخص شده در آرگومان دوم پیدا می کند
Math.nextAfter() عدد اعشاری موجود در همسایگی آرگومان اول را در جهت آرگومان دوم باز می گرداند
Math.nextUp() عدد اعشاری موجود در همسایگی آرگومان را در جهت بی نهایت مثبت باز می گرداند
Math.nextDown() عدد اعشاری موجود در همسایگی آرگومان را در جهت بی نهایت منفی باز می گرداند
Math.floor() بزرگترین عدد صحیح که کوچکتر یا مساوی آرگومان ورودی باشد را باز می گرداند (تابع براکت)
Math.floorDiv() عدد اول را بر عدد دوم تقسیم می کند و براکت نتیجه را باز می گرداند
Math.random() یک عدد اعشاری بزرگترمساوی 0 و کوچکتر از یک را به صورت تصادفی باز می گرداند
Math.rint() نزدیکترین عدد اعشاری نسبت به آرگومان را که مساوی با یک عدد صحیح می باشد را باز می گرداند.
Math.hypot() مجموع مربع دو عدد آرگومان را باز می گرداند
Math.ulp() اندازه ulp آرگومان ورودی را مشخص می کند.
Math.getExponent() آخرین توان دو استفاده شده در بزرگی یک عدد را باز می گرداند (unbiased exponent)
Math.IEEEremainder() عملیات باقی مانده را طبق استاندارد IEEE بر روی دو آرگومان انجام میدهد و حاصل را باز می گرداند.
Math.addExact() جمع آرگومان های ورودی خود را باز می گرداند. اگر نتیجه از int و long بزرگتر باشد exception می دهد.
Math.subtractExact() تفاضل آرگومان های ورودی خود را باز می گرداند. اگر نتیجه از int بزرگتر باشد exception می دهد.
Math.multiplyExact() ضرب آرگومان های ورودی خود را باز می گرداند. اگر نتیجه از int و long بزرگتر باشد exception می دهد.
Math.incrementExact() مقدار آرگومان را به علاوه یک می کند و باز می گرداند. در صورتی که از int بزرگتر باشد exception می دهد.
Math.decrementExact() مقدار آرگومان را منهای  یک می کند و باز می گرداند. در صورتی که از محدوده int بیرون باشد exception می دهد.
Math.negateExact() مقدار آرگومان را منفی می کند و باز می گرداند. در صورتی که از محدوده int بیرون باشد exception می دهد.
Math.toIntExact() مقدار آرگومان long را باز می گرداند و در صورت خارج شدن از محدوده int و long یک exception میدهد.

متدهای مربوط به توابع لگاریتمی

متد توضیح
Math.log() لگاریتم طبیعی یک عدد را باز می گرداند
Math.log10() لگاریتم بر پایه ده یک عدد را باز می گرداند
Math.log1p() لگاریتم طبیعی عدد به علاوه یک را باز می گرداند
Math.exp() e (عدد اویلر) که تقریبا برابر با 2.71 می باشد را به توان آرگومان دوم می رساند و باز می گرداند.
Math.expm1() e را به توان عدد دوم می رساند و نتیجه را منهای یک می کند و باز می گرداند.

متدهای مربوط به توابع مثلثاتی

متد توضیح
Math.sin() مقدار سینوس عدد اعشاری داده شده را باز می گرداند.
Math.cos() مقدار کسینوس عدد اعشاری داده شده را باز می گرداند.
Math.tan() مقدار تانژانت عدد اعشاری داده شده را باز می گرداند.
Math.asin() مقدار آرک سینوس عدد اعشاری داده شده را باز می گرداند.
Math.acos() مقدار آرک کسینوس عدد اعشاری داده شده را باز می گرداند.
Math.atan() مقدار آرک تانژانت عدد اعشاری داده شده را باز می گرداند.

متدهای مربوط به توابع هذلولوی

متد توضیح
Math.sinh() سینوس هذلولوی مقدار اعشاری  داده شده را باز می گرداند.
Math.cosh() کسینوس هذلولوی مقدار اعشاری  داده شده را باز می گرداند.
Math.tanh() تانژانت هذلولوی مقدار اعشاری  داده شده را باز می گرداند.

متدهای مربوط به تبدیل زاویه ها

Method Description
Math.toDegrees برای تبدیل رادیان به درجه مورد استفاده قرار می گیرد.
Math.toRadians برای تبدیل درجه به رادیان مورد استفاده قرار می گیرد.

کلاس Wrapper در جاوا

کلاس Wrapper در جاوا این امکان را فراهم می کند تا اشیا را به داده های اولیه (Primitive) و داده های اولیه را به اشیا متناظر آن تبدیل کنیم.

از جاوا 5 به بعد، عملیات تبدیل داده های اولیه به شی که Autoboxing نامیده می شود و عملیات تبدیل اشیا به داده های اولیه که Unboxing نامیده می شود به طور خودکار صورت می گیرد.

8 کلاس در پکیج java.lang وجود دارد که به کلاس های Wrapper معروف هستند:

داده اولیه کلاس  Wrapper
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double

در زیر دو مثال از کلاس های Wrapper و ویژگی های Autoboxing و Unboxing به ترتیب می بینیم:

مثال:

public class WrapperExample1{  
public static void main(String args[]){  
//Converting int into Integer  
int a=20;  
Integer i=Integer.valueOf(a);//converting int into Integer  
Integer j=a;//autoboxing, now compiler will write Integer.valueOf(a) internally  
  
System.out.println(a+" "+i+" "+j);  
}}

خروجی:

20 20 20

مثال:

public class WrapperExample2{    
public static void main(String args[]){    
//Converting Integer to int    
Integer a=new Integer(3);    
int i=a.intValue();//converting Integer to int  
int j=a;//unboxing, now compiler will write a.intValue() internally    
    
System.out.println(a+" "+i+" "+j);    
}}

خروجی:

3 3 3
نویسنده شوید
دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.