14 תשובות
בעיקרון אני מתכנתת java אבל לפעמים סוגריים זה חלק מנוסחא כאילו כמו בהצהרות נגיד
זה הנתונים שאת מכניסה כדי לייצר את האובייקט, כמו נגיד אם את רוצה ליצור דלי של 8 ליטר, והאינישילייזור מקבל int עבור כמה ליטרים יהיה הדלי.
אז את צריכה להכניס 8 לסוגריים
שואל השאלה:
ג'אווה זה לא אותו דבר? לא הבנתי, מה זאת אומרת חלק מהנוסחא? מה זאת אומרת הצהרה?
לפעמים אפשר להשתמש בסוגריים לא? אז מה אפשר להכניס לשם?
קריאה לאובייקט היא למעשה קריאה לבנאי של האובייקט, שהוא כמובן פונקציה

לכן יש צורך סינטקטי בסוגריים בנוסף לארגומנט נוסף אם הבנאי משתמש בו, סתם לדוגמה אם הבנאי של person היה מקבל int בשם age שמייצג גיל זה היה נראה ככה

person1 = new person(1)

תקף לכל אובייקט שנוצר באמצעות קריאה לבנאי
שואל השאלה:
וואי וואי תזכרו שאני רק מתחילה, אפשר בשפה יותר פשוטה? חח
סבבה אז אני אקצר

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

אני אתן את person כדוגמה

class person{

private string name

private int age

public static person(name,age){

this.name = name
this.age = age

return person
}
}

ואז כשארצה לקרוא לאובייקט זה יראה ככה:

person = new person(bamba, 10)

זה כי אחרי המילה new אנחנו קוראים לפונקציה שבונה את האובייקט, וכמו כל פונקציה - חייבים להשתמש בסוגריים
הסוגריים מעידות על כך שזה פונקציה
שואל השאלה:
ותכלס מה מכניסים שם בסוגריים? לפי מה שהבנתי מכניסים שם כל מיני מאפיינים לא? ואז איך מגדירים אותם במחלקה?
תכנות בהתחלה זה מסובך
וואו ואני נתפסת על כל מיני שטויות קטנות
זה לא שטויות, אלו דברים שצריך לדעת.
בתוך הסוגריים מכניסים את המאפיינים של האובייקט.
שואל השאלה:
אה ומה זה הthis הזה?
שואל השאלה:
ומה זה אומר המאפיינים של האובייקט? איך הם באים לידי ביטוי? והבנתי שצריך להגדיר אותם במחלקה... במחלקה של הperson או program? ואיך תכלס מגדירים את זה? באיזה אופן הכוונה
מילת מפתח המצביע על על המופע הנוכחי של המחלקה בה היא נמצאת.
למשל בתוך מחלקה, היא מתייחסת לאובייקט הנוכחי המדובר.
זה קצת קשה להסביר בלי להדגים כמו שצריך.
חפשי מדריכים באינטרנט על oop ב- c# באינטרנט.
בתוך הסוגרים מכניסים פרמטר רלוונטי. לא תמיד יש אבל לזה הצורה מיועדת

למשל לבנאי אפשר להכניס אובייקט אחר, ואז זה copy constructor: מעתיק ערך של האובייקט השני

או למשל אם זה אובייקט מספרי (int) אפשר להכניס שם מספר