כפי שהשם מרמז, תכנות מונחה עצמים או Java OOP מתייחס לשפות תכנות שמשתמשות בעצמים בתכנות.
משתמשים בעצמים כמקור העיקרי ליישום מה שצריך לקרות בקוד.
תכנות מונחה עצמים שואף ליישם ישויות מהעולם האמיתי כמו ירושה, הסתרה, פולימורפיזם ועוד בתכנות.
המטרה העיקרית של OOPs היא לקשור יחד את הנתונים והפונקציות שפועלות עליהם, כך ששום חלק אחר בקוד לא יוכל לגשת לנתונים הללו מלבד הפונקציה הזו.
בסדנא המעשית של גאמא סייבר יש מבחן קוד שבו נדרש תכנון מקדים של מחלקות, משימה שדורשת הבנה עמוקה בתכנות מונחה עצמים.
בואו נתחיל בחידוד מושגים של הצהרת מתודה (Method Declaration) ושליחת הודעות (Message Passing).
נתחיל עם הצהרת המתודה, שמורכבת משישה רכיבים:
אובייקטים מתקשרים זה עם זה על ידי שליחת וקבלת מידע זה מזה. הודעה לאובייקט היא בקשה לביצוע פרוצדורה ולכן תזמין פונקציה באובייקט המקבל שמייצרת את התוצאות הרצויות. שליחת הודעות כוללת ציון שם האובייקט, שם הפונקציה והמידע שיש לשלוח.
כעת, לאחר שסקרנו את התנאים המוקדמים, נעבור ל-4 עמודי היסוד של OOPs, שהם:
מחלקה היא אבטיפוס או תבנית שהמשתמש מגדיר, שממנה נוצרים אובייקטים.
היא מייצגת קבוצה של תכונות או מתודות המשותפות לכל האובייקטים מסוג אחד. בעזרת מחלקות, ניתן ליצור אובייקטים מרובים עם אותה התנהגות במקום לכתוב את הקוד שלהם שוב ושוב.
באופן כללי, הצהרות מחלקה יכולות לכלול את הרכיבים הבאים לפי הסדר:
אובייקט הוא יחידה בסיסית של תכנות מונחה עצמים המייצגת ישויות מהעולם האמיתי. תוכנית Java טיפוסית יוצרת אובייקטים רבים, שכפי שאתם יודעים, מתקשרים זה עם זה על ידי קריאת מתודות. האובייקטים הם אלו שמבצעים את הקוד שלך והם החלק הנראה לצופה או המשתמש.
אובייקט מורכב בעיקר מ:
מתודה היא אוסף של הצהרות שמבצעות משימה ספציפית ומחזירות תוצאה למתקשר.
מתודה יכולה לבצע משימה ספציפית מבלי להחזיר כלום.
מתודות מאפשרות לנו לעשות שימוש חוזר בקוד מבלי להקליד אותו מחדש, ולכן הן נחשבות לחוסכות זמן.
ב-Java, כל מתודה חייבת להיות חלק מאיזו מחלקה, מה ששונה משפות כמו C, C++, ו-Python.