কম্পিউটার

কোটলিনে জাভা স্ট্যাটিক পদ্ধতির সমতুল্য কি?


জাভাতে, দক্ষ মেমরি পরিচালনার জন্য "স্থির" কীওয়ার্ড ব্যবহার করা হয়। একবার একটি পরিবর্তনশীল বা পদ্ধতিকে স্ট্যাটিক হিসাবে ঘোষণা করা হয় , তাহলে JVM শুধুমাত্র একবার এই ভেরিয়েবলের জন্য মেমরি বরাদ্দ করবে। সাধারণত একটি শ্রেণীর সাধারণ বৈশিষ্ট্য ঘোষণা করতে স্ট্যাটিক ভেরিয়েবল ব্যবহার করা হয় , উদাহরণস্বরূপ, "প্রতিষ্ঠানের নাম"। নিচের উদাহরণে, আমরা দেখব কিভাবে static ব্যবহার করতে হয় কীওয়ার্ড।

জাভা ব্যবহারে স্ট্যাটিক এর উদাহরণ

কীভাবে স্থির তা প্রদর্শন করার জন্য জাভাতে কাজ করে, আমরা আমাদের অনলাইন জাভা কম্পাইলার অ্যাক্সেস করব এবং আমরা একটি পরীক্ষা তৈরি করব ক্লাস ভিতরে পরীক্ষা , আমরা একটি static এর সাথে একটি স্ট্যাটিক ভেরিয়েবল তৈরি করার চেষ্টা করব পদ্ধতি এবং আমরা এর কোনো শ্রেণি তৈরি না করে উভয়ই অ্যাক্সেস করব বস্তু।

উদাহরণ

