פורסם 2014 בספטמבר 2511 שנים שלום לכולם,התחלתי לכתוב תוכנה שתעזור לי לבדוק כל מיני שיטות במשחקי קלפים יצירתי מחלקה של חפיסת קלפים הקונסטרוקטור נראה כך: public class DeckOfCards { char[] Cards; int nod; public DeckOfCards(int nodc) //יצירת חפיסה { int n=1; this.nod=nodc; this.Cards=new char[nodc*52]; while(n<4*nodc){ this.Cards[1+n*13-1]='A'; this.Cards[2+n*13-1]='2'; this.Cards[3+n*13-1]='3'; this.Cards[4+n*13-1]='4'; this.Cards[5+n*13-1]='5'; this.Cards[6+n*13-1]='6'; this.Cards[7+n*13-1]='7'; this.Cards[8+n*13-1]='8'; this.Cards[9+n*13-1]='9'; this.Cards[10+n*13-1]='T'; this.Cards[11+n*13-1]='J'; this.Cards[12+n*13-1]='Q'; this.Cards[13+n*13-1]='K'; n++; } }וניסיתי ליצור אותו כך: public static void main (String[]args) { Scanner in=new Scanner(System.in); DeckOfCards doc; int nod; System.out.println("הכנס מספר חפיסות"); nod=in.nextInt(); doc=new DeckOfCards(nod); }אבל הECLIPSE רושם לי:No enclosing instance of type BlackJack is accessible. Must qualify the allocation with an enclosing instance of type BlackJack (e.g. x.new A() where x is an instance of BlackJack).BlackJack זה השם של כל הפרוייקט.למישהו יש מושג מה לעשות? נערך 2014 בספטמבר 2511 שנים על-ידי NU96
פורסם 2014 בספטמבר 2511 שנים להבא יעזור אם תכניס את כל הקוד.בשתי מילים: תוסיף את המילה static בהצהרה על המחלקה DeckOfCards (דהיינו public static class DeckOfCards במקום public class DeckOfCards) או לחילופין תעביר את כל המחלקה לקובץ נפרד בשם DeckOfCards.java.הסבר:לפי השגיאה, הגדרת את המחלקה DeckOfCards כמחלקה פנימית של המחלקה BlackJack. בג'אווה, מחלקה פנימית (שאינה מוגדרת כ-static) משוייכת למחלקה האב, וכל מופע שלה חייב להיות משויך למופע ספציפי של מחלקת האב. במקרה שלך ניסית ליצור מופע של DeckOfCards בלי קישור לשום מופע של BlackJack (משום שיצרת אותה מתוך פונקציה סטטית) ולכן הקומפיילר צעק על שגיאה. אם המחלקה הפנימית מוגדרת כ-static אז אין בעיה ותמיד אפשר ליצור מופע של המחלקה.אם כל זה לא אומר לך כלום אז לא משנה, תלמד את זה כשתגיע לנושא של מחלקות פנימיות.
פורסם 2014 בספטמבר 2511 שנים מחבר קודם כל תודה. דבר שני זה מובן לי חצי כוח חלק מהמושגים מוכרים לי וחלק לא אם יש לך קישור לאתר שמסביר את זה אני אשמח
פורסם 2014 בספטמבר 2511 שנים אם אתה רק מתחיל ללמוד ג'אווה, אז כמו שאמרתי - זה משהו שתגיע אליו כשתלמד על מחלקות פנימיות (inner class או nested class). אם אתה רוצה ללמוד על זה אתה יכול פשוט לחפש בגוגל "ג'אווה מחלקה פנימית" או "java inner class" ותמצא הרבה הסברים.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.