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