Java/מחלקות נפוצות
ניווט בנושא יסודות השפה
|
בפרקים הקודמים למדנו את מושג השיטה. הן מסייעות לנו לשמור על בהירות הקוד ומקלות על תהליכי ניפויי באגים ותקלות. לעיתים תכופות אנו ניאלץ לכתוב שיטות משלנו. אך קיימים מצבים בהם אנו יכולים להשתמש בשיטות שקיימות מראש, ללא צורך "לשבור את הראש" על מימושן או להעתיק מאתרים כגון Stack Overflow.
![]() |
כדאי לדעת: כאשר אנו מעתיקים קוד מאתר Stack Overflow וכו', עלינו לתת קרדיט לקוד שאותו העתקנו |
בשפת Java קיימות שיטות מובנות שעוזרות לנו לכתוב קוד, והן מאורגנות כל אחת במחלקה משלה. לרוב מדובר בשיטות טריוויאליות ומורכבות למימוש למתכנת רגיל, כגון חישובים מתמטיים או שיטות מערכת למיניהן. בשיעור זה נראה את המחלקות הנפוצות בשפת Java.
מחלקות בשפת Java
[עריכה]Math
[עריכה]מחלקת Math מקיימת מחלקות קשורות לחישובים מתמטיים. להלן מובאות רק כמה דוגמאות לשיטות שבמחלקה:
השיטה | תיאור |
---|---|
random() | מחזירה מספר אקראי בטווח של |
max(double a, double b) | מחזירה את המספר הגדול |
min(double a, double b) | מחזירה את המספר הקטן |
abs(double a) | מחזירה , הערך המוחלט |
sin(double a) | מחזירה , הסינוס של a רדיאנים |
cos(double a) | מחזירה , הקוסינוס של a רדיאנים |
pow(double a, double b) | מחזירה , a בחזקת b |
sqrt(double a) | מחזירה , השורש הריבועי של a |
cbrt(double a) | מחזירה , השורש השלישי של a |
hypot(double x, double y) | מחזירה , אורך היתר במשולש ישר זווית בעל ניצבים באורכים x ו־y (משפט פיתגורס), |
בנוסף לכך, מחלקת Math מקיימת גם שני קבועים:
הקבוע | תיאור |
---|---|
E | מספר , בסיס הלוגריתם הטבעי |
PI | מספר , היחס בין היקף המעגל לקוטרו |
מחלקת Arrays
[עריכה]מחלקת Arrays מכילה כלי מערכים רבים. חלק מהשיטות של Arrays:
שיטה | תיאור | החל מגרסה |
---|---|---|
binarySearch(int[] a, int key) | מחזירה את האינדקס שבו נמצא ערך ה־key. על המערך להיות ממוין כלפי מעלה | |
binarySearch(double[] a, double key) | מחזירה את האינדקס שבו נמצא ערך ה־key. על המערך להיות ממוין כלפי מעלה | |
toString(int[] a) | מחזירה את המחרוזת המכילה את ערכי המערך | |
toString(float[] a) | מחזירה את המחרוזת המכילה את ערכי המערך | |
toString(Object[] a) | מחזירה את המחרוזת המכילה את ערכי המערך | |
copyOf(int[] original, int newLength) | יוצרת מערך חדש בעל האורך הנתון, מעתיקה אליו את התוכן של המערך המקורי ומחזירה את החדש | 1.6 |
copyOf(byte[] original, int newLength) | יוצרת מערך חדש בעל האורך הנתון, מעתיקה אליו את התוכן של המערך המקורי ומחזירה את החדש | 1.6 |
copyOf(T[] original, int newLength) | יוצרת מערך חדש בעל האורך הנתון, מעתיקה אליו את התוכן של המערך המקורי ומחזירה את החדש | 1.6 |
equals(int[] a, int[] a2) | מחזירה true אם המערכים ותוכנם זהים, אחרת מחזירה false | |
equals(short[] a, double[] a2) | מחזירה true אם המערכים ותוכנם זהים, אחרת מחזירה false | |
equals(Object[] a, Object[] a2) | מחזירה true אם המערכים ותוכנם זהים, אחרת מחזירה false | |
fill(int[] a, int val) | ממלא את כל תאי המערך בערך val. אינה מחזירה את המערך הערוך, אלא שהמערך הנכנס נערך | |
fill(float[] a, float val) | ממלא את כל תאי המערך בערך val. אינה מחזירה את המערך הערוך, אלא שהמערך הנכנס נערך | |
fill(Object[] a, Object val) | ממלא את כל תאי המערך בערך val. אינה מחזירה את המערך הערוך, אלא שהמערך הנכנס נערך | |
sort(int[] a) | ממיינת את המערך כלפי מעלה. אינה מחזירה את המערך הממוין, אלא שהמערך הנכנס ימוין | |
sort(long[] a) | ממיינת את המערך כלפי מעלה. אינה מחזירה את המערך הממוין, אלא שהמערך הנכנס ימוין | |
sort(Object[] a) | ממיינת את המערך כלפי מעלה. אינה מחזירה את המערך הממוין, אלא שהמערך הנכנס ימוין. כל העצמים במערך חייבים לממש את Comparable<T> |
מחלקת System
[עריכה]יצירת מחלקה אישית
[עריכה]ניתן ליצור מחלקה משלנו אשר תשרת את הצרכים שלנו בפיתוח הקוד. להלן מחלקת ArrayTools אשר מאפשרת חישובים ופעולות נוספות למערכים:
public class ArrayTools {
public static int getSum(int[] a) {
int sum = 0;
for(int i: a)
sum += i;
return sum;
}
public static double getAverage(int[] a) {
return ((double) getSum(a)) / a.length;
}
public static int[] merge (int[] a, int[] b) {
int[] c = new int[a.length + b.length];
int i = 0;
for(i = 0; i < a.length, i++)
c[i] = a[i];
for(i = 0; i < b.length, i++)
c[a.length + i] = b[i];
return c;
public static int[] merge (int[][] a) {
int l = 0;
for(int[] i: a)
l += i.length;
int[] c = new int[l];
l = 0;
for(int i = 0; i < a.length, i++) {
for(int j = 0; j < a[i].length, j++)
c[l + j] = a[i][j];
l += a[i].length;
}
return c;
}
public static String toString(int[] a) {
StringBuilder sb = new StringBuilder("[");
for(int i = 0; i < a.length - 1; i++)
sb = sb.append(i).append(", ");
sb = sb.append(a[a.length - 1]).append("]");
return sb.toString();
}
}