אובייקטים וג'אווה - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

אובייקטים וג'אווה


gtabak_37

Recommended Posts

שאלה של צעירים

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

השאלה שלי היא- איך אני מקשר בין התוכנית הראשית לאובייקט?

תודה מראש

גל

קישור לתוכן
שתף באתרים אחרים

מצטער לא חשבתי שצריך את הקוד

האובייקט, שנשמר בקובץ אחד.

public class Game
{
private String name;
private static String genre;
private int age;
public Game (String name, int age)
{
this.name=name;
this.age=age;
this.genre="action";
}
public Game (Game g1)
{
this.name=g1.name;
this.age=g1.age;
this.genre=g1.genre;
}
public String getName()
{
return this.name;
}
public String getGenre()
{
return this.genre;
}
public int getAge()
{
return this.age;
}
public void setGenre(String genre)
{
this.genre=genre;
}
public void setName(String name)
{
this.name=name;
}
public void setAge(int age)
{
this.age=age;
}
}

התוכנית הראשית, שנשמרת בקובץ אחר

import java.util.*;
class GameStore
{
/** טענת כניסה:הפעולה מקבל מחרוזת המהווה שם של משחק ומערך המהווה חנות משחקים**/
/**טענת יציאה:הפעולה מחזירה האם המשחק נמצא במלאי או לא**/
static Scanner reader=new Scanner(System.in);
static final int N=5;
static boolean check(String gName,Game[] a)
{
for (i=0;i<N;i++)
if (gName.equals(a[i].getName())
return true;
return false;
}
/**טענת כניסה: הפעולה מקבלת מחרוזת המהווה שם משחק, מספר המהווה גיל , ומערך המהווה חנות משחקים**/
/**טענת יציאה: הפעולה מחזירה האם המשחק מתאים לגיל**/
static boolean check1(String gName,int gil1,Game[] a)
{
for (i=0;i<N;i++)
if (gName.equals(a[i].getName())
if(gil1==a[i].getAge())
return true;
return false;
}
public static void main(String[] args)
{
Game[] gs=new Game[N];
Game gs[0]=new Game ("Call Of Duty",16);
Game gs[1]=new Game ("Medal Of Honour",18);
Game gs[2]=new Game (gs[2]);
Game gs[3]=new Game (gs[1]);
Game gs[4]=new Game ("Counter Strike",17);
System.out.println ("Would you like to check if your game is in the stock? enter 1 if yes or 0 if no");
int x=reader.nextInt();
if (x==1)
{
System.out.println("Enter the name of the game");
String s=reader.next();
if (check(s,gs))
System.out.println("The game is in stock");
else
System.out.println("The game is missing");
}
else
{
System.out.println ("Would you like to check if your game is available for your age? enter 1 if yes or 0 if you want to exit");
x=reader.nextInt();
if (x==1)
{
System.out.println("Enter the name of your game");
String s1=reader.next();
System.out.println("Enter you age");
int gil=reader.nextInt();
if (check1(s1,gil,gs))
System.out.println("The game is available for your age");
else
System.out.println("The game is not available for you age");
}
else
{
System.out.println("The program is over, press F5 to restart");
}
}
}
}

אל תצחקו זאת רק עבודה שהמורה שלי ביקש ממני להגיש ;D

קישור לתוכן
שתף באתרים אחרים

בזמן הקומפילציה, האובייקט עובר אותה בלי בעיות. השגיאות בתוכנית הראשית הן:

12 errors found:
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 11]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:11: ')' expected
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 20]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:20: ')' expected
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 28]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:28: ']' expected
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 28]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:28: illegal start of expression
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 29]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:29: ']' expected
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 29]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:29: illegal start of expression
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 30]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:30: ']' expected
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 30]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:30: illegal start of expression
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 31]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:31: ']' expected
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 31]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:31: illegal start of expression
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 32]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:32: ']' expected
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 32]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:32: illegal start of expression

בקיצור, כל הפקודות שקשורות לאובייקט.

כל הקבצים הקשורים לשתי המחלקות יושבים באותה תיקייה. (שישה קבצים בסך הכל- 3 לתוכנית הראשית ו-3 לאובייקט עם סיומות java .class .java~)

קישור לתוכן
שתף באתרים אחרים

אם היית קורא את הודעת השגיאה היית מבין מה הבעיה... חסרים לך סוגריים.

דרך אגב, כדאי מאוד לעטוף כל בלוק של for/if בסוגריים מסולסלים, גם אם הוא מכיל רק שורה אחת. זה הופך את הקוד להרבה יותר קריא ופחות error prone.

קישור לתוכן
שתף באתרים אחרים

תודה רבה, גם על הטיפ :)

רק תיקנתי חלק מהסוגריים, אבל יש לי בכמה שורות נוספות עוד שגיאה

File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 38]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:38: ']' expected
File: C:\Users\Gal\Desktop\New folder\GameStore.java [line: 38]
Error: C:\Users\Gal\Desktop\New folder\GameStore.java:38: illegal start of expression

בשורה

  Game gs[0]=new Game ("Call Of Duty",16);

לדוגמה

אני לא מבין איפה חסרות סוגריים מרובעות, ומה illegal start of expression דורש ממני לתקן

עדכון: מצאתי את הבעיה, תודה רבה שניצל- עזרת לי מאוד

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...