שניצל פורסם 2012 בדצמבר 8 Share פורסם 2012 בדצמבר 8 כמו שהסברתי לך קודם:איברים/תכונות זה מידע שנשמר על גבי האובייקט.פונקציות/שיטות זה פעולות שאפשר לעשות עם האובייקט.אז איזה פונקציות יש למכונית? כל מה שהמכונית יודעת "לעשות". המכונית יודעת להאיץ, ולכן צריך לתת לה פונקצית האצה (מה שקראת לו increase), והמכונית יודעת להאט, ולכן צריך לתת לה פונקצית האטה (מה שקראת לו decrease).אבל השמות increase ו-decrease הם לא שמות טובים, כי הם אומרים "העלה" ו"הורד", ואין כזה דבר "להעלות" ו"להוריד" את המכונית - השם של הפונקציה צריך לתאר מה היא עושה. לדוגמה, פונקציית האצה יכולה להיקרא accelerate, שזה מילולית "האץ", או increaseSpeed, שזה מילולית "הגבר מהירות". שניהם שמות טובים. תחשוב בהתאם לכך מה צריך להיות שם פונקציית ההאטה.איזה איברים/תכונות/שדות יש למכונית? כל פרט מידע שנשמר על המכונית. איזה פרטי מידע יכולים להיות למכונית? מהירות נוכחית, צבע, מספר גלגלים, שם הנהג וכן הלאה וכן הלאה. כמובן, לא נשמור את כל המידע הזה כי הוא מיותר - נשמור רק את המידע שמעניין אותנו. במקרה הזה, מה שמעניין אותנו הוא המהירות, ולכן נשמור אותה בשדה בשם מתאים - speed (ואם נרצה יותר לדייק - currentSpeed, דהיינו מהירות נוכחית).תחשוב איזה עוד תכונה צריך להוסיף, איפה צריך לשים לה ערך (לדוגמה, את המהירות הגדרת ל-0 בבנאי, וזה הגיוני - הרי המכונית מתחילה ממצב עצירה), וכמובן איך אתה מגביל את המהירות ל-100 (רמז: איך דאגת שהמהירות לא תוכל לרדת מתחת ל-0?)בהצלחה. קישור לתוכן שתף באתרים אחרים More sharing options...
spring10 פורסם 2012 בדצמבר 8 מחבר Share פורסם 2012 בדצמבר 8 השאלה שלי עוד לפני זה איך אתה בוחר את הערכים ומתאים אותם לתכונות..לגבי התוכנות עשיתי משהו דומה אני יכול לשנות את השמות באמת לפי מה שרשמת, כל התוכנות רשומות לי בעצם בשאלה עצמה..עשיתי תכונה של הגבלת מהירות, זו לא דרך טובה?תראה את התוכנית החדשה: (הרבה דברים לא מדוייקים)public class Cars { private int kmh; private int x; private int y;public void stop(){ kmh=0;}public void decrease() { if (kmh>0) kmh=kmh-1;} public void increase() { if (kmh>=0) kmh=kmh+1; if (kmh>=100) kmh=0; }public Cars (int speed){ kmh=speed;}public void mispar (int a){ x=a;}public void show() { System.out.println("Your speed is:"); System.out.println(kmh); System.out.println("your car number is:"); System.out.println(x);}} קישור לתוכן שתף באתרים אחרים More sharing options...
Gil28 פורסם 2012 בדצמבר 8 Share פורסם 2012 בדצמבר 8 יש לך שגיאה בסיסית בהבנה של איך מחלקה בנוייה.נניח והייתי רוצה לכתוב מחלקה שתייצג כלב.הייתי כולל תכונות כמו: סוג הכלב, שמו של הכלב, הצבע שלו ונניח, הנביחה שלו.ראשית, אני צריך בנאי (והשתדל לכתוב את הפונקציה של הבנאי ראשונה). הבנאי בעצם אמור לאתחל את כל המשתנים הללו שהגדרנו עבור התכונות.אם נניח הבנאי מקבל את סוג הכלב, שם הכלב והצבע שלו, זה בדיוק מה שאני אעשה. אני גם אתן איזה ערך ברירת מחדל לנביחה שלו.הנה הדוגמא:private String _name;private String _breed;private String _color;private String _bark;public Dog(String breed, String name, String color){ _name = name; _breed = breed; _color = color; _bark = "ruff ruff!";}אצלך למשל, מה משמעות התכונה x? מספר הרכב? אז תן לו שם משמעותי. ומי זה y?יש לך את הפונקציה increase. שים לב שיש ערכים של KMH שמקיימים את שני התנאים. למה אתה בודק מתי המהירות שלילית (מתי זה יכול לקרות?) קישור לתוכן שתף באתרים אחרים More sharing options...
spring10 פורסם 2012 בדצמבר 9 מחבר Share פורסם 2012 בדצמבר 9 מצטער אבל לא הבנתי את ההסברים...אני לא יודע באיזה תכונות לבחור, איזה פונקציות לעשות ואיך לכתוב את הבנאי \: קישור לתוכן שתף באתרים אחרים More sharing options...
Gil28 פורסם 2012 בדצמבר 9 Share פורסם 2012 בדצמבר 9 זה באמת פשוט ולא מסובך.לרכב שלך יש תכונות של מהירות ומספר הרכב.הבנאי שלך אמור לתת להם ערכים. קישור לתוכן שתף באתרים אחרים More sharing options...
spring10 פורסם 2012 בדצמבר 9 מחבר Share פורסם 2012 בדצמבר 9 סבבה...אז רשמתי נגיד תכונותint speed int carnumberנגיד הוא רוצה שני רכבים במחלקהאני יוצר שני אובייקטים של car1 ו- car2איך אני יוצר בנאי שנותן לכל מכונית מספר רכב שונה אם אפשרות לשנות את המספר קישור לתוכן שתף באתרים אחרים More sharing options...
Gil28 פורסם 2012 בדצמבר 9 Share פורסם 2012 בדצמבר 9 יש לך חוסר הבנה בסיסי במה מייצג מחלקה.המחלקה Car מייצגת רכב שיש לו מהירות ומספר. אם אתה רוצה 2 רכבים, אתה פשוט משתמש בבנאי פעמיים.נניח אני רוצה שתי מחרוזות:String str1 = new String("hello");String str2 = new String("world"); קישור לתוכן שתף באתרים אחרים More sharing options...
spring10 פורסם 2012 בדצמבר 9 מחבר Share פורסם 2012 בדצמבר 9 אז רשמתי ככה:private int carnumberיצרתי 2 אובייקטים של מכוניות והכנסתי להם מספר:Cars car1=new Cars(12);Cars car2=new Cars(15);והשיטה היא:public void mispar (int a, int b){ mispar1=a; mispar2=b;איפה הטעות שלי? ומה צריך להוסיף? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בדצמבר 9 Share פורסם 2012 בדצמבר 9 מה השיטה הזו עושה (מה המטרה שלה)? מה זה mispar? מה המשמעות של הפרמטרים שהיא מקבלת?כשאתה כותב שיטה, אתה צריך להיות מסוגל לתאר במילים מה היא עושה (או אמורה לעשות), וביחס לפרמטרים שלה. חוץ מזה, השם של השיטה והפרמטרים שלה צריכים להתאים לתיאור הזה. לדוגמה, את השיטה increase אפשר לתאר במילים "מעלה את מהירות המכונית". אם לדוגמה הפונקציה הייתה מקבלת פרמטר שאומר בכמה להעלות את המהירות, אז אפשר היה לתאר את השיטה כ"מעלה את מהירות המכונית בכמות שהועברה כפרמטר".אם לדוגמה עשית בנאי שמקבל את מספר המכונית, אז אתה יכול לתאר אותו במילים "יוצר מכונית חדשה עם מספר הזיהוי שהועבר כפרמטר". קישור לתוכן שתף באתרים אחרים More sharing options...
spring10 פורסם 2012 בדצמבר 9 מחבר Share פורסם 2012 בדצמבר 9 השיטה הזאת נקראת מספר, היא צריכה להציג את מספר הרכב.. הפרמטרים היא מקבל לפי המספרים שמזינים בבנאי.. קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2012 בדצמבר 9 Share פורסם 2012 בדצמבר 9 קודם כל, אם היא צריכה להציג משהו, אז שיקראו לה בשם המתאים - לדוגמה showNumber,printNumber או getNumber (גם בין השמות האלה יש הבדל סמנטי כלשהו, אבל אני לא אכנס אליו).חוץ מזה, למה היא צריכה לקבל פרמטרים? פרמטרים זה מידע שהפונקציה צריכה לקבל ממי שקורא לה על מנת לעשות את עבודתה. כשאתה שואל את בעל הרכב "אמור לי, מה מספר הרכב שלך?" האם אתה נותן לו מספרים לבחור מהם? לא, אתה פשוט שואל אותו שאלה כללית (בלי מידע נוסף) והוא זה שצריך לומר מה המספר. קישור לתוכן שתף באתרים אחרים More sharing options...
spring10 פורסם 2012 בדצמבר 9 מחבר Share פורסם 2012 בדצמבר 9 אז אתה יכול להראות לי מה הדרך הנכונה בכדי שיהיה ניתן להתקדם וללמוד מזה? קישור לתוכן שתף באתרים אחרים More sharing options...
amitbl פורסם 2012 בדצמבר 9 Share פורסם 2012 בדצמבר 9 אני מציע שפשוט תקרא שוב דוגמאות למחלקות שקיבלתם בכיתה, או שכתובים לך בספר, ושתנסה לחבר שוב בין מה ששניצל אמר למה שאתה רואה בדוגמאות.שניצל כאן נתן לך את כל הכלים, וכמעט ממש האכיל בכפית. השלב הבא זה פשוט לתת לך את התשובה וזה כבר לא לעניין. קישור לתוכן שתף באתרים אחרים More sharing options...
spring10 פורסם 2012 בדצמבר 9 מחבר Share פורסם 2012 בדצמבר 9 מצטער אבל אני בשלב כבר שאני מבולבל מהכל... אני צריך לראות מבנה של התוכנית ומזה להבין מה עלי לעשות. קישור לתוכן שתף באתרים אחרים More sharing options...
Gil28 פורסם 2012 בדצמבר 9 Share פורסם 2012 בדצמבר 9 חפש באינטרנט דוגמאות למחלקות פשוטות. פשוט יש לך בעיה בסיסית בהבנה שלא תיפתר בלי "ללכלך את הידיים" קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.