- חבילת Java
- דוגמה לחבילה
- גישה לחבילה
- חבילת משנה
- שולח קובץ כיתה לספרייה אחרת
- -מתג classpath
- 4 דרכים לטעינת קובץ הכיתה או קובץ ה-jar
- איך לשים שני כיתות ציבוריות בחבילה
- יבוא סטטי
- שיעור חבילה
א חבילת java היא קבוצה של סוגים דומים של מחלקות, ממשקים ותתי-חבילות.
ניתן לסווג חבילה ב-java בשתי צורות, חבילה מובנית וחבילה מוגדרת על ידי משתמש.
ישנן חבילות מובנות רבות כגון java, lang, awt, javax, swing, net, io, util, sql וכו'.
כאן, יהיה לנו למידה מפורטת של יצירה ושימוש בחבילות מוגדרות על ידי משתמש.
מיון רשימת מערך java
יתרון בחבילת Java
1) חבילת Java משמשת לסווג את המחלקות והממשקים כך שניתן יהיה לתחזק אותם בקלות.
2) חבילת Java מספקת הגנת גישה.
3) חבילת Java מסירה התנגשות שמות.
דוגמה פשוטה של חבילת Java
ה מילת מפתח בחבילה משמש ליצירת חבילה ב-java.
//save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } }
כיצד להרכיב חבילת ג'אווה
אם אינך משתמש ב-IDE כלשהו, עליך לעקוב אחר ה- תחביר ניתן להלן:
javac -d directory javafilename
ל דוגמא
javac -d . Simple.java
המתג -d מציין את היעד שבו לשים את קובץ המחלקה שנוצר. אתה יכול להשתמש בכל שם ספרייה כמו /home (במקרה של לינוקס), d:/abc (במקרה של חלונות) וכו'. אם אתה רוצה לשמור את החבילה באותה ספרייה, אתה יכול להשתמש ב. (נְקוּדָה).
כיצד להפעיל תוכנית חבילת ג'אווה
אתה צריך להשתמש בשם מלא, למשל. mypack.Simple וכו' כדי להפעיל את הכיתה.
להידור: javac -d . Simple.java |
לרוץ: java mypack.Simple |
Output:Welcome to package
ה-d הוא מתג שאומר למהדר היכן לשים את קובץ המחלקה, כלומר הוא מייצג את היעד. ה . מייצג את התיקיה הנוכחית. |
כיצד לגשת לחבילה מחבילה אחרת?
ישנן שלוש דרכים לגשת לחבילה מחוץ לחבילה.
- חבילת ייבוא.*;
- import package.classname;
- שם מלא.
1) באמצעות שם חבילה.*
אם אתה משתמש בחבילה.* אז כל המחלקות והממשקים של החבילה הזו יהיו נגישים אך לא תת-חבילות.
מילת המפתח ייבוא משמשת להנגשת המחלקות והממשק של חבילה אחרת לחבילה הנוכחית.
דוגמה לחבילה שמייבאת את שם החבילה.*
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } }
Output:Hello
2) שימוש בשם packagename.classname
אם אתה מייבא package.classname אז רק המחלקה המוצהרת של החבילה הזו תהיה נגישה.
דוגמה לחבילה לפי import package.classname
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.A; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } }
Output:Hello
3) שימוש בשם מלא
אם אתה משתמש בשם מלא, רק המחלקה המוצהרת של החבילה הזו תהיה נגישה. עכשיו אין צורך לייבא. אבל אתה צריך להשתמש בשם מלא בכל פעם שאתה ניגש לכיתה או לממשק.
הוא משמש בדרך כלל כאשר לשתי חבילות יש שם מחלקה זהה, למשל. חבילות java.util ו-java.sql מכילות מחלקה Date.
דוגמה לחבילה לפי שם מלא ביבוא
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; class B{ public static void main(String args[]){ pack.A obj = new pack.A();//using fully qualified name obj.msg(); } }
Output:Hello
הערה: אם אתה מייבא חבילה, חבילות משנה לא ייובאו.
אם אתה מייבא חבילה, כל המחלקות והממשק של אותה חבילה ייובאו למעט המחלקות והממשקים של חבילות המשנה. לפיכך, עליך לייבא גם את חבילת המשנה.
הערה: הרצף של התוכנית חייב להיות חבילה ואז ייבוא ואז מחלקה.
חבילת משנה בג'אווה
החבילה בתוך החבילה נקראת חבילת משנה . זה צריך להיווצר כדי לסווג את החבילה עוד יותר .
ניקח דוגמה, Sun Microsystem מצאה חבילה בשם java המכילה מחלקות רבות כמו System, String, Reader, Writer, Socket וכו'. מחלקות אלו מייצגות קבוצה מסוימת, למשל. שיעורי Reader ו-Writer מיועדים לתפעול קלט/פלט, שיעורי Socket ו-ServerSocket מיועדים לרשת וכו' וכן הלאה. אז Sun חילקה את חבילת ה-Java לקטגוריות משנה כמו lang, net, io וכו' והכניסה את המחלקות הקשורות ל-Input/Output בחבילת io, מחלקות Server ו-ServerSocket בחבילות net וכן הלאה.
הסטנדרט של הגדרת החבילה הוא domain.company.package למשל. com.javatpoint.bean או org.sssit.dao.
דוגמה לחבילת משנה
package com.javatpoint.core; class Simple{ public static void main(String args[]){ System.out.println('Hello subpackage'); } }
להידור: javac -d . Simple.java |
לרוץ: java com.javatpoint.core.Simple |
Output:Hello subpackage
כיצד לשלוח את קובץ הכיתה לספרייה או כונן אחר?
יש תרחיש, אני רוצה לשים את קובץ הכיתה של קובץ המקור A.java בתיקייה classes של c: drive. לדוגמה:
//save as Simple.java package mypack; public class Simple{ public static void main(String args[]){ System.out.println('Welcome to package'); } }
להידור:
e:sources> javac -d c:classes Simple.java
לרוץ:
כדי להפעיל תוכנית זו מתוך ספריית e:source, עליך להגדיר classpath של הספרייה שבה נמצא קובץ הכיתה. |
e:sources> set classpath=c:classes;.; |
e:sources> java mypack.Simple |
דרך נוספת להפעיל תוכנית זו על ידי מתג -classpath של Java:
ניתן להשתמש בבורר -classpath עם הכלי javac ו-java.
כדי להפעיל תוכנית זו מתוך ספריית e:source, אתה יכול להשתמש ב-classpath switch של java שאומר היכן לחפש קובץ class. לדוגמה:
Java cast char למחרוזת
e:sources> java -classpath c:classes mypack.Simple
Output:Welcome to package
דרכים לטעינת קבצי הכיתה או קובצי ה-jar
ישנן שתי דרכים לטעון את קבצי הכיתה באופן זמני וקבוע. |
- זמני
- על ידי הגדרת ה-classpath בשורת הפקודה
- לפי -classpath switch
- קבוע
- על ידי הגדרת ה-classpath במשתני הסביבה
- על ידי יצירת קובץ ה-jar, המכיל את כל קבצי הכיתה, והעתקת קובץ ה-jar בתיקייה jre/lib/ext.
כלל: יכולה להיות רק מחלקה ציבורית אחת בקובץ מקור של java ויש לשמור אותה בשם המחלקה הציבורית.
//save as C.java otherwise Compilte Time Error class A{} class B{} public class C{}
איך לשים שני כיתות ציבוריות בחבילה?
אם אתה רוצה לשים שתי מחלקות ציבוריות בחבילה, יש שני קובצי מקור של java המכילים מחלקה ציבורית אחת, אך שמור את שם החבילה זהה. לדוגמה: |
//save as A.java package javatpoint; public class A{}
//save as B.java package javatpoint; public class B{}
מהי תכונת הייבוא הסטטי של Java5?
לחץ על תכונת ייבוא סטטי של Java5. |
מה לגבי כיתת חבילה?
לחץ לשיעור חבילה |