INTERFACE בJAVA

yair24

Member
INTERFACE בJAVA

שלום, אני צריך לכתוב פרוייקט בג´אווה ובפרוייקט אני צריך להקפיד על שימוש בקבועים כמו לדוגמא: במקום לכתוב שבלוח יש 20 משבצות אני צריך להשתמש בקבוע שנקרא FINAL INT NUMBEROFSQUARES=20 ואז להשתמש בו... אלא שלצורך הפרוייקט שלי אני צריך להשתמש בקבועים האלו ביותר מקובץ אחד. וזה לא אפשרי מפני שמחלקות לראא מכירות קבועים שהגדרתי בקבצים נפרדים... אז אחרי ברור קצר אמרו לי שאני מריך לממש INTERFACE של קבועים ואז לכל מחלקה לעשות IMPLEMENT ל INTERFACE הזה... מישהו יכול לתת דוגמא איך אני מממש INTERFACE משל עצמי? תודה יאיר
 

gregp

New member
---->

הסיפור של INTERFACE הוא נורא פשוט אתה מגדיר INTERFACE באותה צורה כמו מחלקה רגילה ואז במקום EXTENDS רושם IMPLEMENTS שיטה נוספת ואולי גם יותר נחמדה היא הוספת מחלקת קבועים לפרוייקט ולהכניס לתוכה קבועים סטטיים ואז להשתמש בהם בצורה הבאה: CONST_CLASS.CONST_NAME בתוך המחלקות האחרות - אין צורך בשום פעולות נוספות
 

yair24

Member
תודה , אבל

אני שםן את הINTERFACE בתוך קובץ נפרד? ממש כמו מחלקה? איך בדיוק אתה יכול לרשום פה קוד לדוגמא? נגיד שאני רוצה שני קבועים NUMBER1=40 NUMBER2=NUMBER1+20 את שני אלה אני רוצה לשים בINTERFACE של קבועים... אני עוד צריך לחשוב על הרעיון השני שלך אם להשתמש במחלקת קבועים כי זה לא מה שהמרצהה שלי אמר לי... יאיר
 

yair24

Member
להשתמש בINTERFACE קיים אני יודע.

השאלה היא איך אני מגדיר INTERFACE משלי... יאיר
 

gregp

New member
---->

אתה יכול להגדיר INTERFACE ממש כמו מחלקה אין שום הבדל תגדיר בקובץ נפרד
 

yair24

Member
אני ממש רוצה לנסות אבל...

אני לא ממש יודע מה לכתוב: למשל:
class interface constants { final int number1=40; final int numer2=number1+20; }​
או אולי:
interface constants { final int number1=40; final int numer2=number1+20; }​
או אולי בדרך אחרת? פשוט אני נמצא עכשיו במחשב שאין לי בו JAVA אבל יש לי בו חיבור לאינטרנט אני לא רוצה להגיע למחשב שאין לי בו אינטרנט ולגלות שאני לא מצליח את זה בגלל בעית סינטקס... יאיר
 

gregp

New member
OK

INTERFACE הוא כמו מחלקה אבסטרקטית בC++ הסינטקס כדלקמן:
public interface MyConstants { ;public static final int LENGTH = 100 } public class MyClass implements MyConstatnts { ;private int length = LENGTH } אני אחזור על מה שאמרתי קודם: תגדיר מחלקה נוספת עם משתנים סטטיים ותוכל להשתשמש בה בלי שום קוד נוסף.​
 

yair24

Member
תודה רבה!!

דרך אגב השתמשתי בINTERFACE, הגדרתי בו את הקבועים ובמימוש של הINTERFACE לא הייתי צריך את הדבר הבא:
public class MyClass implements MyConstatnts { ;private int length = LENGTH }​
אלא אני ישר משתמש בקבועים שהגדרתי בINTERFACE יש משהו שגוי בזה? יאיר
 

yair24

Member
בדרך כלל אני לא מתרגז אבל...

זה שאתה "מומחה" לג´אווה זה אומר שכולם צריכים להיות מומחים בה? יאיר
 
יאיר היקר....

אם הבנתי נכון אתה בעצם רוצה לבצע קריאה מחבילה לחבילה או בשפת CPP לייצור מספר HEADRS ואז לבצע קריאות כאלה ואחרות. ב JAVA לעומת מה שאנשים אמרו כאן....זה מתבצע ע"י PACKAGES ....רק כך אתה יכול לייצור מספר תתי פרוייקטים ולאכלס אותם לפרוייקט אחד. בנוסף זה גם קשור ל CLASSPATH יש נושא שלם ב JAVA שנקרא Packages and Interfaces
 

yair24

Member
אני לא מבין...

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