مفهوم الأرقام
أرقام: تعني numbers في اللغة الإنجليزية, و نحن عادةً ما نستخدم أنواع البيانات البدائية ( أي الـprimitive ) لتخزين الأرقام.أي لتعريف متغير بهدف تخزين رقم, نعرفه كـ
int
أو float
أو double
إلخ..مثال
int a = 10;
short b = 50;
float c = 10.5f;
double d = 37.002;
short b = 50;
float c = 10.5f;
double d = 37.002;
أحياناً يضطر المبرمج أن يستخدم الكائن للنوع و ليس الشكل البدائي للنوع.
من أجل ذلك, جافا تقدم لنا wrapper classes.
ما معنى wrapper classes؟
كل نوع بيانات بدائي في جافا له كلاس يمثله, و يكون من نفس إسمه, أمثلة:int
يمكن تمثيله بالكلاس Integer
.float
يمكن تمثيله بالكلاس Float
.byte
يمكن تمثيله بالكلاس Byte
.double
يمكن تمثيله بالكلاس Double
.short
يمكن تمثيله بالكلاس Short
.long
يمكن تمثيله بالكلاس Long
.إذاً الـwrapper classes هم كل الكلاسات التي تمثل أنواع البيانات البدائية.
هذه الصورة تظهر لك جميع الكلاسات التي تمثل الأرقام.
ما هي فائدة الـ wrapper classes؟
فكرة الـ wrapper classes جعلنا قادرين على معاملة هذه الأنواع ككائنات و بناء دوال خاصة لهم و لكن المبرمج العادي قد لا يتعامل بتاتاً مع الـ wrapper classes لأنه نادراً ما يحتاج لهم.مصطلحات تقنية
مثال
Integer a = 10; // int و ليس Integer هنا ستكون a لأن نوع القيمة التي خزنها المتغير boxing هذه العملية تسمى
int b = a + 15; // 15 قبل إضافتها على int لأنه سيتم تحويل قيمته للنوع a بالنسبة للمتغير unboxing هذه العملية تسمى
int b = a + 15; // 15 قبل إضافتها على int لأنه سيتم تحويل قيمته للنوع a بالنسبة للمتغير unboxing هذه العملية تسمى
شرح الكود
- Integer a = 10
//
يمثل كائن نوعهInteger
قيمته 10. int b = a + 15 //
هنا سيتم تحويل قيمة الكائنa
إلى النوعint
ثم إضافة 15 عليها و تخزين الناتج في المتغيرb
دوال الكلاس Math
الكلاس Math
هو كلاس جاهز في جافا, يحتوي على دوال تتعلق بالرياضيات, ذكرنا بعضها في هذا الجدول.إسم الدالة | تعريفها |
---|---|
abs() |
ترجع القيمة المطلقة للعدد الذي نضعه لها كـ argument. |
ceil() |
ترجع العدد الصحيح الأكبر أو الذي يساوي العدد الذي نضعه لها كـ argument. |
floor() |
ترجع العدد الصحيح الأصغر أو الذي يساوي العدد الذي نضعه لها كـ argument. |
rint() |
ترجع أقرب عدد صحيح للعدد الذي نضعه لها كـ argument. |
round() |
ترجع أقرب عدد صحيح للعدد الذي نضعه لها كـ argument. |
max() |
ترجع العدد الأكبر بين العددين الذين نضعهما لها كـ arguments. |
min() |
ترجع العدد الأصغر بين العددين الذين نضعهما لها كـ arguments. |
exp() |
ترجع قيمة الـ exponential للعدد الذي نضعه لها كـ argument. |
log() |
ترجع قيمة الـ logarithm للعدد الذي نضعه لها كـ argument. |
pow() |
ترجع قيمة الـ argument الأول مضاعف بقيمة الـ argument الثاني. |
sqrt() |
ترجع قيمة الـ square root للعدد الذي نضعه لها كـ argument. |
sin() |
ترجع قيمة الـ sine للعدد الذي نضعه لها كـ argument. |
cos() |
ترجع قيمة الـ cosine للعدد الذي نضعه لها كـ argument. |
tan() |
ترجع قيمة الـ tangent للعدد الذي نضعه لها كـ argument. |
asin() |
ترجع قيمة الـ arcsine للعدد الذي نضعه لها كـ argument. |
acos() |
ترجع قيمة الـ arccosine للعدد الذي نضعه لها كـ argument. |
atan() |
ترجع قيمة الـ arctangent للعدد الذي نضعه لها كـ argument. |
toDegrees() |
تحول قيمة العدد الذي نضعه لها كـ argument لـ Degrees. |
toRadians() |
تحول قيمة العدد الذي نضعه لها كـ argument لـ Radians. |
random() |
ترجع عدد عشوائي بين 0 و 1. |
الامثلة التي توضح كيفية استخدام الدوال الرياضية
public class Test { public static void main(String[] args) { int a=10; int b=20; double c = 20.955; System.out.println("abs of (-100) = "+ Math.abs(-100)); System.out.println("ceil of (10.349888) = "+ Math.ceil(c)); System.out.println("floor(10.349888) = "+ Math.floor(c)); System.out.println("rint of (20.698) = "+ Math.rint(20.698)); System.out.println("round of (20.298) = "+ Math.round(20.298)); System.out.println("max number(10,20) = "+ Math.max(a,b)); System.out.println("min number(10,20) = "+ Math.min(a,b)); System.out.println("exponential(15) = "+ Math.exp(15)); System.out.println("logarithm(10) = "+ Math.log(a)); System.out.println("pow(2,2) = "+ Math.pow(2,2)); System.out.println("square root = " +Math.sqrt(36)); System.out.println("sin(30) = "+ Math.sin(30)); System.out.println("cosin(30) = " +Math.cos(30)); System.out.println("tangent(30) = "+ Math.tan(30)); System.out.println("arcsine(90) = "+ Math.asin(90)); System.out.println("arccosine(0.2) = "+ Math.acos(0.2)); System.out.println("arctangent(30) = "+ Math.atan(30)); System.out.println("Degree of (60) = "+ Math.toDegrees(60)); System.out.println("the Radians(30) = "+ Math.toRadians(30)); System.out.println("random numbers = "+ Math.random()); } }
نتيجة التنفيذ
abs of (-100) = 100 ceil of (10.349888) = 21.0 floor(10.349888) = 20.0 rint of (20.698) = 21.0 round of (20.298) = 20 max number(10,20) = 20 min number(10,20) = 10 exponential(15) = 3269017.3724721107 logarithm(10) = 2.302585092994046 pow(2,2) = 4.0 square root = 6.0 sin(30) = -0.9880316240928618 cosin(30) = 0.15425144988758405 tangent(30) = -6.405331196646276 arcsine(90) = NaN arccosine(0.2) = 1.369438406004566 arctangent(30) = 1.5374753309166493 Degree of (60) = 3437.7467707849396 the Radians(30) = 0.5235987755982988 random numbers = 0.4907707032954094
ثوابت الكلاس Math
الكلاس Math
يحتوي أيضاً على الثوابت التالية التي تتعلق بالرياضيات.إسم الثابت | تعريفها |
---|---|
E |
يحتوي على قيمة الـ Exponential. |
PI |
يحتوي على قيمة الـ PI. |
الامــثلة التي توضح الدالتين اعلا
public class MyClass { public static void main(String[] args) { // PI هنا قمنا بعرض قيمة الثابت System.out.println( "PI = " + Math.PI ); // E هنا قمنا بعرض قيمة الثابت System.out.println( "E = " + Math.E ); } }
نتيــجة التنفيذ
PI = 3.141592653589793 E = 2.718281828459045
دوال الأرقام التي تستخدم مع كائنات الـ wrapper classes
ذكرنا بعض الدوال التي تستخدم مع الـ wrapper classes في هذا الجدول.إسم الدالة | تعريفها |
---|---|
xxxValue() |
تحول قيمة الكائن ( الذي يمثل رقم ) لقيمة بدائية تحددها الدالة التي تم إستدعاءها على الكائن و ترجعها. |
compareTo() |
تقارن قيمة الكائن ( الذي يمثل رقم ) مع القيمة التي نضعها لها كـ argument. |
equals() |
تحدد إذا كانت قيمة الكائن ( الذي يمثل رقم ) تساوي القيمة التي نضعها لها كـ argument. |
valueOf() |
ترجع قيمة الـ argument ككائن نوعه Integer |
toString() |
ترجع قيمة الكائن ( الذي يمثل رقم ) كـ String |
parseXxx() |
تستخدم للحصول على القيمة البدائية لقيمة String |
ليست هناك تعليقات:
إرسال تعليق
ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.