הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   PHP OOP (https://hosts.co.il/forums/showthread.php?t=86032)

morsrh 01-11-10 19:30

PHP OOP
 
שלום , אני מתחיל ללמוד על OOP ת ולא הבנתי מתי להשתמש ב- PRIVATE ומתי להשתמש ב PUBLIC.
אשמח על הסבר קטן , תודה.

BlueNosE 01-11-10 20:06

יש מדריכים מצויינים בפורום המדריכים. לדוגמא:
http://www.hosts.co.il/forums/tags.p...3%F8%E9%EA+oop

הרעיון הוא ליצור מחלקה שחלקה נגישה כלפי חוץ וחלקה לא. אתה ממש צריך להתחבר לסגנון העבודה בשביל להבין את זה.. הייתי ממליץ להעמיק בחומר, זה יבוא לבד (ואם לא, שאל שוב)

SwfIt 01-11-10 20:09

יש דברים שאתה רוצה וצריך שיהיו נגישים מבחוץ, ויש דברים שלא צריך, ואולי אפילו יכול להיגרם נזק אם אפשר יהיה לשנות אותם\להשתמש בהם לא בזמן,לכן אתה "נועל" אותם לבפנים בלבד.

morsrh 01-11-10 20:14

אוקי , כלומר , אם אני מגדיר פונקציה כ- PRIVATE , אני לא יוכל לעשות variable ->function בתוכנית הראשית ? אבל אני יוכל לפנות אליה מפונקציה אחרת בתוך המחלקה?

BlueNosE 01-11-10 20:15

בדיוק. יש הגדרה נוספת, protected, שמאפשרת לך לגשת לפעולה רק מתוך המחלקה וממחלקות הנגזרות ממנה (Inheritance).

Hagaibl 01-11-10 20:17

private כשמו אומר שהמשתנה או פרטי והוא לשימוש המחלקה בלבד.
כלומר במידה והגדרת למחלקה משתנה private בשם name
בקוד php לא תוכל לגשת אל
PHP קוד:

 $name $object->name 

ועם PUBLIC תוכל

morsrh 01-11-10 20:47

אוקי תודה הבנתי.
ובנוגע להורשה , כאשר אני מציין class engine extends cars אני מייבא את המשתנים שמוגדרים בתוך CARS אל ENGINE ואני יכול להשתמש עם השמות של המשתנים והתוכן שלהם במחלקה ENGINE?

BlueNosE 01-11-10 20:52

אלו שהוגדרו פתוחים, ואגב כך, לא הגיוני להוריש מכונית למנוע - שכן בתוך מכונית יש מנוע ולא להיפך. יותר הגיוני ליצור מודל "רכב" ובו לשים מאפיין מנוע (שיכול להפנות לאובייקט מנוע אם תרצה), והרכב יוריש למחלקה של רכב פרטי, משאית וכו'..

SwfIt 01-11-10 21:36

extends - כלשונו, מאריך\מוסיף על מה שכבר יש.

כלומר, נניח ויש לך קלאס ג'נרי של מכונית, הרי שעכשיו תאריך אותו\תשנה אותו\ תוסיף עליו.

class ToyotaCorola extends car
class MitsubishiSpacewagon extends car

ומשם אתה מוסיף\משנה, ככה שיוצא מכונית יחודית, ולא ה car ה"ג'נרי", האב טיפוס אם לאמר.

morsrh 01-11-10 21:37

תודה הבנתי.


כל הזמנים הם GMT +2. הזמן כעת הוא 04:58.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