חזור חזרה לדף הקודם
כתובת פורום: https://rotter.name/cgi-bin/nor/dcboard.cgi
שם פורום: פיתוח, תיכנות ובניית אתרים
מספר נושא: 22191
#0,יאשמח להסבר טוב אם יש לך על מה זה object oriented programming
נכתב על-ידי code_blue בתאריך 16.05.18 בשעה 21:02
מעולם לא למדתי תכנות מלבד קצת C בהנדסאים
יודע בסיס של PHP ולא מצליח על אף שקראתי והקשבתי להרצאות להבין מה זה אומר
איך אני מיישם את זה בשעת צורך

#1,יתשובה מ STACKOVERFLOW
נכתב על-ידי Moshe4PRO בתאריך 16.05.18 בשעה 21:16
בתגובה להודעה #0
https://stackoverflow.com/questions/38467631/whats-object-oriented-programming

#2,יתודה רבה
נכתב על-ידי code_blue בתאריך 16.05.18 בשעה 21:36
בתגובה להודעה #1
קצת פישט אבל עדיין לא הבנתי את הclass זה נראה כמו סדרה של פונקציות אז מה הבעיה לקרוא להן כשצריך מה הclass חוסך לי

#3,יאי אפשר ללמוד את כל התורה על רגל אחת
נכתב על-ידי Zeet3x בתאריך 16.05.18 בשעה 21:41
בתגובה להודעה #2
עצם המחשבה שכתבת פה מראה שאתה לא בכיוון אפילו של להכנס ל"מה זה Class"...
אם באמת אכפת לך מה זה OOP אתה צריך ממש לקרוא ולהבין את הרציונל מאחורי זה, את העקרונות, את מה שאפשר לעשות עם זה (הכללה, הכמסה, הורשה, ממשקים וכו' וכו').
זה שתקרא מה זה Class זה לא מה שילמד אותך על OOP.

#4,יאני מנסה להכנס
נכתב על-ידי code_blue בתאריך 16.05.18 בשעה 21:43
בתגובה להודעה #3
כפי שכתבתי אני לא ממש מהתחום
מנסה להעשיר ידע

#5,יאז ככה אני עדיין לא יודע מה הידע שלך
נכתב על-ידי Moshe4PRO בתאריך 17.05.18 בשעה 00:32
בתגובה להודעה #4
אבל אחד מהדברים שלדעתי מתכנת צריך שיהיה לו זה לקרוא

https://en.wikipedia.org/wiki/Object-oriented_programming

ארוך אבל שווה לקרוא, מסביר מלא דברים על הנושא

@code_blue@


#6,יתודה רבה
נכתב על-ידי code_blue בתאריך 17.05.18 בשעה 07:22
בתגובה להודעה #5
הלכתי לאיבוד באמצע
תודה על הנסיון
אני צריך לחוש את זה תוך כדי הבנה של תוכנית בשיטה הזו והבנה
מה נותן לי להריץ אותה ככה מאשר בצורה אחרת

#7,יYouTube ניסית ?
נכתב על-ידי Beckham בתאריך 17.05.18 בשעה 10:03
בתגובה להודעה #6

#8,יכמו שאמרו שאלות כאלה בדרך כלל נפתרות אחרי גיגול ארוך וקריאה רבה
נכתב על-ידי משה הלולן בתאריך 17.05.18 בשעה 18:11
בתגובה להודעה #0
תתחיל מחיפושים בסיסים תקרא את העמודים הראשונים ותזרום, נגיד
oop vs functional

#9,יחעחעחעחע
נכתב על-ידי fly בתאריך 17.05.18 בשעה 23:21
בתגובה להודעה #0
ערכתי לאחרונה בתאריך 17.05.18 בשעה 23:46 בברכה, fly
 
במקום לענות לו, מבלבלים לו את המוח

תיכנות מונחה עצמים = עבודה עם מחלקות

מחלקה זה קטע קוד שאפשר להגדיר בתוכו פונקציות ומשתנים מכל מיני סוגים

אם הקוד שלך הוא כמה שורות בודדות אז לא צריך לעבוד עם מחלקות

נניח אני רוצה לשלוח אימייל עם כל מיני אופציות

יהיה מאוד נוח להכניס את כל הקוד למחלקה

ואז כשארצה לשלוח אימייל אבצע שליחת מייל בצורה פשוטה ונקייה


mailClass.send(true,false,true)

שימוש במחלקות מאפשר לבצע כל מיני דפוסי תוכנה מועילים שצריך ללמוד

שימוש במחלקה מאפשר לך לא לשרוף שמות של משתנים ופונקציות בשביל שתוכל לעשות בהם שימוש חוזר


classA.sendMail()
classB.sendMail()
classC.sendMail()


classA.sendMail() יכול לשלוח מייל בצורה אסינכרונית

classB.sendMail() יכול לשלוח מייל בצורה מקבילית

classC.sendMail() יכול לשלוח מייל עם וירוס

אתה לא מבין מה זה מחלקה כי לא כתבת הרבה קוד

תלמד את הבסיס תבצע תרגילים, יש מלא אתרים באינטרנט

ואחר כך תבנה אפליקציה

זה יקח זמן, אלא אם אתה גאון


#10,יתודה רבה
נכתב על-ידי code_blue בתאריך 18.05.18 בשעה 11:08
בתגובה להודעה #9
כנראה שזה יבוא (או לא) עם נסיון


נשלח ע"י הסלולרי


#18,יכל הכבוד!
נכתב על-ידי galaxy בתאריך 15.06.18 בשעה 12:28
בתגובה להודעה #9
אני לא מבין את התגובות פה, הבנאדם רושם שהוא לא מהתחום ורוצה קצת להבין יותר לעומק את הרעיון שלOOP.

