עבור לתוכן

עזרה בהבנת שפת C#/JAVA

Featured Replies

פורסם

היי,

התחלתי ללמוד שפת C#, ונושא המחלקות אינו ברור לי כל-כך...מה השימוש בהן?

נניח ובניתי תוכנית אשר עובדת עם DB של SQL (נניח חנות חיות), והקמתי מאגר המכיל לי את כל הפריטים שהחנות מציעה (מלאי), וגם בניתי ב-C# מערכת אשר מטפלת במלאי (מוסיפה, מחסירה, מתריאה אם חסר).

אני יודע שהשאלה שלי קצת כללית, אבל היכן יבוא לידי ביטוי נושא המחלקות של OO, במערכת הזאת?

(אפילו הדוגמא הכי קטנה תעזור, ע"מ שאני אוכל להבין את הנושא).

אני מבין שלכל פריט (נניח במחלקת אוכל) יש דברים זהים: משקל, לאיזה בעל חיים וכד'. - אבל הדבר הזה גם בא לידי ביטוי ב-DB...לא?

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

תודה.

פורסם

קודם כל חשוב שתדע שמסדי נתונים הם לא Object Oriented, ולכן אין התאמה מלאה ביניהם לבין שפות שהן כן מוכוונות עצמים. לדוגמה, ב-OO קיימים יחסים בין אובייקטים שלא קיימים בין טבלאות ב-DB (לדוגמה, יחס "הכלה" - אובייקט יכול "להכיל" אובייקט אחר, אבל רשומה בטבלה לא יכולה "להכיל" רשומה בטבלה אחרת). בשביל זה יש כל מיני מנגנונים בשם ORM שנועדו לבצע התאמה בין שני הדברים.

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

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

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים