עבור לתוכן

שגיאת קומפילציה של תוכנית ב-JAVA

Featured Replies

פורסם

כתבתי תוכנית בשפת JAVA ולאחר ביצוע קומפילציה הופיע לי השגיאה הבאה מספר פעמים ולא הצלחתי לפתור אותה:


Severity Description Resource In Folder Location Creation Time
2 Cannot make a static reference to the non-static method getCount() from the type Rabbit Empty.java Predator-Prey line 20 17:45:18 26 ספטמבר 2008

מה הבעיה ?

כיצד פותרים אותה?

תודה מראש לעוזרים....

פורסם

אתה מנסת להפעיל מתודה לא סטטית דרך מתודה סטטית. או שתגדיר את המתודה הראשונה כסטטית, או שתייצר אובייקט ותפעיל דרכו את המתודה.

פורסם
  • מחבר

אין לי שום מתודה סטטית...זה יכול להיות עוד משהו ? אם לא , איך פותרים את הבעיה הזאת?

פורסם

השגיאה שלך היא במקרה בפונקציית main של התוכנית ? בכל מקרה, יעזור אם תעלה את הקוד הבעייתי.

פורסם
  • מחבר

השגיאה שלך היא במקרה בפונקציית main של התוכנית ? בכל מקרה, יעזור אם תעלה את הקוד הבעייתי.

הקוד הבעייתי הינו :


public Living next(World world)
{
computeNeighbors(world);
if(Rabbit.getCount().getCounter()>2)
return new Fox(getRow(),getColumn());
if(Grass.getCount().getCounter()>4)
return new Rabbit(getRow(),getColumn());
if(Grass.getCount().getCounter()<4)
return new Grass(getRow(),getColumn());
return this;
}

הודעת ה-1000

פורסם

הפונקציה getCount() היא לא סטטית, אבל אתה מפעיל אותה ככזו, אתה צריך לקרוא לה על אינסטנס של Rabbit ולא על Rabbit עצמו.

פורסם
  • מחבר

הפונקציה getCount() היא לא סטטית, אבל אתה מפעיל אותה ככזו, אתה צריך לקרוא לה על אינסטנס של Rabbit ולא על Rabbit עצמו.

אתה מתכוון לקרוא לו דרך העצם מסוג Rabbit ולא דרך המחלקה ?

פורסם

כן.

פורסם
  • מחבר

תודה הבעיה הזאת נפתרה אבל יש לי שגיאה נוספת:


Severity Description Resource In Folder Location Creation Time
2 The local variable nLiving may not have been initialized Fox.java Predator-Prey line 42 14:45:42 27 ספטמבר 2008

ומופיע בקוד הבא:


public Living next(World world)
{
computeNeighbors(world);
Living nLiving;
int size=world.getSize();
for(int row=0;row<size;row++)
for(int col=0;col<size;col++)
{
if(this.foxCount.getCounter()>5)
{
nLiving=new Empty(getRow(),getColumn());
}
if(age==LIFE_EXPECTANCY)
{
nLiving=new Empty(getRow(),getColumn());
}
if(world.getCell(row,col).getCount().getCounter()==0)
{
nLiving=new Empty(getRow(),getColumn());
}
age++;
return nLiving;
}

השגיאה מוצגת על השורה :


return nLiving;

מה הבעיה ואיך אני פותר אותה..?

פורסם

יכל להיוצר מצב שבו לא תכנס לאף IF ולכן NLIVING לא יאותחל בשום דרך. אתה צריך לטפל בזה.

פורסם
  • מחבר

תודה אבל עכשיו הופיע לי שגיאה בזמן ריצה (מצורף תמונה)

מה הבעיה וכיצד אני פותר אותה ?

[attachment deleted by admin]

פורסם

יש לך בעיית הגדרה של הפרוייקט בסביבה שלך (כנראה eclipse?) נסה לבדוק את ההגדרות שלו או ליצור אותו מחדש.

פורסם
  • מחבר

אתה יודע אולי איך בודקים את זה ?

שם המחלקה שבו נמצא ה-MAIN יכול להשפיע על זה ? אם כן , האם יש שם קבוע למחלקה ומהו שמה ?

פורסם

לא. תיכנס לתפריט ההרצה באקליפס ותיצור פרופיל הרצה חדש שמכיל את המחלקה הנכונה.

פורסם
  • מחבר

יצרתי פרופיל הרצה חדש וזה עזר ...

איך עושים RANDOM ב-JAVA?איך מגרילים מספר בטווח מסוים?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים