
19-11-2009, 02:58
|
 |
|
|
חבר מתאריך: 21.12.04
הודעות: 30,020
|
|
הבנאי מחזיר אובייקט.
לדוגמא, נניח שיש לך מחלקה בשם "Bla", אזי הקוד:
מכיל רפרנס בשם obj1 מסוג "Bla", והקריאה לבנאי (באמצעות new) מחזירה את הרפרנס לאובייקט שנוצר מאחורי הקלעים.
עכשיו - ברגע שאתה קורא לבנאי - נוצר אובייקט. אי אפשר לעשות בדיקה בבנאי האם הערך טוב או לא, ואז לפי זה לקבוע האם ליצור את האובייקט או לא... את זה אתה יכול לעשות מחוץ לקריאה של הבנאי:
קוד PHP:
int x = 1, p = (-1); if (x > 0 && p < 0) { Bla obj1 = new Bla (x,p); }
מה שאתה כן יכול לעשות בתוך בנאי, אם אתה רוצה, זה לקבוע את המשתנים למה שבא לך. כלומר, אם אתה מקבל בבנאי מספרים שהם לא בתחום הקבלה שלך - אז אתה יכול לקבוע במשתנים של האובייקט מה שבא לך (נגיד שנחליט כי 0 זה מספר שמציין תקלה, כמו למשל בהכנסת מספר תעודת זהות לא תקין):
קוד PHP:
class Bla { private int x,y; Bla (int num1, int num2) { if (num1 > 0 && num2 < 0) { x = num1; p = num2; } else { if (num1 < 0) x = 0; if (num2 > 0) p = 0; } }
בשיטה הזו, תוכל לבדוק מה הם ערכי x ו- p בתוך האובייקט ואז לדעת האם המספרים שקיבלת בתוך הבנאי, הם סבבה עם התכנית שלך או לא סבבה.
בכל מקרה - בשיטה הזו - יווצר אובייקט.
כדי לדעת האם הקליטה היתה טובה, תבדוק את הערכים המתאימים בתוך ה main שלך:
קוד PHP:
if (obj1.getX() && obj1.getP()) { // input was okay } else { // input was not okay }
כמובן שצריך להגדיר שיטות getX ו- getP בהתאם 
|