במקום להפנות אותו לגוגל (מה שאני בטוח שהוא עשה מהיכרות עם הבנאדם) , מה הבעיה להסביר? לפעמים חיפושים בגוגל לא מספיקים על מנת לתת תשובה מלאה.


שוב כל הכבוד לך!


#11,יחחח אל תתרגש
נכתב על-ידי Simple בתאריך 29.05.18 בשעה 15:13
בתגובה להודעה #0
ערכתי לאחרונה בתאריך 29.05.18 בשעה 15:22 בברכה, Simple
 
מתכנתים שוכחים שהם פעם גם לא ידעו איך ומה לחפש
@code_blue@
במילים שלי:
תכנות מונחה עצמים הוא תכנות שבו אתה מתייחס לפיסות קוד כמו עצם שיש לו תכונות ויש לו כל מני שיטות (פונקציות) שהוא יכול לעשות.
למשל אם תרצה לתכנת כלב,אז איזה תכונות (שדות בשפה המקצועית) יש לו?
תשובה:
שם
גיל
חיסונים
תאריך לידה

ואיזה שיטות יהיו לו?
1)לנבוח
2)לשחק
3)לילל
4)לישון
5)להתעורר

עכשיו מה שכתבתי לך בעברית זה מחלקה שנקראת כלב ורשימת השיטות שרשמתי לך זה הפונקציות שהוא יכול לעשות
בתור מתכנת אתה צריך "לממש" את הפונקציות האלה כלומר להפוך אותן לממשיות ולכתוב מה קורה בכל פונקציה,לדוגמה ב"לנבוח" הפונקציה תדפיס :"bark bark" וכו וכו.
יש לך דבר שנקרא ממשק שזה מין חוזה של מה צריך להיות למחלקה ש"מממשת את הממשק",נניח לכל כלב בעולם צריך להיות את השיטות שרשמתי למעלה,אז אם אני אכתוב ממשק שמכיל את כל הפונקציות האלה (interface) באנגלית אם תרצה לחפש אז אני אצהיר שם על השיטות שכלב צריך לממש.אם אני ארצה ליצור כלב מסוג רוטווילר הוא "יממש את הממשק" והמתכנת יכתוב איך הוא פועל עם אותן פונקציות למשל:
כלב פקינז בפונקציה 1 ידפיס:
"bark bark"
כלב רוטווילר בפונקציה 1 ידפיס:
"hau hau"
וכו וכו.

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

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


#12,יהסבר יפה ובהיר
נכתב על-ידי כובען בתאריך 29.05.18 בשעה 15:18
בתגובה להודעה #11

#13,י:)
נכתב על-ידי Simple בתאריך 29.05.18 בשעה 15:22
בתגובה להודעה #12

#17,יממשיך בהסבר הזה
נכתב על-ידי Moshe4PRO בתאריך 15.06.18 בשעה 11:48
בתגובה להודעה #11
ירושה זה אומר שנניח והיינו עושים את המחלקה הראשונה שתייצג בעל חי
אז יש לו את הפונקציה של לישון

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

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


#14,יאגב לגבי היישום של זה,
נכתב על-ידי Simple בתאריך 29.05.18 בשעה 15:27
בתגובה להודעה #0
לא ממש הבנתי את השאלה,זה צורה של כתיבת קוד ויש שפות שתומכות בזה בצורה מובנית ויש שפות שלא,אני ממליץ לך בחום להוריד intellij או eclipse ולהתחיל לתכנת ב java ולקרוא,יש על זה המון המון המון מידע ולאט לאט תדע מה לחפש.
לא ממליץ להתחיל מ c++ וכאלה כי זה שפות פחות ידידותיות למתחילים.
אם אתה רוצה ללמוד בצורה טובה תחליט על משהו שאתה רוצה ליצור לדוגמה מחשבון ופשוט תנסה ליצור אותו בקוד,לאט לאט אתה תתחיל להפנים ולהבין מה אתה עושה כי כשתתקע אתה תבדוק באינטרנט ותראה ש 20K מתכנתים נתקעו בזה לפניך
בהצלחה חבר

#15,יאחרי שכמעת מסיים קורס פייתון עם נגיעה בoop
נכתב על-ידי code_blue בתאריך 12.06.18 בשעה 21:13
בתגובה להודעה #0
יודע לציין שהבנתי את הרעיון הכללי
אך בגלל שאני לא באמת כותב ביום יום
לא יכול להשליך את המטודה הזו על פרוייקט
או לראות איך היה עובד סקריפט שלי לו היה ב oop

בכל אופן תודה לכולכם הגעתי לשיעור עם הבנה כלשהי של מה זה בכלל oop


נשלח ע"י הסלולרי


#16,ירק רוצה לציין שפייטון שפה שפחות מעודדת oop
נכתב על-ידי Simple בתאריך 14.06.18 בשעה 00:43
בתגובה להודעה #15
אם כי אפשר לתכנת ככה
אין אכיפה טובה של טיפוסים יש ירושה מרובה שזה קצת בעייתי קונספטואלית עם oop למרות שיש שפות כאלה
אם אתה רוצה להבין טוב תתכנת ב java או c# שנחשבות שפות מונחות עצמים קלות

#19,יסביר להניח שבסקריפטים לא תשתמש בOOP
נכתב על-ידי Zeet3x בתאריך 15.06.18 בשעה 15:31
בתגובה להודעה #15
OOP זה למערכות גדולות עם קשרים בין ישויות וכו'.
אם אתה סתם בונה סקריפט סביר להניח שלא תבנה מחלקות וכו'.