ל-philips פעלתי כעצתך. קרא אותי.

lunarbat

New member
ל-philips פעלתי כעצתך. קרא אותי.

ל-philips היקר!!! ----------------- קראתי את תגובותיך על שאלות חברי הפורום בארכיון, ושמתי לב לעקביות כחוט השני לאורך התגובות, שאתה מעריץ ותומך נלהב של java. אם כן התגבשה אצלי ההחלטה לפעול לפי רוח דבריך ואכן לסקור- את האתרים המלמדים שפה זו. בדקתי את האתר של sun והתחלתי לקרוא מה זה בכלל oop. ישנם כמה מונחי יסוד שהובאו שם לידיעתי כמו: פוליפורמיזם,הורשה,ומונח נוסף שלא הבנתי אותו לאשורו. המונח הוא:encapsulation ולפי האנגלית השגורה בפי והיא אינה רעה כלל, המונח מתקשר לכמוסה,קפסולה,נרתיק.האם צדקתי? אני מתעתד לרכוש את הספר עליו המליצו תלמידך,הספר של sub. אני כמובן מבקש בזאת את רשותך לשאלות נוספות בעתיד. נ.ב. ---- תמסור לחברתך את תודתי על רגשי הסימפטיה שלה כלפי מההודעה הקודמת. הייתי מוסיף כאן אייקון של לב אם דף הסמלים היה תקין. תודה lunarbat
 

philips

New member
הממ..תודה

אחד סלח לי על הטעות..מדובר על הספר של SUN ולא SUB שיצא לאחרונה בעברית.. המונחים שאמרת ..כולם נכונים ואסבירם בקיצור בהודעה הבאה (הולך לבשל..) אינני מעריץ/מתלהב JAVA..... ליתר דיוק..אני יותר משונאי C,C++ ומאמין שאת המאמת התכנותי המחשבתי אשקיע באלגוריתמים חכמים ולא בזוטות כגון ניהול זיכרון וכל מיני טריקים אחרים...אותם אתן לאחרים לעשות בשבילי.. ולכן אני דוגל בשפות כגון C# ו JAVA..... מכיון שהתחלית ללמוד C# וכל מה שקראתי הזכיר לי משהו שקראתי בעבר - JAVA..... הגעתי למסקנה ששווה כבר ללכת על המקור... לגביך שאתה חדש בתחום - אני חושב ש JAVA היא שפה מעולה!!! להתחלת לימוד אבל כנ"ל גם לגבי C# שהן די זהות... גם VB לא רעה להתחלה רק שהיא אינה OO מיסודה.. ולגבי JAVA... אני בד"כ בעד דברים שעולים לי פחות/כלום כסף... וזה עוד סיבה טובה מאוד... רוב התוכנות/חומר/קודים/עזרים וכו´ הם ח י נ ם!!! הסבר על המונחים יבוא בהמשך היום, אלא אם מישהו יקדים אותי
 

lunarbat

New member
ל-philips תודה על התשובה ו....

אני מחכה לשאר התשובה. מקווה שהמטעמים שאליהם הפנית את תשומת ליבך, בושלו כראוי והיו טעימים לחך. דבר נוסף שרציתי לציין בעקבות השתתפותך בפורום צלילה, אנו חולקים את אותה החיבה לעולם התת מימי. ביצעתי לפני שנתיים קורס של שתי כוכבים באילת, אך לצערי מאז לא צללתי. תודה מראש על המשך תשובה lunarbat
 

philips

New member
הממ..הסבר

