1. জাভাতে ফাংশন/পদ্ধতি
আপনি ইতিমধ্যে অনেক জাভা কমান্ড শিখেছেন, যার মানে আপনি কিছু জটিল প্রোগ্রাম লিখতে পারেন। একটি প্রোগ্রামে 10, 20, 30 লাইনের কোড একটি খুব বড় প্রোগ্রাম নয়, তাই না?
কিন্তু 100+ এর একটি প্রোগ্রাম, এখন এটি বড়, এবং কোডটি বোঝা কঠিন হতে পারে। অনেক কোড আছে এমন প্রোগ্রামগুলি লেখা এবং পড়ার সহজ করার জন্য আপনি কি কিছু করতে পারেন?
হ্যাঁ, এবং পদ্ধতি (বা ফাংশন) এটি আমাদের সাহায্য করবে।
একটি পদ্ধতি কি? খুব সহজভাবে বললে, একটি পদ্ধতি হল কমান্ডের একটি গ্রুপ যার একটি অনন্য নাম রয়েছে । অন্য কথায়, আমরা একটি গ্রুপে কয়েকটি কমান্ড রাখি এবং এটিকে একটি অনন্য নাম দিই। এবং এটিই - পদ্ধতি প্রস্তুত।
উদাহরণ:
কোন পদ্ধতি ছাড়াই | একটি পদ্ধতি দিয়ে |
---|---|
|
|
বাম কলামের প্রোগ্রামে, আমরা একই কোডটি তিনবার পুনরাবৃত্তি করি - আমরা একটি বিন্দু বোঝাতে ইচ্ছাকৃতভাবে এটি করেছি। কিন্তু ডানদিকের প্রোগ্রামে, আমরা পুনরাবৃত্ত কোডটিকে একটি পৃথক পদ্ধতিতে স্থানান্তরিত করেছি এবং এটিকে একটি অনন্য নাম দিয়েছি — printWiFi
.
এবং রিলোকেটেড কোডের পরিবর্তে, আমরা printWiFi()
পদ্ধতিটিকে 3 বার কল করি।
যখন ডানদিকের কলামের প্রোগ্রামটি চালানো হয়, প্রতিবার printWiFi()
মেথড এক্সিকিউট করা হয়, মেথডের ভিতরে থাকা সমস্ত কমান্ড printWiFi()
এক্সিকিউট হয়। আমরা এইমাত্র একটি নতুন কমান্ড (পদ্ধতি) তৈরি করেছি, একটি একক গোষ্ঠীতে বেশ কয়েকটি কমান্ড একত্রিত করে।
যেকোন কোড আলাদা পদ্ধতিতে বিভক্ত করা যায়। জিনিসগুলিকে সহজ করার জন্য এটি করা হয়: ধারণাটি হল যে একটি বড় পদ্ধতির চেয়ে অনেকগুলি ছোট পদ্ধতি থাকা ভাল৷ আপনি শীঘ্রই অবাক হবেন যে এমন একটি সময় ছিল যখন আপনি নিজের পদ্ধতিগুলি না লিখে নিজের প্রোগ্রামগুলি লিখেছিলেন।
2. জাভাতে একটি পদ্ধতি ঘোষণা করা
তাহলে আপনি কিভাবে আপনার পদ্ধতি সঠিকভাবে লিখবেন?
public static void name()
{
method body
}
একটি পদ্ধতি ঘোষণা করার (তৈরি করার) সময় বিবেচনা করার জন্য প্রচুর সূক্ষ্মতা রয়েছে, তবে আমরা মূল বিষয়গুলি দিয়ে শুরু করব। আমরা কিভাবে সহজ পদ্ধতি ঘোষণা করতে পারি? একটি সহজ পদ্ধতি ঘোষণা এই মত দেখায়:
যেখানে name
পদ্ধতির অনন্য নাম এবং method body
কমান্ডগুলিকে উপস্থাপন করে যা পদ্ধতিটি তৈরি করে। শব্দের অর্থ public
, static
এবং void
পরে আলোচনা করা হবে।
আমরা একটি পদ্ধতি তৈরি করার পরে, আমরা এটিকে আমাদের অন্যান্য পদ্ধতিতে কল করতে পারি। একটি পদ্ধতি কল এই মত দেখায়:
name();
name
আমরা যে মেথডকে কল করতে চাই তার অনন্য নাম কোথায়, অর্থাৎ যে মেথডের কমান্ড আমরা মেথড কলে পৌঁছানোর সময় এক্সিকিউট করতে চাই ।
যখন প্রোগ্রামটি মেথড কলে পৌঁছাবে, তখন এটি কেবল পদ্ধতিতে প্রবেশ করবে, এর সমস্ত কমান্ড কার্যকর করবে, মূল পদ্ধতিতে ফিরে আসবে এবং কার্যকর করা চালিয়ে যাবে।
আপনি সম্ভবত এখন পর্যন্ত অনুমান করেছেন, আমরা এখন পর্যন্ত যে কমান্ডগুলি শিখেছি তার বেশিরভাগই আমাদের জীবনকে সহজ করার জন্য অন্যান্য প্রোগ্রামারদের দ্বারা লেখা পদ্ধতি: , , ইত্যাদি।System.out.println()
Thread.sleep()
একটি পদ্ধতিতে অন্যান্য পদ্ধতিতে কল থাকতে পারে:
কোড | বিঃদ্রঃ |
---|---|
|
printWiFi10Times() পদ্ধতিটিকে কল করুন পদ্ধতিটি ঘোষণা করুন একটি লুপে 10 বার পদ্ধতিটি কল করুন পদ্ধতিটি ঘোষণা করুন পর্দায় পাঠ্য প্রদর্শন করুন: printWiFi10Times printWiFi() printWiFi
|
3. পদ্ধতি সম্পর্কে তথ্য
এখানে পদ্ধতি সম্পর্কে আরও কিছু তথ্য রয়েছে:
ঘটনা 1. একটি পদ্ধতি সর্বদা একটি ক্লাসের অংশ।
একটি পদ্ধতি শুধুমাত্র একটি ক্লাসে ঘোষণা করা যেতে পারে। একটি পদ্ধতি অন্য পদ্ধতির ভিতরে ঘোষণা করা যায় না। একটি পদ্ধতি একটি ক্লাস বাইরে ঘোষণা করা যাবে না.
ঘটনা 2. একটি পদ্ধতির নামের কোন পবিত্র অর্থ নেই।
কোন পদ্ধতিগুলিকে বলা হয় তা বিবেচ্য নয় - এটি কোনও কিছুকে প্রভাবিত করে না। মূল পদ্ধতিটি অন্যদের মতো একটি পদ্ধতি। এটা ঠিক যে এই নামটি সেই পদ্ধতির জন্য বেছে নেওয়া হয়েছিল যেখান থেকে জাভা মেশিন প্রোগ্রামটি চালানো শুরু করবে। এটি সম্পর্কে জাদুকরী কিছুই নেই।
ঘটনা 3. একটি ক্লাসে পদ্ধতির ক্রম কোন ব্যাপার নয়।
আপনি আপনার পদ্ধতিগুলিকে যেকোন ক্রমে একটি ক্লাসে লিখতে পারেন — এটি কোনোভাবেই প্রোগ্রামের এক্সিকিউশনকে প্রভাবিত করবে না। উদাহরণ:
কোড | |
---|---|
|
|
ঘটনা 4. একটি পদ্ধতির ভিতরের ভেরিয়েবল অন্য পদ্ধতির ভেরিয়েবলের সাথে কোনভাবেই সম্পর্কিত নয়।
ভেগাসে যা হয়, ভেগাসে থাকে। এবং একটি পদ্ধতির ভিতরে ঘোষিত ভেরিয়েবলগুলি পদ্ধতির ভিতরে থাকে।
একই নামের ভেরিয়েবল দুটি সংলগ্ন পদ্ধতিতে ঘোষণা করা যেতে পারে এবং এই ভেরিয়েবলগুলি একে অপরের সাথে কোনোভাবেই সম্পর্কিত নয়।
4. পদ্ধতির নাম
এটি দীর্ঘদিন ধরে জানা গেছে যে প্রোগ্রামিংয়ের সবচেয়ে কঠিন দুটি সমস্যা হল পদ্ধতির জন্য সঠিক নাম নির্বাচন করা এবং ভেরিয়েবলের জন্য সঠিক নাম নির্বাচন করা।
প্রকৃতপক্ষে, পদ্ধতিগুলির সঠিক নামকরণের বিষয়ে প্রায় একটি সম্পূর্ণ বিজ্ঞান আবির্ভূত হয়েছে। এবং প্রতিটি প্রোগ্রামিং ভাষার নিজস্ব মান আছে। জাভাতে, এই নীতিগুলি অনুসরণ করা প্রথাগত:
নীতি 1. একটি পদ্ধতির নাম সংক্ষেপে পদ্ধতিটি কী করে তা বর্ণনা করা উচিত।
তারপরে আপনার কোড পড়ার অন্য প্রোগ্রামার কোডটি কী করে তা অনুমান করতে পদ্ধতির নামের উপর নির্ভর করতে পারে। তাকে প্রতিবার বলা পদ্ধতির কোড দেখতে হবে না। এবং পদ্ধতির উদ্দেশ্য মনে রাখা সহজ।
স্মরণ করুন যেটি 'প্রোগ্রামটিকে ঘুমাতে' ব্যবহার করা হয় এবং 'পরবর্তী পূর্ণসংখ্যা পড়তে' ব্যবহৃত হয়। সুবিধাজনক, ডান?Thread.sleep()
Scanner.nextInt()
নীতি 2. একটি পদ্ধতির নাম একাধিক শব্দ হতে পারে।
যাইহোক, এটি করার সময় বেশ কয়েকটি সীমাবদ্ধতা রয়েছে:
- আপনার একটি পদ্ধতির নামে স্পেস থাকতে পারে না: সমস্ত শব্দ একসাথে লেখা হয়।
- প্রথমটি ব্যতীত প্রতিটি শব্দ বড় করা হয়।
- একটি পদ্ধতির নাম সর্বদা একটি ছোট হাতের অক্ষর দিয়ে শুরু হয়
পদ্ধতিটি স্মরণ করুন printWiFi10Times
। যে নামের মানে কি? "ওয়াইফাই' শব্দটি 10 বার প্রদর্শন করুন"। একটি পদ্ধতির নামে আপনার প্রচুর শব্দ অন্তর্ভুক্ত করা উচিত নয়: নামটি তার সারমর্মকে প্রতিফলিত করা উচিত।
নামকরণ পদ্ধতির এই মানকে বলা হয় ক্যামেলকেস (বড় হাতের অক্ষরগুলি উটের কুঁজের মতো)।
নীতি 3. একটি পদ্ধতির নাম একটি ক্রিয়া দিয়ে শুরু হয়।
একটি পদ্ধতি সর্বদা কিছু করে, তাই একটি পদ্ধতির নামের প্রথম শব্দটি সর্বদা একটি ক্রিয়া।
এখানে পদ্ধতির জন্য কিছু খারাপ নাম রয়েছে: home
, cat
, car
, train
, ...;
কিছু ভাল নাম হল: run
, execute
, print
, read
, write
, ...
নীতি 4. শুধুমাত্র ল্যাটিন অক্ষর এবং সংখ্যা ব্যবহার করুন।
জাভা বিভিন্ন ভাষার জন্য চমৎকার সমর্থন আছে। আপনি ভেরিয়েবল, পদ্ধতি এবং ক্লাসের নাম রাশিয়ান এবং চীনা ভাষায় লিখতে পারেন - সবকিছুই কাজ করবে!
কিন্তু! আপনি কতক্ষণ জাভা অধ্যয়ন করতে হবে, যদি System.out.println()
পদ্ধতি চীনা ভাষায় লেখা হয়? এখন থেকে অনেক দীর্ঘ, তাই না? এটাই প্রথম পয়েন্ট।
দ্বিতীয়ত, অনেক সফ্টওয়্যার উন্নয়ন দল আন্তর্জাতিক। একটি খুব বড় সংখ্যক জাভা লাইব্রেরি সারা বিশ্বের প্রোগ্রামাররা ব্যবহার করে।
অতএব, পদ্ধতির নামগুলিতে শুধুমাত্র ল্যাটিন অক্ষর এবং সংখ্যাগুলি ব্যবহার করার পরামর্শ দেওয়া হয়।
GO TO FULL VERSION