আপডেট: নীচে আসল উত্তরটি পুরোপুরি প্রশ্নটি না বুঝে লেখা হয়েছিল, এবং সুতরাং সরাসরি প্রশ্নের সমাধান করে না :)
তবুও, final
কীওয়ার্ডের সাধারণ ব্যবহার বুঝতে আগ্রহীদের জন্য এটি অবশ্যই তথ্যমূলক হতে হবে ।
প্রশ্নের হিসাবে, আমি নীচে থেকে আমার নিজস্ব মন্তব্য উদ্ধৃত করতে চাই।
আমি বিশ্বাস করি যে আপনি কোনও যুক্তির চূড়ান্ততা বাস্তবায়িত করতে বাধ্য হবেন না এটি সিদ্ধান্ত গ্রহণে আপনাকে ছেড়ে দিতে হবে তা চূড়ান্ত হওয়া উচিত কিনা তা আপনার নিজের বাস্তবায়নের ক্ষেত্রে নয় in
তবে হ্যাঁ, এটি একেবারেই অদ্ভুত বলে মনে হচ্ছে final
আপনি এটি ইন্টারফেসে ঘোষণা করতে পারেন , তবে বাস্তবায়নে এটি চূড়ান্ত নয় । এটি যদি আরও বোঝা হত তবে:
ক। final
ইন্টারফেস (বিমূর্ত) পদ্ধতির আর্গুমেন্টগুলির জন্য কীওয়ার্ডটির অনুমতি ছিল না (তবে আপনি এটি প্রয়োগে ব্যবহার করতে পারেন), বা
খ। final
ইন্টারফেস হিসাবে একটি যুক্তি ঘোষণা final
এটি বাস্তবায়নে ঘোষিত করতে বাধ্য করবে (তবে চূড়ান্তভাবে চূড়ান্ত নয়) not
কোনও পদ্ধতির স্বাক্ষরটিতে final
প্যারামিটার থাকতে পারে তার দুটি কারণ সম্পর্কে আমি ভাবতে পারি : মটরশুটি এবং অবজেক্টস ( আসলে, তারা উভয়ই একই কারণ, তবে কিছুটা পৃথক প্রসঙ্গ। )
অবজেক্টস:
public static void main(String[] args) {
StringBuilder cookingPot = new StringBuilder("Water ");
addVegetables(cookingPot);
addChicken(cookingPot);
System.out.println(cookingPot.toString());
// ^--- OUTPUT IS: Water Carrot Broccoli Chicken ChickenBroth
// We forgot to add cauliflower. It went into the wrong pot.
}
private static void addVegetables(StringBuilder cookingPot) {
cookingPot.append("Carrot ");
cookingPot.append("Broccoli ");
cookingPot = new StringBuilder(cookingPot.toString());
// ^--- Assignment allowed...
cookingPot.append("Cauliflower ");
}
private static void addChicken(final StringBuilder cookingPot) {
cookingPot.append("Chicken ");
//cookingPot = new StringBuilder(cookingPot.toString());
// ^---- COMPILATION ERROR! It is final.
cookingPot.append("ChickenBroth ");
}
final
শব্দ নিশ্চিত যে আমরা ঘটনাক্রমে একটি নতুন তৈরি করতে হবে স্থানীয় একটি সংকলন ত্রুটি দেখিয়ে রান্নার পাত্র যখন আমরা তা করতে চেষ্টা করে। এটি নিশ্চিত করেছে যে মুরগির ঝোলটি আমাদের আসল রান্নার পটে যুক্ত হয়েছে যা addChicken
পদ্ধতিটি পেয়েছে। addVegetables
এটির তুলনা করুন যেখানে আমরা ফুলকপি হারিয়েছি কারণ এটি যুক্ত হয়েছে যে মূল পাত্রের পরিবর্তে একটি নতুন স্থানীয় রান্নার পাত্রে এটি যুক্ত হয়েছে।
মটরশুটি:
এটি অবজেক্টগুলির মতো একই ধারণা (উপরে দেখানো হয়েছে) । মটরশুটি মূলত Object
জাভাতে। যাইহোক, মটরশুটি (জাভাবিয়ান) সম্পর্কিত তথ্যগুলির একটি সংজ্ঞায়িত সংগ্রহের চারপাশে সঞ্চয় এবং পাস করার একটি সুবিধাজনক উপায় হিসাবে বিভিন্ন অ্যাপ্লিকেশনে ব্যবহৃত হয়। ঠিক যেমন addVegetables
একটি নতুন রান্নার পাত্র তৈরি করে রান্না করা প্রক্রিয়া জগাখিচুড়ি পারা StringBuilder
এবং এটি দূরে নিক্ষেপ ফুলকপি সঙ্গে, এটা একটি রান্নার পাত্র সঙ্গে একই কাজ করতে পারে জাভা বিন ।
final
দেশীয় প্রকারের সাথে যেভাবেই অনুলিপি করা হয় সেগুলি কিছুই করে না।