הסבר קצר שאינו תחליף לספר מפורט..קשה להסביר נושאים נרחבים כ"כ בכמה מילים... OOP מבוסס על בניית CLASS ויצירת OBJECT מהם.. אתה מגדיר CLASS שלו מספר חברים: משתנים- שמכילים מידע מתודים - פעולות שיכול אותו אובייקט / מחלקה לבצע. וכו´ הורשה אומרת שאתה יוצא CLASS חדש על סמך CLASS אחר...כשהחדש מקבל את כל המתודים והמשתנים של קודמו בדיוק מוחלט.... כמו למשל - יצירת CLASS- בן אדם , ויצירת שני CLASS : זכר/נקבה שיורשים ממנו. (את המשתנים: גובה,משקל,צבע עיניים וכו´.. ואת הפעולות אכילה,שתייה,שינה,חשיבה וכו´) פולימורפיזם: היכולת ההכרחית בשפות OOP , של METHOD (שיטה,פעולה) לקבל מספר אפשרויות קלט ולבצע פעולות עליהם בהתאם.... דוגמה- ה METHOD אכילה קיים בכל בן אדם (ראה דוגמה למעלה)... ודי ברור לנו איך לבצעו.. ברור באותה מידה שיש הבדל בין אכילה של מרק , ללעיסת מסטיק, לשתיית מילקשייק.... - כולם נקראים אכילה ברמה זו או אחרת... אבל כל אחד מתבצע באופן אחר... ה METHOD שיהיה אחראי לבצע פעולה זו , יפעל באופן שונה בהתאם למה שהוא יקבל מבחוץ- מרק,מילקשייק,מסטיק,פירה וכו´.. (דוגמא מאוד כללית).. עוד דוגמא: כל בעלי החיים יכולים לנשום---לכולם קיים METHOD של נשימה אבל ברור שאין הדג נושם כבין אדם ולכן תוכן ה METHOD יהיה שונה בין אדם לדג למרות שבסה"כ מדובר בסוף בנשימה... ENCAPSULATION: האנגלית השגורה בפיך נכונה ..והעקרון הזה אומר דבר מאוד פשוט ומאוד כיפי.. גם הוא עיקרון יסוד של שפות תכנות... ENCAP אומר שהאובייקט/מחלקה עטופים במעטה סגור - קופסה שחורה... ומה שקורה בפנים לא צריך לעניין את מי שמבחוץ.... כמו למשל...תיבת הילוכים ברכב: אני מעוניין להעביר הילוך.... - ממש לא מענין אותי מה קורה בפנים ואילו גלגלי שיניים זזים וכו´... אני פונה לאובייקט-תיבת מהלכים.. שולח לו מסר מסויים (מזיז את הידית) ומה שקורה הלאה...זה בינו לבין עצמו. כאן גם משתלב הפולימורפיזם שאומר...שהעברת הילוך היא תמיד העברת הילוך אבל ברור שבאוטו ידני ואוטומטי היא מתבצעת אחרת...
אותו הדבר בתכנות... קיבלתי אובייקט ממתכנת אחר.. האובייקט הזה יודע לחשב פעולות מתמטיות מורכבות.... אני נותן לו מספר והוא יחזיר לי תוצאה אותי לא מעניין איך הוא עושה את זה.... ואם למשל החליט אותו מתכנת לשנות אותו...אין לי בעייה עם זה - כל עוד הוא עדיין יקבל ממני מספר ויחזיר לי את התוצאה שאני מבקש... אלו הם העקרונות הכללים.... כרגע אולי המימוש שלהם נראה לך רחוק אבל מאד מאוד חשוב וקריטי שתשלוט בהם.... הם יעזרו לך בהמשך... ואגב...אני צולל מזה 7 שנים...ואני ממליץ לך בחום לחזור לעולם התת-מימי. פולימורפיזם: -----------
 

siftach

New member
מהו אוביקט

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

philips

New member
יפה מאוד...

נוכל לכתוב ספר ביחד...
אמת שלא הסברתי מהו אובייקט כשם שלא הסברתי גם מהם דברים אחרים.. פשוט כפי שאמרתי...קצרה היריעה מלהכיל..והוא ביקש הסבר של המושגים.. אבל אכן...הסבר יפה מאוד...וארשה לעצמי לגנוב לך חלקים ממנו...
אגב... בתור אוהב OOP מושבע שכמוך...אני ממליץ לך בחום להסתכל באתר הבא - http://www.geocities.com/tablizer אתר מבריק למדי בעיני..למרות שקצת פלצני..
 

siftach

New member
הסבר בלי בסיס

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