আমি কিভাবে জাভাতে একটি অবজেক্ট কপি করব

Ami Kibhabe Jabhate Ekati Abajekta Kapi Karaba



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

এই নিবন্ধটি জাভাতে একটি বস্তু অনুলিপি করার পদ্ধতিগুলি প্রদর্শন করবে।

আমি কিভাবে জাভাতে একটি বস্তু অনুলিপি করব?

নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করে জাভাতে একটি বস্তু অনুলিপি করা যেতে পারে:







'এর মধ্যে সমস্ত ক্লাস অ্যাক্সেস করুন java.util উদাহরণে যাওয়ার আগে প্যাকেজ:



আমদানি জাভা ব্যবহার . *;

পদ্ধতি 1: 'কপি কনস্ট্রাক্টর' ব্যবহার করে জাভাতে একটি বস্তু অনুলিপি করা

দ্য ' কপি কনস্ট্রাক্টর ” পূর্বে তৈরি করা একই শ্রেণীর অবজেক্ট উল্লেখ করে একটি অবজেক্ট তৈরি/সংজ্ঞায়িত করে।



উদাহরণ
নিম্নলিখিত উদাহরণটি একটি বস্তু অনুলিপি করতে 'কপি কনস্ট্রাক্টর' প্রয়োগ করে:





পাবলিক ক্লাস কপিঅবজেক্ট {
int আইডি ;
স্ট্রিং শহর ;
কপিঅবজেক্ট ( int আইডি , স্ট্রিং শহর ) {
এই . আইডি = আইডি ;
এই . শহর = শহর ; }
কপিঅবজেক্ট ( কপিঅবজেক্ট অবজেক্ট ) {
এই . আইডি = বস্তু আইডি ;
এই . শহর = বস্তু শহর ; }
পাবলিক অকার্যকর প্রদর্শন ( ) {
পদ্ধতি. আউট . println ( 'আইডি ->' + এই . আইডি ) ;
পদ্ধতি. আউট . println ( 'শহর ->' + এই . শহর ) ; }
পাবলিক স্থির অকার্যকর প্রধান ( স্ট্রিং [ ] args ) {
স্ক্যানার ইনপুট = নতুন স্ক্যানার ( পদ্ধতি. ভিতরে ) ;
পদ্ধতি. আউট . println ( 'আইডি লিখুন:' ) ;
int আইডি = ইনপুট. nextInt ( ) ;
পদ্ধতি. আউট . println ( 'শহরে প্রবেশ করুন:' ) ;
স্ট্রিং শহর = ইনপুট. পরবর্তী ( ) ;
কপিঅবজেক্ট অবজেক্ট1 = নতুন কপিঅবজেক্ট ( আইডি , শহর ) ;
কপিঅবজেক্ট অবজেক্ট2 = নতুন কপিঅবজেক্ট ( বস্তু1 ) ;
পদ্ধতি. আউট . println ( 'ডিফল্ট অবজেক্ট ->' ) ;
বস্তু1 প্রদর্শন ( ) ;
পদ্ধতি. আউট . println ( 'অবজেক্ট অনুলিপি করা ->' ) ;
বস্তু2 প্রদর্শন ( ) ;
ইনপুট. বন্ধ ( ) ;
} }

উপরের কোড স্নিপেটে:

  • 'নামের একটি ক্লাস তৈরি করুন কপিঅবজেক্ট
  • ক্লাসের উল্লিখিত সদস্য ভেরিয়েবলগুলি নির্দিষ্ট করুন।
  • এর পরে, একটি প্যারামিটারাইজড ক্লাস কনস্ট্রাক্টর তৈরি করুন যা 'এর মাধ্যমে নির্দিষ্ট ভেরিয়েবলগুলিতে পাস করা মানগুলি বরাদ্দ করে এই
  • এখন, একটি তৈরি করুন ' কপি কনস্ট্রাক্টর যা একটি ইতিমধ্যে তৈরি ক্লাস টাইপ অবজেক্টকে এর প্যারামিটার হিসাবে নেয় যা পরে একটি যুক্তি হিসাবে পাস করা হবে।
  • এছাড়াও, ফাংশনটি সংজ্ঞায়িত করুন ' প্রদর্শন() যা পাস করা বস্তুর মান প্রদর্শন করে।
  • মধ্যে ' প্রধান() ' পদ্ধতিতে, 'এর মাধ্যমে ব্যবহারকারীর ইনপুট দেওয়ার জন্য একটি 'স্ক্যানার' অবজেক্ট তৈরি করুন System.in ” প্যারামিটার।
  • এছাড়াও, সংযুক্ত করুন ' NextInt() ' এবং ' পরবর্তী() ” পদ্ধতিগুলি যথাক্রমে পূর্ণসংখ্যা এবং স্ট্রিং ব্যবহারকারীর ইনপুট নেওয়ার জন্য।
  • 'এর মাধ্যমে একটি ক্লাস অবজেক্ট তৈরি করুন নতুন ' কীওয়ার্ড এবং ' কপিঅবজেক্ট() ” কনস্ট্রাক্টর এর আর্গুমেন্ট হিসাবে ব্যবহারকারীর ইনপুট মান রয়েছে।
  • এছাড়াও, ক্লাস কপি কনস্ট্রাক্টরকে উল্লেখ করে অনুলিপি করা বিষয়বস্তু ফেরত দেওয়ার যুক্তি হিসাবে তৈরি করা বস্তুর সাথে একটি অনুলিপি অবজেক্ট তৈরি করুন।
  • সবশেষে, ' প্রদর্শন() পাস করা ব্যবহারকারীর ইনপুট মান প্রদর্শন এবং 'স্ক্যানার' বন্ধ করার ফাংশন।

