উত্তর:
final
শব্দ জাভা বিভিন্ন ব্যবহারগুলির হয়েছে। এটি সি # তে কীওয়ার্ড sealed
এবং readonly
কীওয়ার্ড উভয়ের সাথেই মিল রয়েছে, এটি যে প্রসঙ্গে ব্যবহৃত হয়েছে তার উপর নির্ভর করে।
সাবক্লাসিং (সংজ্ঞায়িত শ্রেণীর উত্তরাধিকার) প্রতিরোধ করতে:
জাভা
public final class MyFinalClass {...}
সি শার্প
public sealed class MyFinalClass {...}
কোনও virtual
পদ্ধতির ওভাররাইডিং প্রতিরোধ করুন ।
জাভা
public class MyClass
{
public final void myFinalMethod() {...}
}
সি শার্প
public class MyClass : MyBaseClass
{
public sealed override void MyFinalMethod() {...}
}
জোয়াচিম সাউর যেমন উল্লেখ করেছেন, এখানে দুটি ভাষার মধ্যে একটি উল্লেখযোগ্য পার্থক্য হ'ল জাভা ডিফল্টরূপে সমস্ত অ স্থির পদ্ধতি virtual
চিহ্নিত করে, যেখানে সি # এগুলিকে চিহ্নিত করে sealed
। অতএব, আপনি কেবল sealed
সি # তে কীওয়ার্ডটি ব্যবহার করতে হবে যদি আপনি virtual
বেস শ্রেণিতে স্পষ্টভাবে চিহ্নিত করা একটি পদ্ধতির আরও ওভাররাইডিং বন্ধ করতে চান ।
কেবল একবার ভেরিয়েবলকে বরাদ্দ করার অনুমতি দেওয়ার জন্য:
জাভা
public final double pi = 3.14; // essentially a constant
সি শার্প
public readonly double pi = 3.14; // essentially a constant
পার্শ্ব নোট হিসাবে, readonly
কীওয়ার্ডের প্রভাবটি এর চেয়ে আলাদা হয়const
যে শব্দ readonly
অভিব্যক্তি এ মূল্যায়ন করা হয় রানটাইম বদলে কম্পাইল-টাইম , অত নির্বিচারে এক্সপ্রেশন অনুমতি দেয়।
readonly
সদস্য ভেরিয়েবলগুলি কনস্ট্রাক্টরগুলিতে সংশোধন করা যেতে পারে: পেস্টবিন.এজক্জওয়াইজিআইএ
ইহা পারিপার্শ্বিক অবস্থা উপর নির্ভর করে।
final
বর্গ বা পদ্ধতি, সি # সমতূল্যsealed
।final
ক্ষেত্রের জন্য, সি # সমতুল্যreadonly
।final
স্থানীয় পরিবর্তনশীল বা পদ্ধতি প্যারামিটার কোন সরাসরি C # এর সমতুল্য নয়।For a final local variable or method parameter, there's no direct C# equivalent
একটি বিশাল পার্থক্য।
const
শুধুমাত্র মান ধরণের ক্ষেত্রে ব্যবহার করা যেতে পারে। আমি যতদূর জানি স্থানীয় রেফারেন্স ধরণের জন্য কার্যকর ধ্রুবক তৈরি করার কোনও উপায় নেই।
এখানে সকলেই যা অনুপস্থিত তা হ'ল জাভা চূড়ান্ত সদস্য ভেরিয়েবলের জন্য নির্দিষ্ট কার্যভারের গ্যারান্টি।
চূড়ান্ত সদস্যের ভেরিয়েবল ভের সাথে ক্লাস সি এর জন্য, সি এর প্রতিটি কনস্ট্রাক্টরের মাধ্যমে প্রতিটি সম্ভাব্য নির্বাহের পথে অবশ্যই একবার ভিকে অর্পণ করতে হবে - ভি বরাদ্দ করতে ব্যর্থ হওয়া বা দু'বার বা তার বেশি সময় নির্ধারণের ফলে ত্রুটি ঘটবে।
সি # এর পঠনযোগ্য কী-ওয়ার্ডের কোনও গ্যারান্টি নেই - সংকলকটি কেবল পাঠানো সদস্যদের অনির্ধারিত রেখে বা কনস্ট্রাক্টরের মধ্যে আপনাকে একাধিকবার নির্ধারিত করার অনুমতি দেওয়ার চেয়ে আনন্দিত।
সুতরাং, চূড়ান্ত এবং পঠনযোগ্য (অন্তত সদস্য ভেরিয়েবলের ক্ষেত্রে সম্মানের সাথে) অবশ্যই সমতুল্য নয় - চূড়ান্ত অনেক বেশি কঠোর।
উল্লিখিত হিসাবে, sealed
একটি সমতুল্যfinal
পদ্ধতি এবং ক্লাস জন্য ।
বাকী হিসাবে, এটি জটিল।
জন্য static final
ক্ষেত্র,static readonly
সর্বনিকটবর্তী বস্তু সম্ভব। এটি আপনাকে স্ট্যাটিক ফিল্ডটি একটি স্ট্যাটিক কনস্ট্রাক্টরটিতে আরম্ভ করার অনুমতি দেয় যা জাভাতে স্থির আরম্ভের সাথে মোটামুটি মিল। এটি উভয়ই ধ্রুবকগুলিতে (আদিম এবং অপরিবর্তনীয় বস্তু) এবং পরিবর্তনীয় বস্তুর ধ্রুবক উল্লেখগুলির জন্য প্রযোজ্য।
দ্য const
পরিবর্তক মোটামুটি ধ্রুবক জন্য অনুরূপ, কিন্তু আপনি তাদের একটি স্ট্যাটিক কন্সট্রাকটর সেট করতে পারবে না।
readonly
ব্যবহার করা যেতে পারে। যদিও এটি সমান নয় -final
এমনকি কনস্ট্রাক্টর বা ইনিশিয়ালাইজারেও ঠিক একটি অ্যাসাইনমেন্ট প্রয়োজন।final
আমি পরিচিত স্থানীয় ভেরিয়েবলের জন্য কোনও সি # সমতুল্য নেই। আপনি যদি ভাবছেন যে কারও প্রয়োজন কেন: আপনি যদি অন্যথায়, স্যুইচ-কেস বা তার আগে একটি পরিবর্তনশীল ঘোষণা করতে পারেন। এটি চূড়ান্ত ঘোষণা করে, আপনি প্রয়োগ করেন যে এটি একবারে অর্পণ করা হয়েছে।
সাধারণভাবে জাভা স্থানীয় ভেরিয়েবলগুলি পড়ার আগে কমপক্ষে একবার নির্ধারণ করা প্রয়োজন। মান পড়ার আগে যদি শাখাটি লাফ না দেয়, চূড়ান্ত পরিবর্তনশীল ঠিক একবার বরাদ্দ করা হয়। এই সমস্ত সংকলন সময় চেক করা হয়। এটির জন্য একটি ত্রুটির জন্য কম মার্জিন সহ ভাল আচরণ করা কোড দরকার।
সংক্ষেপে বলা যায়, সি # এর কোনও সরাসরি সমতুল্য নেই final
। জাভাতে সি # এর কিছু সুন্দর বৈশিষ্ট্য নেই, তবে জাভা প্রোগ্রামার হিসাবে এটি আমার জন্য সতেজ হয় যেখানে সি # সমতুল্য বিতরণ করতে ব্যর্থ হয়।
জাভা ক্লাস চূড়ান্ত এবং পদ্ধতি চূড়ান্ত -> সিল। জাভা সদস্যের পরিবর্তনশীল চূড়ান্ত -> রানটাইম ধ্রুবকটির জন্য কেবলমাত্র পঠনযোগ্য, সংকলনের সময় ধ্রুবকের জন্য কনস্ট।
স্থানীয় পরিবর্তনশীল চূড়ান্ত এবং পদ্ধতি আর্গুমেন্ট ফাইনালের সমতুল্য নয়
সি # ধ্রুবকগুলি সংকলন সময়ের ধ্রুবকগুলির জন্য কনস্ট কীওয়ার্ড বা রানটাইম ধ্রুবকগুলির জন্য পঠনযোগ্য কীওয়ার্ড ব্যবহার করে ঘোষিত হয়। সি # এবং জাভা উভয় ভাষায় ধ্রুবকের শব্দার্থকতা একই is