CodeGym /Java Course /All lectures for BN purposes /আপনার নিজস্ব পদ্ধতি তৈরি করা এবং আর্গুমেন্ট পাস করা

আপনার নিজস্ব পদ্ধতি তৈরি করা এবং আর্গুমেন্ট পাস করা

All lectures for BN purposes
লেভেল 1 , পাঠ 531
বিদ্যমান

কোডজিম ইউনিভার্সিটি কোর্সের অংশ হিসাবে একজন পরামর্শদাতার সাথে একটি বক্তৃতা স্নিপেট। সম্পূর্ণ কোর্সের জন্য সাইন আপ করুন।


"আপনি কি ইতিমধ্যে এখানে আছেন, অ্যামিগো? আমি জানি আপনি ইতিমধ্যে অনেক জাভা কমান্ড শিখেছেন। আপনি প্রায় আমার পর্যায়ে পৌঁছে গেছেন!"

"এটা কি সত্যি, দিয়েগো?"

"অবশ্যই না, হা-হা। আপনার এখনও অনেক অধ্যয়ন এবং শেখার আছে। তবুও, আপনি ইতিমধ্যেই মোটামুটি জটিল প্রোগ্রাম লিখতে যথেষ্ট জানেন। একটি প্রোগ্রামে 10, 20, 30 লাইন কোড একটি খুব বড় প্রোগ্রাম নয়, ঠিক আছে?"

"আমার মনে হয় আপনি ঠিক বলেছেন। বিশেষ করে যদি আপনি আলাদা লাইনে কোঁকড়া ধনুর্বন্ধনী রাখেন।"

"কিন্তু 100+ লাইনের একটি প্রোগ্রাম, এখন এটি বড়। এমনকি আমাদের রোবটদেরও এই ধরনের কোড বুঝতে বেশ কষ্ট হয়। আপনি কি মনে করেন, প্রচুর কোড আছে এমন প্রোগ্রাম লেখা এবং পড়ার সহজ করার জন্য আপনি কি কিছু করতে পারেন?

"আমি আন্তরিকভাবে তাই আশা করি!"

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

"ফাংশন, পদ্ধতি... আহ, সেগুলি কি?"

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

"তাহলে, আমরা পদ্ধতিতে প্রোগ্রাম বিভক্ত?"

"হ্যাঁ, এবং এটি কোডটিকে সরল করে।

উদাহরণ:

কোন পদ্ধতি ছাড়াই একটি পদ্ধতি দিয়ে
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

"বাম কলামের প্রোগ্রামে, আমরা একই কোডটি তিনবার পুনরাবৃত্তি করেছি - আমরা একটি বিন্দু বোঝাতে ইচ্ছাকৃতভাবে এটি করেছি৷ কিন্তু ডানদিকের প্রোগ্রামে, আমরা পুনরাবৃত্তি কোডটিকে একটি পৃথক পদ্ধতিতে সরিয়ে দিয়েছি এবং এটিকে একটি অনন্য নাম দিয়েছি - printWiFi.

এবং রিলোকেটেড কোডের পরিবর্তে, আমরা printWiFi()পদ্ধতিটিকে 3 বার কল করি।

"যখন ডানদিকের কলামের প্রোগ্রামটি চালানো হয়, প্রতিবার মেথড printWiFi()এক্সিকিউট করা হয়, মেথডের ভিতরের সমস্ত কমান্ড printWiFi()এক্সিকিউট করা হয়। আমরা এইমাত্র একটি নতুন কমান্ড (পদ্ধতি) তৈরি করেছি, একটি একক গ্রুপে একাধিক কমান্ডকে একত্রিত করে।

"যেকোনো কোডকে আলাদা পদ্ধতিতে বিভক্ত করা যেতে পারে। এটি জিনিসগুলিকে সহজ করার জন্য করা হয়: ধারণাটি হল যে একটি বড় একটির চেয়ে অনেকগুলি ছোট পদ্ধতি থাকা ভাল৷

"একটি প্রোগ্রামকে পদ্ধতিতে বিভক্ত করা একটি দুর্দান্ত ধারণা।

"শীঘ্রই আপনি আশ্চর্যের সাথে স্মরণ করবেন যে আপনি কীভাবে নিজের পদ্ধতি না তৈরি করে প্রোগ্রাম লিখতেন।"

"আমি শুনতে প্রস্তুত এবং পদ্ধতি লিখতে চেষ্টা করছি! শুধু আমাকে বলুন কিভাবে এটা করতে হয়।"

জাভাতে একটি পদ্ধতি ঘোষণা করা হচ্ছে

"কিভাবে আমরা সবচেয়ে সহজ পদ্ধতি ঘোষণা করতে পারি? এখানে কিভাবে:

public static void name()
{
  method body
}

