» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
תוכנית לדוגמה
דף ראשי  מתחילים  חבילות (Packages)  פיתוח חבילות משלך  תוכנית לדוגמה גרסה להדפסה

 

תוכנית לדוגמה

 

כעת נתבונן בתוכנית פשוטה המשלבת כל זאת יחד.

 

הערה: להלן חלק מטקסט של הודעה שנתקבלה מקורא בתאריך 19/3/98.
תודתי נתונה לאותו קורא על הפידבק בנוגע לשינויים שהוכנסו ב‑
JVM.
משום שלא הספקתי עדיין להכניס את התיקונים הדרושים, אני מביא את ההודעה לתועלת הקוראים.

=======================

הרשה לי להציג את עצמי. שמי ז'אן-מארק טיסראנד.

 

ברצוני להודיע לך שנתקלתי בבעיה בזמן הרצת הדוגמה המופיעה בשיעור חבילות עם jdk v1.1.5. אינני מצליח להריץ את Package00. ההרצה נכשלה יחד עם ההודעה הבאה:

Package00 class was not found

 

הקדשתי זמן רב לקריאת השיעור שוב, אך זה לא עזר.

 

לאחר זמן, גיליתי את השורות הבאות בתיעוד הנלווה של jdk v.1.1.5:

 

באג במפענח של Java - בגירסאות קודמות של 1.1 JDK, המפענח של Java התיר להפעיל את קובץ המחלקה, הנמצא ב‑/a/b/c.class, מתוך הספרייה /a/b באמצעות הפקודה "java c",
גם אם המחלקה 
c נמצאה בחבילה a.b.* . התנהגות כזו אינה תקינה, והיא תוקנה ב‑1.1.4 JDK. ב‑1.1.4 JDK יש לציין את שם הנתיב המאושר. לדוגמה, על מנת להפעיל את המחלקה a.b.c ב‑/a/b/c.class, ניתן לבצע את הפקודה "java a.b.c" מספריית האֵם של הספרייה /a .

 

לכן, על מנת להריץ את Package00, הפקודה תהיה:

java Combined.Java.Package00

 

את הפקודה הנ"ל יש להכניס כאשר הספרייה הנוכחית נמצאת רמה אחת מעל הספרייה Combined

 

הפקודה עובדת היטב תחת Win95 עם jdk v1.1.5 וגם במערכת Digital Unix עם jdk v1.1.5

 =====================

 

האפליקציה מורכבת משלושה קבצי קוד source נפרדים, אשר ממוקמים בשלוש חבילות נפרדות. יחד הם ממחישים את השימוש בחבילות ובציוני import, עם תוכנית javac,
כדי לבנות אפליקציית
Java עצמאית, המורכבת ממחלקות הנמצאות בשלוש חבילות שונות.

 

(אם ברצונך להיווכח שהן אכן נמצאות בחבילות שונות, הפוֹך אחת מהמחלקות, שאליה פונה המחלקה השולטת, ל‑non-public, ונסה להדר את התוכנית.)

 

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

 

המחלקה השולטת Package00 מאוחסנת בחבילה Combined.Java.

המחלקה Package01 מאוחסנת בחבילה Combined.Java.p1.

המחלקה Package02 מאוחסנת בחבילה Combined.Java.p2.

 

הקוד במתודת ()main של המחלקה השולטת יוצר אובייקטים של שתי המחלקות האחרות,
הנמצאות בחבילות אחרות. הקוד בבנאים של שתי מחלקות אלו מכריז על כך שהאובייקטים נבנים.

 

שתי המחלקות שאנו יוצרים הן public, אחרת לא ניתן היה ליצור מהן אובייקט מחוץ לחבילה,
שבה כל אחת מהן נמצאת.

 

התוכנית נבדקה תוך שימוש ב‑1.1.3 JDK תחת Win95 .

 

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

 

ממחיש את השימוש בחבילות ובציוני  import על מנת לבנות אפליקציה, המורכבת ממחלקות הנמצאות בשלוש חבילות שונות.

 

 

/*File Package00.java Copyright 1997, R.G.Baldwin
Illustrates use  of package and import directives to 
build an application consisting of classes in three
separate packages.

The output from running the program follows:
  
Starting Package00
Instantiate obj of public classes in different packages
Constructing Package01 object in folder p1
Constructing Package02 object in folder p2
Back in main of Package00  
**********************************************************/
package Combined.Java; //package directive

//Two import directives
import Combined.Java.p1.Package01;//specific form
import Combined.Java.p2.*; //wildcard form

class Package00{
  public static void main(String[] args){ //main method
    System.out.println("Starting Package00");
    
    System.out.println("Instantiate obj of public " +
                         "classes in different packages");
    new Package01();//Instantiate objects of two classes
    new Package02();// in different packages.

    System.out.println("Back in main of Package00");
    
  }//end main method
}//End Package00 class definition.

 

/*File Package01.java Copyright 1997, R.G.Baldwin
See discussion in file Package00.java
**********************************************************/
package Combined.Java.p1;
public class Package01 {
  public Package01(){//constructor
    System.out.println(
             "Constructing Package01 object in folder p1");
  }//end constructor
}//End Package01 class definition.

 

/*File Package02.java Copyright 1997, R.G.Baldwin
See discussion in file Package00.java
**********************************************************/
package Combined.Java.p2;
public class Package02 {
  public Package02(){//constructor
    System.out.println(
             "Constructing Package02 object in folder p2");
  }//end constructor
}//End Package02 class definition.

 

 05-01-04 / 18:03  נוצר ע"י רונית רייכמן  בתאריך 
 פיתוח חבילות משלך - הקודםהבא - תֶכֶן מונחה-עצמים - בעיית בד הציור 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 2