জাভাতে, প্রাইভেট ভেরিয়েবলগুলি পুরো ক্লাসে দৃশ্যমান। স্থির পদ্ধতি এবং একই শ্রেণীর অন্যান্য দৃষ্টান্ত থেকে এগুলি অ্যাক্সেস করা যায়।
এটি উদাহরণস্বরূপ, কারখানা পদ্ধতিতে কার্যকর । একটি ফ্যাক্টরি পদ্ধতি সাধারণত কোনও অবজেক্টের সূচনা হয় যা এত জটিল যে আপনি এগুলি অ্যাপ্লিকেশন কোডটিতে রেখে যেতে চান না। শুরু করার জন্য, কারখানার পদ্ধতিতে প্রায়শই আপনি প্রকাশ করতে চান না এমন শ্রেণি-ইন্টার্নালগুলির অ্যাক্সেসের প্রয়োজন হয়। ব্যক্তিগত ভেরিয়েবলগুলি অ্যাক্সেস করতে সক্ষম হওয়া আপনার জীবনকে আরও সহজ করে তোলে।
যাইহোক, আপনি যখন কোনও শ্রেণীর প্রয়োগের বিবরণ এমনকি স্থিতিশীল পদ্ধতিগুলি থেকে বা class শ্রেণীর অন্যান্য উদাহরণ থেকে গোপন করতে চান, আপনি ব্যক্তিগত শ্রেণীর ডেটা প্যাটার্নটি অনুসরণ করতে পারেন । কোনও শ্রেণীর সমস্ত প্রাইভেট ভেরিয়েবল একটি বেসরকারী অভ্যন্তর শ্রেণিতে রাখুন এবং যে কোনও গেটর বা সেটটারকে সেই অভ্যন্তর শ্রেণীর গেটার এবং সেটটারগুলিকে অর্পণ করুন।
আরেকটি বিকল্প হ'ল ক্লাসের জন্য একটি ইন্টারফেস সংজ্ঞায়িত করা যা ক্লাসের সমস্ত পাবলিক পদ্ধতি ঘোষণা করে এবং তারপরে কেবল সেই ইন্টারফেসের অধীনে ক্লাসটি যেখানেই সম্ভব સંદર્ભ করা যায়। ইন্টারফেস-প্রকারের একটি উল্লেখ সরাসরি ইন্টারফেসে ঘোষিত না এমন কিছু অ্যাক্সেসের জন্য ব্যবহার করা যাবে না যেখানে তা অবশ্যই গুরুত্বপূর্ণ (প্রতিচ্ছবি ছাড়াও)। যখন আপনি কোনও অবজেক্ট-ভিত্তিক প্রোগ্রামিং ভাষা ব্যবহার করেন যার কোনও ইন্টারফেস নেই (উদাহরণস্বরূপ সি ++,) তখন সেগুলি একটি বিমূর্ত বেস-শ্রেণীর সাথে সিমুলেটেড করা যায় যা প্রকৃত শ্রেণীর দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত।
interface ITest {
public int getA();
}
class Test implements ITest {
private int a = 5;
public int getA() { return a; } // implementation of method declared in interface
public static void main(){
ITest t = new Test();
t.a = 1; // syntax error: Interface ITest has no "a"
System.out.println(t.getA()); // calls Test.getA, visible because ITest declares it
}
}
equals
অন্য উদাহরণের ব্যক্তিগত ক্ষেত্রগুলি পরীক্ষা করতে হবে। (মন্তব্য হিসাবে পোস্ট করা, এটি সংক্ষিপ্ত, এবং এই পদ্ধতির