שאלה ב JAVA : illigal start of expression - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שאלה ב JAVA : illigal start of expression


neogod

Recommended Posts

כן היא נמצאת בתוך MAIN!!!

לפי מה שמצאתי בגוגל אני אמור לפתוח סוגריים מסולסלים וישר לסגור {} ואכן זה פתר את הבעיה, אך אין לי מושג למה זה ?

הנה התוכנית שרשמתי עד כה :


import java.util.Scanner;
public class Equation
{
public static void main (String [] args)
{}
private int _numerator , _denominator;
Scanner sinp = new Scanner( System.in);
public String toString ()
{
String s= new String();
s= "numerator = " + _numerator +"\t denominator =" + _denominator;
return s;
}
public Rational ()
public Rational (int numer , int denom){
System.out.println ("enter 2 numbers");
numer = System.nextInt ();
denom = System.nextInt ();
//_numerator= numer;
// _denominator = denom;
Rational rational2 =new Rational (numer,denom);
return rational2
}

}

לאחר שאין יותר את השגיאה של ILLIGAL START EXPRESSION מופיעה לי שגיאה חדשה "invalid method declaration ;return type required"

בשורות של public Rational ()

public Rational (int numer , int denom)

*** כמובן שהתכוונתי שמופיעה אותה שגיאה בשתי השורות הנ"ל

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

1) main זו פונקציה סטטית. זו נקודת הכניסה לתוכנית שלך. הסוגריים המסולסלים אומרים איפה הMAIN מתחיל ואיפה הוא נגמר. מקודם לא סגרת את הMAIN שלך, ולכן קיבלת כל מיני שגיאות שאומרות שאתה כותב דברים במקום שהם לא צריכים להיות כתובים(המילות השמורות PUBLIC וPRIVATE, כמו פונקציות אחרות לא צריכות להיות מוגדרות בתוך פונקציה, אלא בתוך מחלקה).

2) כשאתה רושם public Rational, אתה בעצם מגדיר CTOR למחלקה בשם Rational. הCTOR של המחלקה חייב להיות בתוך המחלקה, ובקוד הנוכחי אתה רשמת את הCTOR בתוך מחלקה אחרת.

אם היית מגדיר את הערך המוחזר, הפונקציה הזו לא הייתה מוגדרת כCTOR(לדוגמא public int Rational). אבל שים לב שזה לא יפגע בלוגיקה של התוכנית שלך(רמז - אתה לא צריך לעשות את זה).

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

קודם כל תודה על ההסבר!!! :xyxthumbs:

מזה CTOR ?!?!?!?!

ולא הבנתי מה אני צריך להגדיר בפונקציה?!

לפי השגיאה אני אמור לרשום את הטיפוס של ה RETURN ? לפי מה שהבנתי אני אמור להחזיר אובייקט, לא? אם כן איזה טיפוס אני אמור להגדי לו ?!?!?!

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

CTOR = CONSTRUCTOR = פונקציית הבנאי(היא נקראת כאשר אתה עושה new, ודואגת לתת ערכים תחיליים לממברים של האובייקט).

הפונקצייה הזו כנראה הועתקה ממקום אחר בו שם המחלקה הוא Rational. תנסה לשנות את השם Equation לשם Rational.

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

אכן המחלקה Rational "הוכנסה" ממחלקה חיצונית בשם Rational שאינ אמור להשתמש בשיטות שלה לתרגיל הזה!!!

ואינ לא יכול לשנות את השם של המחלקה הנוכחית מכיוון שזאת הדרישה של הקורס ששם המחלקה ושם הקובץ יהיו זהים :(

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

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

אפשר בבקשה פירוט איך אני אמור לעשתו את זה ?

אני אמור להכניס 3 מספרים רציונליים ,אני אני עושה את זה ואיך אני משתמש בהם אחרי שהם נקלטו ?

עלה רעיון בראשי, תגיד לי אם הוא בר ביצוע:

להגדיר שני משתנים שיקבלו לתוכם נתונים (לדוגמה x=2, y=4 )

ואז לבנות אובייקט חדש על ידי CTOR

Rational ratioanl2 = new Rational (x,y)

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

אבל במקרה הזה אני יכול חהזין רק מספרים קבועיים בבנאי!

ואם אני רוצה כל הזמן מספרים שונים אני אז אני צריך משתנים לא ?

ועוד שאלה, אחרי שקלטתי מספרים ל3 אובייקטים איך אני יכול לבצע פעולות חשבוניות על הנתונים , איך אני מתשמש באובייקטים ?

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

אבל במקרה הזה אני יכול חהזין רק מספרים קבועיים בבנאי!

ואם אני רוצה כל הזמן מספרים שונים אני אז אני צריך משתנים לא ?

ועוד שאלה, אחרי שקלטתי מספרים ל3 אובייקטים איך אני יכול לבצע פעולות חשבוניות על הנתונים , איך אני מתשמש באובייקטים ?

סלח לי על ההתערבותת אבל נשמע לי שלא הבנת את הבסיס של JAVA וזה קצת מקשה עליך. המלצה שלי : תחזור על הבסיס ותראה שכל השאלות שלך נורא פשוטות.

בכל מקרה, אני ממליץ לך להגדיר 2 פרמטרים שיחזיקו את המשתנים שלך וליצור להם מתודות GET ו-SET שיאפשרו לך לשנות אותם, לדוגמא : getNum1() , setNum1(int num1)

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

אני דיי הבנתי את הבסיס, אבל אינ לא מצליח ליישם את זה !!! כל הזמן צצות לי שגיאות חדשות שאני לא מבין מאיפה הן נובעות!!!

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

ועכשיו אני צריך להשתמש בשיטות של פעולות מתמטיות מהמחלקה RATIONAL , איך אני עושה 4-*obj1*obj2 ?!?!

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

ארכיון

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

×
  • צור חדש...