ویرایش: چرا اعضای با دسترسی private از کلاس توسط اشیای دیگر از همان کلاس قابل دسترسی هستند؟

ساخت وبلاگ

آیا این زیر سوال رفتن اصل محصور سازی نیست که اشیا بتوانند به داده های خصوصی همدیگر دسترسی پیدا کنند؟

در واقع آیا این عدم رعایت استفاده از واسط ها (interface) برای دسترسی به داده های خصوصی امنیت شی را خراب نمی کند؟

public class Test { private int data; public void manipulatePrivateData(Test t){ t.data=5; }
}
میشه مثال بزنید. این چیزی که شما میگین اصلا امکانپذیر نیست. هیچ شئی نمی تواند به فیلد های private شئ دیگر دسترسی داشته باشد.
نمی توانم چپ چین کنم، اما مثلا کد زیر را ببینید:
public class Test {
    private int data;
    public void manipulatePrivateData(Test t){
        t.data=5;
    }
}
در این کد اشیا به داده های private همدیگر دسترسی ندارند بلکه به فیلد های private خودش (شئ جاری) دسترسی دارد.
فکر نمی کنم این طور باشد،
 در این کد شی جاری به داده ی خصوصی شی ورودی دست رسی دارد
و در ویدئوی جاواکاپ، دکتر علی اکبری تصریح می کنند که این خصوصی بودن به معنای خصوصی بودن از دید کلاس های دیگر است، نه از دید اشیای دیگر
بله درست میگین. من الان کد رو کپی کردم توی سوال و ویرایش کردم که بهتر معلوم بشه.

- - , .
.

جواب یاب...
ما را در سایت جواب یاب دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان javabyab بازدید : 141 تاريخ : يکشنبه 27 تير 1395 ساعت: 16:57