যেখানে nameপদ্ধতির অনন্য নাম এবং method bodyকমান্ডগুলিকে উপস্থাপন করে যা পদ্ধতিটি তৈরি করে। শব্দের অর্থ public, staticএবং voidপরে আলোচনা করা হবে।

"আমরা একটি পদ্ধতি তৈরি করার পরে, আমরা এটিকে আমাদের অন্যান্য পদ্ধতিতে কল করতে পারি৷ একটি পদ্ধতি কল এইরকম দেখায়:

name();

" nameআমরা যে পদ্ধতিটিকে কল করতে চাই তার অনন্য নামটি কোথায়, অর্থাৎ যে পদ্ধতির আদেশ আমরা মেথড কলে পৌঁছানোর সময় কার্যকর করতে চাই৷

"যখন প্রোগ্রামটি মেথড কলে পৌঁছাবে, তখন এটি কেবল পদ্ধতিতে প্রবেশ করবে, এর সমস্ত কমান্ড কার্যকর করবে, মূল পদ্ধতিতে ফিরে আসবে এবং কার্যকর করা চালিয়ে যাবে।

"এবং এখন, Amigo, আপনি ইতিমধ্যে শিখেছেন যে কমান্ড নতুন চোখ দিয়ে তাকান. উদাহরণস্বরূপ,. এটা আসলে কি সম্পর্কে কিছু মনে আসে?"System.out.println()

"আপনি কি বলছেন যে এই সমস্ত কমান্ডগুলি অন্য প্রোগ্রামারদের দ্বারা লেখা পদ্ধতি?"

"সকল নয়, কিন্তু তাদের মধ্যে অনেক। হ্যাঁ, ঠিক! অন্যরা আমাদের জীবন সহজ করার জন্য সেগুলি লিখেছে।"

"তাই public static void main(String[] args)একটি পদ্ধতি... এখন এটি আরও অর্থবোধ করে!"

"অবশ্যই, এটা করে! এটা প্রোগ্রামিং! এটা দেখা যাচ্ছে যে প্রধান পদ্ধতি - প্রোগ্রামের আলফা এবং ওমেগা - অন্যান্য পদ্ধতিতে কল থাকতে পারে:

কোড বিঃদ্রঃ
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




আমরা print10TimesWiFi()পদ্ধতিকে বলি


আমরা print10TimesWiFiপদ্ধতিটি ঘোষণা করি


আমরা printWiFi() একটি লুপে পদ্ধতি 10 কে কল করি


আমরা printWiFiপদ্ধতিটি ঘোষণা করি

আমরা Wi-Fiপর্দায় " " প্রদর্শন করি

পদ্ধতি সম্পর্কে তথ্য

"আমি আপনার জন্য পদ্ধতি সম্পর্কে কিছু দরকারী তথ্য সরাইয়া রেখেছি। এখানে, উপভোগ করুন:

ঘটনা 1. একটি পদ্ধতি সর্বদা একটি ক্লাসের অংশ।

একটি পদ্ধতি শুধুমাত্র একটি ক্লাসে ঘোষণা করা যেতে পারে। একটি পদ্ধতি অন্য পদ্ধতির ভিতরে ঘোষণা করা যায় না। একটি পদ্ধতি একটি ক্লাস বাইরে ঘোষণা করা যাবে না.

ঘটনা 2. একটি পদ্ধতির নামের কোন পবিত্র অর্থ নেই

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

ঘটনা 3. একটি ক্লাসে পদ্ধতির ক্রম কোন ব্যাপার নয়

আপনি ক্লাসে আপনার পদ্ধতিগুলি যে কোনও ক্রমে লিখতে পারেন — এটি কোনও ভাবেই প্রোগ্রামের সম্পাদনকে প্রভাবিত করবে না। উদাহরণ:

কোড
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

ঘটনা 4. একটি পদ্ধতির ভিতরের ভেরিয়েবল অন্য পদ্ধতির ভেরিয়েবলের সাথে কোনভাবেই সম্পর্কিত নয়

ভেগাসে যা হয়, ভেগাসে থাকে। এবং একটি পদ্ধতির ভিতরে ঘোষিত ভেরিয়েবলগুলি পদ্ধতির ভিতরে থাকে।

একই নামের ভেরিয়েবল দুটি সংলগ্ন পদ্ধতিতে ঘোষণা করা যেতে পারে এবং এই ভেরিয়েবলগুলি একে অপরের সাথে কোনোভাবেই সম্পর্কিত নয়।

পদ্ধতির নাম

"সুতরাং... আমি আপনাকে পদ্ধতির নাম সম্পর্কে বলার প্রতিশ্রুতি দিয়েছি। এটা অনেক আগে থেকেই জানা ছিল যে প্রোগ্রামিংয়ের সবচেয়ে কঠিন দুটি সমস্যা হল পদ্ধতির জন্য সঠিক নাম নির্বাচন করা এবং ভেরিয়েবলের জন্য সঠিক নাম নির্বাচন করা।"

"আমি কখনই ভাবিনি যে এটি এত কঠিন!"

"আপনি অন্যের অস্পষ্ট কোড সম্পর্কে অনেক কিছু জানেন না, যেখানে ভেরিয়েবল এবং পদ্ধতির ইচ্ছামত নাম আছে। শুধু সেই কোডটি বের করার চেষ্টা করুন। আসলে, পদ্ধতির সঠিক নামকরণের বিষয়ে প্রায় একটি সম্পূর্ণ বিজ্ঞান উঠে এসেছে। এবং প্রতিটি প্রোগ্রামিং ভাষা আছে এর নিজস্ব মান।

"জাভাতে, এই নীতিগুলি অনুসরণ করা প্রথাগত:

নীতি 1. একটি পদ্ধতির নাম সংক্ষেপে পদ্ধতিটি কী করে তা বর্ণনা করা উচিত।

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

উদাহরণস্বরূপ, 'প্রোগ্রামটিকে ঘুমাতে' ব্যবহার করা হয় এবং 'পরবর্তী পূর্ণসংখ্যা পড়তে' ব্যবহৃত হয়। সুবিধাজনক, হাহ?Thread.sleep()Scanner.nextInt()

নীতি 2. একটি পদ্ধতির নাম একাধিক শব্দ হতে পারে।

যাইহোক, এটি করার সময় বেশ কয়েকটি সীমাবদ্ধতা রয়েছে:

  • আপনার একটি পদ্ধতির নামে স্পেস থাকতে পারে না: সমস্ত শব্দ একসাথে লেখা হয়।
  • প্রথমটি ব্যতীত প্রতিটি শব্দ বড় করা হয়।
  • একটি পদ্ধতির নাম সর্বদা একটি ছোট হাতের অক্ষর দিয়ে শুরু হয়

পদ্ধতিটি মনে রাখবেন print10TimesWiFi। যে নামের মানে কি? "ওয়াইফাই' শব্দটি 10 ​​বার প্রদর্শন করুন"। একটি পদ্ধতির নামে আপনার প্রচুর শব্দ অন্তর্ভুক্ত করা উচিত নয়: নামটি তার সারমর্মকে প্রতিফলিত করা উচিত।

নামকরণের পদ্ধতির এই মানকে বলা হয় ক্যামেলকেস (বড় হাতের অক্ষরগুলি উটের কুঁজের মতো)।

নীতি 3. একটি পদ্ধতির নাম একটি ক্রিয়া দিয়ে শুরু হয়।

একটি পদ্ধতি সর্বদা কিছু করে, তাই একটি পদ্ধতির নামের প্রথম শব্দটি সর্বদা একটি ক্রিয়া।

এখানে পদ্ধতির জন্য কিছু খারাপ নাম রয়েছে: home, cat, car, train, ...;

কিছু ভাল নাম হল: run, execute, print, read, write, ...

নীতি 4. একটি পদ্ধতির নাম শুধুমাত্র ল্যাটিন অক্ষর এবং সংখ্যা ব্যবহার করে।

জাভা বিভিন্ন ভাষার জন্য চমৎকার সমর্থন আছে। আপনি ভেরিয়েবল, পদ্ধতি এবং ক্লাসের নাম রাশিয়ান এবং চীনা ভাষায় লিখতে পারেন - সবকিছুই কাজ করবে!

কিন্তু! ভাবুন তো কতদিন জাভা পড়তে হবে, যদি System.out.println()পদ্ধতিটি চীনা ভাষায় লেখা হতো?

এখন থেকে অনেক দীর্ঘ, তাই না? এটাই প্রথম পয়েন্ট।

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

অতএব, পদ্ধতির নামগুলিতে শুধুমাত্র ল্যাটিন অক্ষর এবং সংখ্যাগুলি ব্যবহার করার পরামর্শ দেওয়া হয়।

গুরুত্বপূর্ণ:

একটি পদ্ধতির নাম একটি অক্ষর দিয়ে শুরু হওয়া আবশ্যক (এটি একটি সংখ্যা দিয়ে শুরু হতে পারে না)।

"এগুলি হল সমস্ত মৌলিক নীতি যা জাভাতে নামকরণ পদ্ধতি পরিচালনা করে। পাঠ এখন শেষ। কাজগুলি সমাধান করুন!"

"আমি ইতিমধ্যে দৌড়াচ্ছি, দিয়েগো!"


কোডজিম ইউনিভার্সিটি কোর্সের অংশ হিসাবে একজন পরামর্শদাতার সাথে একটি বক্তৃতা স্নিপেট। সম্পূর্ণ কোর্সের জন্য সাইন আপ করুন।


মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION