שאלה בסיסית בJAVA

ice prince

New member
שאלה בסיסית בJAVA

היי,

התחלתי ללמוד לתכנת לבד בשפת JAVA בעזרת ספר ואתר (מצוין) של בחור בשם שי תבור.

אני משתמש בEclipse ואודה לכם אם תוכלו לענות לי על שאלה בסיסית: ראו את קטע הקוד למטה (אני מגדיר מחלקה ואובייקט כמו שניתן לראות) מדוע כאשר אני מריץ את הקוד ללא המילה public (לפני class book) הקומפיילר מריץ אותו אך כאשר אני מוסיף public יש שגיאת הרצה. בסרטון באתר המדריך מראה דוגמה, שבה יש public לפני המחלקה וגם לפני המחלקה שבאה אחר כך. אני מניח שצריך להגדיר עוד איזה משהו כדי שלפני שניהם אוכל להוסיף public אבל לא הצלחתי למצוא מה....תודה מראש על ההתייחסות.

class Book {

public String name;
public int pages;
public double price;

}
public class BookData

{

public static void main(String[] args) {
Book p1 = new Book();
p1.name = "Hobit";
p1.pages = 121;
p1.price = 45.5;
System.out.println(p1.name);
}

}
 

ice prince

New member
קטע הקוד באופן ברור יותר:

class Book {

public String name;
public int pages;
public double price;

}
public class BookData

{

public static void main(String[] args) {
Book p1 = new Book();
p1.name = "Hobit";
p1.pages = 121;
p1.price = 45.5;
System.out.println(p1.name);
}

}
 

ihovav

New member
קודם כל - שי אחלה מורה

דבר שני - למה את ה מגדיר את שני הקלאסים באותו הקובץ? מה שם הקובץ שכרגע יש לך?
 

ice prince

New member
שם הקובץ הוא BookData.java

נראה לי שאני מבין מה אתה אומר לכל Class שהוא public צריך להיות קובץ משלו? אם זה אכן כך אני לא מבין איך טכנית עושים את זה בEclipce.
תודה
 

BravoMan

Active member
נכון, וזה די פשוט:

אתה ניגש לתפריט File, בוחר New ואחר כך Class.
זה נותן לך דרך נוחה להוסיף מחלקות (classes) חדשות לפרויקט שלך.

אגב, למקרה שתהית:
ה-scope - טווח ההכרה של מחלקה כשלא כתוב לפניה public וגם לא private הוא package.
לא יודע אם כבר למדת על חבילות, אבל המשמעות היא שה-Class יוכר ע"י כל הקלאסים האחרים בחבילה, אבל לא מחוצה לה.
public כאמור, יוכר בכל מקום.
 
למעלה