আপডেট: নীচে আসল উত্তরটি পুরোপুরি প্রশ্নটি না বুঝে লেখা হয়েছিল, এবং সুতরাং সরাসরি প্রশ্নের সমাধান করে না :)তবুও, 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দেশীয় প্রকারের সাথে যেভাবেই অনুলিপি করা হয় সেগুলি কিছুই করে না।