আউটপুট



এই আউটপুটে, এটি বোঝানো যেতে পারে যে একটি অনুলিপি বস্তু তৈরি করা হয় এবং সেই অনুযায়ী প্রদর্শিত হয়।

পদ্ধতি 2: 'ক্লোন()' পদ্ধতির মাধ্যমে জাভাতে একটি বস্তু অনুলিপি করা

দ্য ' ক্লোন() 'এর পদ্ধতি' java.lang.অবজেক্ট ” ক্লাস একটি বস্তুকে প্যারামিটার হিসাবে নেয়, তৈরি করে এবং এর একটি অনুলিপি দেয়। এই পদ্ধতিটি ইতিমধ্যে তৈরি করা বস্তু (যেটি অনুলিপি করা প্রয়োজন) এবং 'clone()' পদ্ধতি উল্লেখ করে একটি বস্তুকে অনুলিপি করার জন্য প্রয়োগ করা যেতে পারে।

বাক্য গঠন

বস্তু ক্লোন ( )

এই পদ্ধতিটি বস্তুর একটি অনুলিপি দেয় এবং নিক্ষেপ করে ' CloneNotSupportedException ' যদি অবজেক্টের ক্লাস 'ক্লোনযোগ্য' ইন্টারফেস বাস্তবায়ন/প্রয়োগ না করে।

উদাহরণ
কোডের নীচের লাইনগুলি দিয়ে যান:

পাবলিক ক্লাস কপিঅবজেক্ট প্রয়োগ করে ক্লোনযোগ্য {
int আইডি ;
স্ট্রিং শহর ;
কপিঅবজেক্ট ( int আইডি , স্ট্রিং শহর ) {
এই . আইডি = আইডি ;
এই . শহর = শহর ;
}
পাবলিক অকার্যকর প্রদর্শন ( ) {
পদ্ধতি. আউট . println ( 'আইডি ->' + এই . আইডি ) ;
পদ্ধতি. আউট . println ( 'শহর ->' + এই . শহর ) ;
}
পাবলিক স্থির অকার্যকর প্রধান ( স্ট্রিং [ ] args ) নিক্ষেপ CloneNotSupportedException {
স্ক্যানার ইনপুট = নতুন স্ক্যানার ( পদ্ধতি. ভিতরে ) ;
পদ্ধতি. আউট . println ( 'আইডি লিখুন:' ) ;
int আইডি = ইনপুট. nextInt ( ) ;
পদ্ধতি. আউট . println ( 'শহরে প্রবেশ করুন:' ) ;
স্ট্রিং শহর = ইনপুট. পরবর্তী ( ) ;
কপিঅবজেক্ট অবজেক্ট1 = নতুন কপিঅবজেক্ট ( আইডি , শহর ) ;
পদ্ধতি. আউট . println ( 'ডিফল্ট অবজেক্ট ->' ) ;
বস্তু1 প্রদর্শন ( ) ;
পদ্ধতি. আউট . println ( 'অবজেক্ট অনুলিপি করা ->' ) ;
কপিঅবজেক্ট অবজেক্ট2 = ( কপিঅবজেক্ট ) বস্তু1 ক্লোন ( ) ;
বস্তু2 প্রদর্শন ( ) ;
ইনপুট. বন্ধ ( ) ;
} }

উপরের কোড ব্লক অনুযায়ী, নীচের-উল্লেখিত পদক্ষেপগুলি সম্পাদন করুন:

  • একটি ক্লাস সংজ্ঞায়িত করার জন্য আলোচিত পন্থাগুলি স্মরণ করুন, সদস্য ভেরিয়েবলগুলি নির্দিষ্ট করা, একটি প্যারামিটারাইজড ক্লাস কনস্ট্রাক্টর তৈরি করা (পাস করা মানগুলি বরাদ্দ করা), এবং যথাক্রমে মানগুলি প্রদর্শনের জন্য একটি ফাংশন সংজ্ঞায়িত করা।
  • এখন ' প্রধান() ”, একইভাবে, ব্যবহারকারী মানগুলি ইনপুট করে এবং এই মানগুলি তৈরি করা ক্লাস অবজেক্টে প্রেরণ করে এবং সংশ্লিষ্ট ফাংশনের মাধ্যমে প্রদর্শন করে।
  • এর পরে, ' ক্লোন() ” পদ্ধতিটি কার্যকর হয় যা একটি অনুলিপি অবজেক্ট তৈরি করতে ইতিমধ্যে তৈরি করা বস্তুর সাথে যুক্ত।
  • সবশেষে, আলোচিত ফাংশনের মাধ্যমে অনুলিপি করা বস্তুর বিষয়বস্তু প্রদর্শন করুন।

আউটপুট

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

উপসংহার

একটি বস্তু জাভা ব্যবহার করে অনুলিপি করা যেতে পারে “ কপি কনস্ট্রাক্টর ', অথবা ' ক্লোন() 'পদ্ধতি। পূর্বের পদ্ধতিটি ইতিমধ্যে তৈরি করা বস্তুটিকে একটি কপি কনস্ট্রাক্টর আর্গুমেন্ট হিসাবে গ্রহণ করে বস্তুটিকে অনুলিপি করে। পরবর্তী পদ্ধতিটি সরাসরি তৈরি ক্লাস অবজেক্টের সাথে যুক্ত। এই লেখাটি জাভাতে একটি বস্তুকে অনুলিপি করার পদ্ধতিগুলি প্রদর্শন করেছে।