<প্রি>পাবলিক ক্লাস টেস্ট{ স্ট্যাটিক int myStaticVariable =10; // স্ট্যাটিক পদ্ধতি স্ট্যাটিক অকার্যকর staticMethod() { System.out.println("www.tutorialspoint.com"); } পাবলিক স্ট্যাটিক ভ্যায়েড মেইন(স্ট্রিং[]আর্গস) { // স্ট্যাটিক মেথড এবং ভেরিয়েবল অ্যাক্সেস করা // ক্লাস টেস্ট স্ট্যাটিক মেথড() এর কোনো অবজেক্ট তৈরি না করেই System.out.println("অ্যাক্সেসিং স্ট্যাটিক ভেরিয়েবল-"+myStaticVariable); }}

আউটপুট

একবার আপনি কোডটি কার্যকর করলে, এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
$javac Test.java$java -Xmx128M -Xms16M টেস্টwww.tutorialspoint.comঅ্যাক্সেসিং স্ট্যাটিক ভেরিয়েবল-10

কোটলিনে জাভা স্ট্যাটিক পদ্ধতির সমতুল্য

কোটলিনে, আমাদের কোনো স্ট্যাটিক নেই কীওয়ার্ড এই নিবন্ধে, আমরা শিখব কিভাবে আমরা কোটলিন লাইব্রেরিতে উপলব্ধ একটি ভিন্ন কীওয়ার্ড ব্যবহার করে একই মেমরি ব্যবস্থাপনা অর্জন করতে পারি। উদ্দেশ্য হল একটি ভিন্ন কোটলিন লাইব্রেরি ফাংশন বাস্তবায়ন করা একটি শর্ত বেছে নেওয়া যেখানে মেমরি শুধুমাত্র একবার তৈরি করা হবে এবং অ্যাপ্লিকেশনের অন্য বিভাগ থেকে এর মান পরিবর্তন করা যাবে না।

স্ট্যাটিক ব্যবহার করার দুটি উপায় আছে কোটলিনে -

  • সহচর বস্তু ব্যবহার করে

  • অবজেক্ট ক্লাস এবং @JvmStatic টীকা

    ব্যবহার করা

আসুন এই প্রতিটি উপায় বিস্তারিতভাবে বুঝি।

কম্প্যানিয়ন অবজেক্ট ব্যবহার করা

একজন সঙ্গী যোগ করা হচ্ছে অবজেক্টে বিকাশকারীদেরকে স্থির অর্জন করতে সাহায্য করবে কোটলিনে কার্যকারিতা। এটি বস্তুটিকে একই ফাইলে সংরক্ষণ করে যেখানে ক্লাসটি সংরক্ষণ করা হয়, তাই এটি ক্লাসের ভিতরে সমস্ত ব্যক্তিগত পদ্ধতি এবং ভেরিয়েবল অ্যাক্সেস করতে পারে। এটি ক্লাস ইনিশিয়ালাইজেশন স্টেজের সাথে শুরু হয়।

উদাহরণ

আমরা একটি সহচর বস্তু বাস্তবায়ন করার চেষ্টা করব এবং আমরা দেখতে পাব যে আমরা কতটা দক্ষতার সাথে কোটলিনে মেমরি ব্যবস্থাপনা পরিচালনা করতে পারি৷

fun main(args:Array) { // ক্লাস ভেরিয়েবল এবং পদ্ধতি অ্যাক্সেস করা // ক্লাস অবজেক্ট তৈরি না করে println("হ্যালো!"+'\n' + "এটি তৈরি না করেই ক্লাস ভেরিয়েবল অ্যাক্সেস করার একটি উদাহরণ অবজেক্ট।;}ক্লাস MyClass{ সঙ্গী বস্তু { val staticField ="এটি একটি স্ট্যাটিক পরিবর্তনশীল।" fun getStaticFunction():স্ট্রিং { রিটার্ন "এটি একটি স্ট্যাটিক পদ্ধতি।" } } }

আউটপুট

একবার আপনি কোডটি কার্যকর করলে, এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
হ্যালো!এটি অবজেক্ট তৈরি না করে ক্লাস ভেরিয়েবল অ্যাক্সেস করার একটি উদাহরণ। এটি একটি স্ট্যাটিক ভেরিয়েবল। হ্যালো! এটি কোনো বস্তু তৈরি না করেই ক্লাস মেথড অ্যাক্সেস করার একটি উদাহরণ। এটি একটি স্থির পদ্ধতি।

এই নমুনা কোডে, আপনি যদি স্ট্যাটিক এর মান পরিবর্তন করার চেষ্টা করেন ভেরিয়েবল, আপনি দেখতে পাবেন কোটলিন কম্পাইলার একটি ত্রুটি নিক্ষেপ করবে।

উদাহরণ

fun main(args:Array) {// স্ট্যাটিক ভেরিয়েবল MyClass.staticField="Hello Students" পরিবর্তন করার চেষ্টা করা হচ্ছে; println("হ্যালো!"+'\n'+"অবজেক্ট তৈরি না করেই ক্লাস ভেরিয়েবল অ্যাক্সেস করার একটি উদাহরণ-"+MyClass.staticField+'\n')}ক্লাস MyClass{ সঙ্গী বস্তু { val staticField ="এটি একটি স্ট্যাটিক পরিবর্তনশীল" fun getStaticFunction():স্ট্রিং { return "এটি একটি স্ট্যাটিক পদ্ধতি" } } }

আউটপুট

কোডের উপরের অংশটি নিম্নলিখিত ত্রুটিটি তৈরি করবে -

$kotlinc -nowarn main.kt -include-runtime -d main.jarmain.kt:5:5:ত্রুটি:val পুনরায় নিয়োগ করা যাবে নাMyClass.staticField="Hello Students";^

অবজেক্ট ক্লাস এবং @JvmStatic টীকা ব্যবহার করা

কোটলিন ডকুমেন্টেশন অনুসারে, একবার @JvmStatic কোনো পরিবর্তনশীল বা পদ্ধতিতে টীকা প্রয়োগ করা হয়, এটি স্থির হিসেবে কাজ করবে সেই ক্লাসের কার্যকারিতা।

উদাহরণ

নিম্নলিখিত উদাহরণে, আমরা একটি অবজেক্ট তৈরি করব ক্লাস এবং সেই অবজেক্টে ক্লাস, আমরা @JvmStatic ব্যবহার করে ভেরিয়েবল এবং পদ্ধতি ঘোষণা করব স্থির বাস্তবায়নের জন্য টীকা কোটলিন পরিবেশে কার্যকারিতা।

fun main(args:Array) { // ক্লাস ভেরিয়েবল এবং পদ্ধতি অ্যাক্সেস করা // ক্লাস অবজেক্ট তৈরি না করে println("হ্যালো!"+'\n' + "এটি একটি অবজেক্ট তৈরি না করে একটি ক্লাস ভেরিয়েবল অ্যাক্সেস করার একটি উদাহরণ ." +MyClass.staticField+'\n') println("হ্যালো!"+'\n' + "এটি একটি বস্তু তৈরি না করে একটি ক্লাস পদ্ধতি অ্যাক্সেস করার একটি উদাহরণ৷ " +MyClass.getStaticFunction()+'\n');}অবজেক্ট মাইক্লাস{@JvmStatic val staticField ="এটি একটি স্ট্যাটিক পরিবর্তনশীল।" @JvmStatic fun getStaticFunction():স্ট্রিং { রিটার্ন "এটি একটি স্ট্যাটিক পদ্ধতি।" }}

আউটপুট

এটি ফলাফল বিভাগে নিম্নলিখিত আউটপুট তৈরি করবে। −

হ্যালো!এটি কোনো অবজেক্ট তৈরি না করেই ক্লাস ভেরিয়েবল অ্যাক্সেস করার একটি উদাহরণ। এটি একটি স্ট্যাটিক ভেরিয়েবল৷ হ্যালো! এটি একটি অ্যানোবজেক্ট তৈরি না করে একটি ক্লাস পদ্ধতি অ্যাক্সেস করার একটি উদাহরণ৷ এটি একটি স্ট্যাটিক পদ্ধতি।

  1. জাভাতে JSeparator ক্লাসের গুরুত্ব কী?

  2. জাভাতে JViewport ক্লাসের গুরুত্ব কী?

  3. জাভাতে কন্টেইনার ক্লাসের গুরুত্ব কী?

  4. জাভাতে কার্ডলেআউট ক্লাসের গুরুত্ব কী?