ב-Java, פּוּמְבֵּי ו פְּרָטִי הם מילות מפתח שידועים בתור an משנה גישה אוֹ מפרט . זה מגביל את ההיקף או הנגישות של מחלקה, בַּנַאִי , משתנים , שיטה s, וחברי נתונים. זה תלוי באיזה זה מיושם. Java מספקת את ארבעת הסוגים של תקני גישה: ציבורי, פרטי, מוגן , ו בְּרִירַת מֶחדָל . אבל בחלק זה, נדון רק בשניים ציבוריים ופרטיים, וכן נדון בזה ההבדל בין מפרט גישה ציבורית לפרטית עם דוגמה.
משנה גישה שולטים אם מחלקות אחרות יכולות להשתמש בשדה מסוים או להפעיל שיטה מסוימת. Java מספק שתי רמות של בקרת גישה:
הטבלה הבאה מציגה את רמת הגישה לחברים המותרת על ידי השינויים הציבוריים והפרטיים.
עיצוב דפוסי java
עדיין לא ברור מה ההבדלים בין השניים? הרשו לי להראות לכם דמות שמדגימה כיצד רמות הגישה משפיעות על הנראות. האיור הבא מציג את שתי החבילות p1 ו p2 . כל חבילה מכילה שתי מחלקות הדגמה1 ו הדגמה 2 (בחבילה p1), ו הדגמה 3 ו הדגמה 4 (בחבילה p2).
הטבלה הבאה מתארת את הנראות של השיעורים אם נהפוך את השיעורים לציבוריים ולפרטיים אחד אחד. באיור שלמעלה ה-Demo1 הוא המחלקה היחידה הנראית עבור כל משנה גישה.
בואו נדון בזה בפירוט.
משנה גישה לציבור
ניתן לציין זאת באמצעות ה פּוּמְבֵּי מילת מפתח. היקפו או הנגישות שלו הם הרחב ביותר מבין שאר מפרטי הגישה. ניתן לגשת למשתנים, המחלקות והשיטות שהוכרזו כציבוריים מכל מקום בתוכנית. הוא אינו מטיל הגבלות על היקף חברי הנתונים הציבוריים. אם נכריז על שיטות ומחלקות כפומביות, הן גם מפרות את העיקרון של כימוס . אנחנו יכולים להשתמש בו גם עם הכיתות ברמה העליונה.
בואו נשתמש במפרט הגישה הפרטית ב-a תוכנית Java להבנה טובה יותר.
Demo1.java
dateformat.format java
package p1; public class Demo1 { public void show() { System.out.println('Javatpoint'); } }
Demo2.java
package p2; import p1.*; class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); obj.show(); } }
תְפוּקָה
urfi javed
Javatpoint
משנה גישה פרטית
זה ההפך מהשינוי הציבורי. ניתן לציין זאת באמצעות ה פְּרָטִי מילת מפתח ואחריה שם מחלקה (מוחל רק על מחלקות מקוננות) או שם שיטה או חבר נתונים. איננו יכולים להשתמש במפרט הגישה הפרטית עם המחלקות ברמה העליונה או ממשקים . ניתן לגשת למשתנים, השיטות והמחלקות שהוכרזו כפרטיים רק במחלקה שבה הם מוצהרים או על ידי ירושה של מחלקות האב. זהו מפרט הגישה המוגבל ביותר ב-Java. זוהי צורת הגבהים של אנקפסולציה.
- אנחנו לא יכולים לעקוף השיטות המוכרזות כפרטיות.
- אם אנו משתמשים ב-private modifier עם הקונסטרוקטור, אנו נמנעים ממנו מסיווג משנה.
- זה מסתיר את המחלקות משאר המחלקות בתוך אותו חֲבִילָה .
בואו נשתמש במפרט הגישה הפרטית בתוכנית Java להבנה טובה יותר.
בדוגמה הבאה, הכרזנו על שתי מחלקות: Demo1 ו-Demo2. במחלקה Demo1, הגדרנו שיטה הופעה() כפרטי. המחלקה Demo2 מכילה את השיטה main() שבה יצרנו אובייקט של המחלקה Demo1. לאחר מכן, אנו מנסים לגשת לשיטה הפרטית של המחלקה Demo1 מהכיתה Demo2, זה לא אפשרי. אבל עדיין, נפעיל את התוכנית כדי לראות איזו שגיאה היא מציגה.
class Demo1 { //defining method as private private void show() { System.out.println('Javatpoint'); } } public class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); //trying to access private method of the class Demo1 obj.show(); } }
כאשר אנו מבצעים את התוכנית לעיל, היא מציגה את השגיאה הבאה:
ההבדל בין מפרט גישה ציבורית לפרטית ב-Java
ההבדל העיקרי בין מתקנים ציבוריים ופרטיים הוא הנראות שלו. Java מקטגת את הנראות של חברי הכיתה באופן הבא:
- כיתות משנה באותה חבילה
- לא תת-מחלקות באותה חבילה
- כיתות משנה בחבילות שונות
- מחלקות לא באותה חבילה ולא תת מחלקות
באיזה מהם עלינו להשתמש?
עלינו להשתמש ב-Public Access Modifier אם ברצוננו להפוך את השיטה או המאפיין לגלויים מכל מקום, מחלקות אחרות ומופעים של האובייקט. השתמש במשנה הגישה הפרטית אם ברצונך להפוך את השיטה או המאפיין לגלוי במחלקה משלו בלבד. הימנע משדות ציבוריים למעט קבועים.