common.skill

Apex মেথডস (Apex Methods)

Computer Programming - এপেক্স (Apex)
330
330

Apex Methods হলো Apex ক্লাসের গুরুত্বপূর্ণ উপাদান, যা কোডের একটি ব্লক হিসেবে কাজ করে এবং নির্দিষ্ট কার্যক্রম সম্পাদন করে। Apex-এ মেথডস তৈরি করা হয় কোডের পুনঃব্যবহারযোগ্যতা নিশ্চিত করতে এবং নির্দিষ্ট কার্যক্রমকে সহজে পরিচালনা করতে। মেথডস ব্যবহার করে ক্লাসের প্রোপার্টি মানানো, গাণিতিক কাজ সম্পন্ন করা, ডেটা প্রসেসিং, এবং অন্যান্য কার্যক্রম সম্পন্ন করা যায়।

Apex মেথডের গঠন

Apex মেথডে সাধারণত অ্যাক্সেস মডিফায়ার, রিটার্ন টাইপ, মেথডের নাম, এবং প্রয়োজনীয় প্যারামিটার থাকে। একটি মেথড ডিক্লার করার জন্য public, private, বা protected অ্যাক্সেস মডিফায়ার ব্যবহার করা হয়। মেথডটি কি ধরনের মান রিটার্ন করবে সেটাও রিটার্ন টাইপ দ্বারা নির্ধারণ করা হয়।

Syntax:

accessModifier ReturnType methodName(parameters) {
    // মেথডের কাজের কোড
}

উদাহরণ:

public class MathOperations {
    
    // Sum মেথড যা দুটি সংখ্যার যোগফল রিটার্ন করে
    public Integer sum(Integer a, Integer b) {
        return a + b;
    }

    // Greet মেথড যা একটি বার্তা প্রদর্শন করে
    public void greet(String name) {
        System.debug('Hello, ' + name + '!');
    }
}

এখানে MathOperations নামে একটি ক্লাসে দুটি মেথড আছে: sum() এবং greet()sum() মেথড দুটি সংখ্যার যোগফল রিটার্ন করে এবং greet() মেথড একটি নাম নিয়ে স্বাগত বার্তা প্রদর্শন করে।


Apex মেথডের বৈশিষ্ট্য

অ্যাক্সেস মডিফায়ার: মেথডটি কে বা কোন ক্লাস থেকে অ্যাক্সেস করা যাবে তা নির্ধারণ করতে public, private, এবং protected মডিফায়ার ব্যবহার করা হয়।

রিটার্ন টাইপ: মেথডের রিটার্ন টাইপ নির্ধারণ করে মেথডটি কি ধরনের মান রিটার্ন করবে। যদি মেথড কিছু রিটার্ন না করে, তাহলে void রিটার্ন টাইপ ব্যবহার করা হয়।

প্যারামিটারস: মেথডে প্যারামিটার পাস করা যায়, যা মেথডের ভিতরে ব্যবহৃত হয় এবং কার্যক্রম নির্ধারণ করতে সহায়ক।

Overloading: একই নামে একাধিক মেথড তৈরি করা যায় যা বিভিন্ন প্যারামিটার ব্যবহার করে। একে মেথড ওভারলোডিং বলে।


বিভিন্ন ধরণের Apex মেথডস

Standard মেথড: সাধারণ মেথড যা নির্দিষ্ট কাজ সম্পন্ন করে এবং প্রয়োজন অনুযায়ী মান রিটার্ন করে।

উদাহরণ:

public Integer multiply(Integer a, Integer b) {
    return a * b;
}

Static মেথড: Static মেথড ক্লাসের সরাসরি অংশ হিসেবে থাকে, এবং এই মেথড কল করার জন্য ক্লাসের অবজেক্ট তৈরি করতে হয় না। Static মেথড সাধারণত ক্লাসের সাধারণ কার্যক্রম সম্পন্ন করতে ব্যবহৃত হয়।

উদাহরণ:

public class MathUtils {
    public static Integer add(Integer a, Integer b) {
        return a + b;
    }
}

// কল করার সময়
Integer result = MathUtils.add(5, 10);

Getter এবং Setter মেথড: Getter এবং Setter মেথড সাধারণত ক্লাসের প্রোপার্টির মান পাওয়া এবং সেট করার জন্য ব্যবহৃত হয়। Getter মেথডে সাধারণত প্রোপার্টির মান রিটার্ন করা হয়, এবং Setter মেথডে প্রোপার্টির মান পরিবর্তন করা হয়।

উদাহরণ:

এখানে getColor() এবং setColor() মেথডগুলো color প্রোপার্টির মান গ্রহণ এবং সেট করতে ব্যবহৃত হয়।

public class Car {
    private String color;

    // Getter মেথড
    public String getColor() {
        return color;
    }

    // Setter মেথড
    public void setColor(String color) {
        this.color = color;
    }
}

Void মেথড: Void মেথডে কোনো রিটার্ন টাইপ থাকে না এবং এটি সাধারণত কার্যক্রম সম্পন্ন করার জন্য ব্যবহৃত হয়।

উদাহরণ:

public void displayMessage(String message) {
    System.debug(message);
}

উদাহরণ: Apex মেথড ব্যবহার

public class Calculator {
    // Addition মেথড
    public Integer add(Integer a, Integer b) {
        return a + b;
    }

    // Subtraction মেথড
    public Integer subtract(Integer a, Integer b) {
        return a - b;
    }

    // Display মেথড (Void মেথড)
    public void displayResult(Integer result) {
        System.debug('Result: ' + result);
    }
}

// মেথড কল করার সময়
Calculator calc = new Calculator();
Integer sum = calc.add(10, 5);
calc.displayResult(sum);

উপরে Calculator ক্লাসে তিনটি মেথড আছে: add(), subtract(), এবং displayResult()add() মেথড দুটি মানের যোগফল রিটার্ন করে, subtract() মেথড বিয়োগফল রিটার্ন করে, এবং displayResult() মেথড একটি বার্তা প্রদর্শন করে।


সংক্ষেপে Apex Methods

  • Apex Methods হলো কোডের একটি ব্লক, যা নির্দিষ্ট কাজ সম্পন্ন করতে ব্যবহৃত হয়।
  • মেথডে সাধারণত অ্যাক্সেস মডিফায়ার, রিটার্ন টাইপ, এবং প্যারামিটার থাকে।
  • Apex মেথড বিভিন্ন ধরনের কার্যক্রমে ব্যবহৃত হয়, যেমন- গাণিতিক কাজ, প্রোপার্টি সেটিং, মেসেজ ডিসপ্লে, ইত্যাদি।

Apex মেথডস ব্যবহার করে কোডের কার্যক্রম আরও মডুলার এবং পুনঃব্যবহারযোগ্য করা যায়, যা প্রোগ্রামিং লজিক এবং কাঠামোকে সুসংগঠিত করতে সহায়ক।

common.content_added_by

মেথড ডিক্লারেশন এবং ডেফিনিশন

192
192

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

মেথড ডিক্লারেশন এবং ডেফিনিশন এর অর্থ

মেথড ডিক্লারেশন (Method Declaration): মেথড ডিক্লারেশন বলতে মেথডের নাম, এর রিটার্ন টাইপ, এবং প্যারামিটারগুলোর ডেটা টাইপ নির্ধারণ করা বোঝায়। এটি মূলত মেথডের অবকাঠামো তৈরি করে।

মেথড ডেফিনিশন (Method Definition): মেথড ডেফিনিশন বলতে মেথডের জন্য কার্যকরী কোড ব্লক বা বডি তৈরি করা বোঝায়, যেখানে মেথড কী কাজ করবে তা নির্ধারণ করা হয়।


Apex এ মেথড ডিক্লারেশন এবং ডেফিনিশনের সিনট্যাক্স

Apex-এ মেথড ডিক্লারেশন এবং ডেফিনিশনের সাধারণ গঠন নিচে দেখানো হলো:

// মেথড ডিক্লারেশন এবং ডেফিনিশন
public returnType methodName(parameters) {
    // মেথডের কার্যকরী অংশ বা বডি
}
  • Access Modifier: মেথডের অ্যাক্সেস নিয়ন্ত্রণ করতে ব্যবহার করা হয় (public, private, protected, global)।
  • Return Type: মেথড কোন ধরনের মান রিটার্ন করবে, সেটি উল্লেখ করা হয়। যদি কোনো মান রিটার্ন না করে, তাহলে void ব্যবহার করা হয়।
  • Method Name: মেথডের নাম, যা সাধারণত ক্যামেল কেসে লিখা হয়।
  • Parameters: মেথডে প্রয়োজনীয় ইনপুট ভ্যালুগুলো নির্ধারণ করে।

উদাহরণ: মেথড ডিক্লারেশন এবং ডেফিনিশন

নিচে মেথড ডিক্লারেশন এবং ডেফিনিশনের কয়েকটি উদাহরণ দেয়া হলো:

উদাহরণ ১: একটি void টাইপের মেথড যা কিছু রিটার্ন করে না

public void greetUser() {
    System.debug('Hello, User!');
}
  • Access Modifier: public, তাই এটি বাইরে থেকে অ্যাক্সেস করা যাবে।
  • Return Type: void, কারণ এটি কোনো মান রিটার্ন করছে না।
  • Method Name: greetUser
  • Parameters: নেই

উদাহরণ ২: একটি মেথড যা Integer টাইপের মান রিটার্ন করে

public Integer addNumbers(Integer a, Integer b) {
    Integer sum = a + b;
    return sum;
}
  • Return Type: Integer, কারণ এটি একটি পূর্ণসংখ্যা রিটার্ন করছে।
  • Parameters: Integer a, Integer b
  • Method Body: a এবং b যোগফল হিসেবে sum ভেরিয়েবলে সংরক্ষণ করে এবং সেটি রিটার্ন করে।

উদাহরণ ৩: একটি মেথড যেখানে String ইনপুট প্যারামিটার নেয় এবং মেসেজ রিটার্ন করে

public String welcomeMessage(String name) {
    return 'Welcome, ' + name + '!';
}
  • Return Type: String, কারণ এটি একটি স্ট্রিং মান রিটার্ন করছে।
  • Parameters: String name
  • Method Body: name ইনপুট নিয়ে একটি স্বাগতম মেসেজ রিটার্ন করছে।

মেথড ডিক্লারেশন এবং ডেফিনিশনের ব্যবহার

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

public class Calculator {
    // মেথড যা দুইটি সংখ্যা যোগ করে
    public Integer add(Integer a, Integer b) {
        return a + b;
    }

    // মেথড যা দুইটি সংখ্যা বিয়োগ করে
    public Integer subtract(Integer a, Integer b) {
        return a - b;
    }

    // মেথড যা দুইটি সংখ্যা গুণ করে
    public Integer multiply(Integer a, Integer b) {
        return a * b;
    }

    // মেথড যা দুইটি সংখ্যার ভাগফল প্রদান করে
    public Double divide(Double a, Double b) {
        if (b != 0) {
            return a / b;
        } else {
            System.debug('Division by zero is not allowed');
            return null;
        }
    }
}

এই উদাহরণে:

  • add, subtract, multiply, এবং divide মেথডগুলো বিভিন্ন ধরনের গাণিতিক কাজ সম্পন্ন করে।
  • divide মেথডে শূন্য দিয়ে ভাগ করার ক্ষেত্রে একটি শর্ত যোগ করা হয়েছে, যাতে কোনো ত্রুটি না হয়।

সংক্ষেপে:

  • মেথড ডিক্লারেশন: মেথডের নাম, রিটার্ন টাইপ, এবং প্যারামিটার নির্ধারণ করা হয়।
  • মেথড ডেফিনিশন: মেথড কী কাজ করবে তা নির্ধারণ করা হয় এবং কার্যকরী কোড লেখা হয়।
  • মেথড ডিক্লারেশন ও ডেফিনিশন প্রোগ্রামে কার্যকরী ব্লক তৈরি এবং পুনরায় ব্যবহারযোগ্য কোড সংরক্ষণে সহায়ক।

এই পদ্ধতিতে Apex এ মেথড তৈরি ও ব্যবহারের মাধ্যমে কোডকে আরও সুসংগঠিত এবং কার্যকরী করা যায়।

common.content_added_by

মেথড ওভারলোডিং এবং রিটার্ন টাইপস

211
211

Method Overloading এবং Return Types Apex-এ মেথডের কার্যক্ষমতা এবং বহুমুখীতা বাড়ায়। Method Overloading একটি ক্লাসে একই নামে একাধিক মেথড তৈরি করার সুযোগ দেয়, যেখানে বিভিন্ন সংখ্যক বা প্রকারের প্যারামিটার ব্যবহার করা হয়। Return Types মেথডটি যে ধরনের মান রিটার্ন করবে তা নির্দেশ করে।


Method Overloading

Method Overloading হলো একই ক্লাসে একই নামে একাধিক মেথড ডিক্লার করার একটি প্রক্রিয়া, যেখানে প্রত্যেক মেথডের প্যারামিটার সংখ্যা বা প্রকার ভিন্ন হতে হবে। এর মাধ্যমে ডেভেলপাররা কোডের পুনঃব্যবহারযোগ্যতা বাড়াতে পারেন, কারণ একই মেথড নাম ব্যবহার করে বিভিন্ন ধরণের কাজ সম্পাদন করা যায়।

Method Overloading-এর বৈশিষ্ট্য

  1. প্যারামিটারের সংখ্যা বা প্রকার ভিন্ন হতে হবে: মেথড ওভারলোড করার জন্য প্যারামিটারের সংখ্যা বা প্রকার আলাদা হতে হবে।
  2. একই ক্লাসে ডিক্লার করা হয়: ওভারলোড মেথডগুলো একই ক্লাসে থাকতে হয়।
  3. মেথডের কাজ বিভিন্ন হতে পারে: প্রতিটি ওভারলোড মেথড বিভিন্ন ধরনের কাজ সম্পন্ন করতে পারে।

Syntax:

public class MathOperations {
    // প্রথম মেথড: দুইটি পূর্ণসংখ্যার যোগফল প্রদান করে
    public Integer add(Integer a, Integer b) {
        return a + b;
    }

    // ওভারলোড মেথড: তিনটি পূর্ণসংখ্যার যোগফল প্রদান করে
    public Integer add(Integer a, Integer b, Integer c) {
        return a + b + c;
    }
}

ব্যবহার:

MathOperations math = new MathOperations();
Integer sum1 = math.add(10, 20);        // দুইটি প্যারামিটার
Integer sum2 = math.add(10, 20, 30);    // তিনটি প্যারামিটার

উপরের উদাহরণে, add() মেথড দুটি ভিন্ন সংস্করণে ডিক্লার করা হয়েছে। একটিতে দুইটি প্যারামিটার গ্রহণ করা হয়েছে, অন্যটিতে তিনটি প্যারামিটার। এটি Method Overloading-এর একটি সাধারণ উদাহরণ।


Return Types

Return Type হলো মেথডটি যে ধরনের মান রিটার্ন করবে তার নির্দেশনা। Return Type মেথডের প্রধান অংশ এবং এটি মেথডের কাজ নির্ধারণ করতে সহায়ক।

Apex-এ বিভিন্ন ধরনের Return Type ব্যবহার করা যায়, যেমন:

  1. Primitive Types: Integer, Double, Boolean, String ইত্যাদি প্রিমিটিভ টাইপ রিটার্ন করা যায়।
  2. Collections: List, Set, এবং Map টাইপ রিটার্ন করা যায়।
  3. Custom Types: কোনো কাস্টম ক্লাস বা অবজেক্ট টাইপ রিটার্ন করা যায়।
  4. Void: কোনো মান রিটার্ন না করলে void ব্যবহার করা হয়।

Syntax:

public ReturnType methodName(parameters) {
    // Method code
    return value;
}

উদাহরণ:

public class MathOperations {
    // Integer রিটার্ন টাইপ
    public Integer add(Integer a, Integer b) {
        return a + b;
    }

    // String রিটার্ন টাইপ
    public String getGreeting(String name) {
        return 'Hello, ' + name;
    }

    // void রিটার্ন টাইপ
    public void displayMessage(String message) {
        System.debug(message);
    }
}

উপরের উদাহরণে, add() মেথডটি Integer রিটার্ন করে, getGreeting() মেথডটি String রিটার্ন করে, এবং displayMessage() মেথডটি কিছু রিটার্ন না করে void রিটার্ন টাইপ ব্যবহার করেছে।


Method Overloading এবং Return Types-এর পার্থক্য

বৈশিষ্ট্যMethod OverloadingReturn Types
কাজের ধরনএকই নামে ভিন্ন প্যারামিটার নিয়ে মেথড তৈরি করামেথডটি কি ধরনের মান রিটার্ন করবে তা নির্ধারণ করে
কোডের পুনঃব্যবহারকোডের পুনঃব্যবহার বাড়ায়মেথডের মান ব্যবহারের ধরন নির্ধারণ করে
উদাহরণadd(Integer a, Integer b) এবং add(Integer a, Integer b, Integer c)Integer, String, List, void ইত্যাদি

সংক্ষেপে Method Overloading এবং Return Types

  • Method Overloading: একই নামে ভিন্ন প্যারামিটার দিয়ে একাধিক মেথড তৈরি করা।
  • Return Types: মেথডটি যে ধরনের মান রিটার্ন করবে তা নির্ধারণ করা।

Method Overloading এবং Return Types ব্যবহার করে Apex-এ কার্যকরী ও পুনঃব্যবহারযোগ্য কোড তৈরি করা যায়, যা প্রোগ্রামিংয়ের গুণগত মান বৃদ্ধি করে।

common.content_added_by

Static এবং Non-static Methods

257
257

Apex-এ Static এবং Non-static Methods প্রোগ্রামিংয়ে গুরুত্বপূর্ণ ভূমিকা পালন করে। এই মেথডগুলো একটি ক্লাসের মধ্যে বিভিন্নভাবে ব্যবহার করা হয় এবং তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে। নিচে Static এবং Non-static Methods নিয়ে বিস্তারিত আলোচনা করা হলো।


Static Method

Static Method হলো এমন একটি মেথড, যা ক্লাসের ইনস্ট্যান্স বা অবজেক্ট তৈরি না করেই সরাসরি ক্লাসের মাধ্যমে অ্যাক্সেস করা যায়। Static মেথডের জন্য static কিওয়ার্ড ব্যবহার করতে হয়।

Static Method এর বৈশিষ্ট্য:

  1. Direct Access: ক্লাসের মাধ্যমে সরাসরি অ্যাক্সেস করা যায়, অবজেক্ট তৈরি করতে হয় না।
  2. Shared Across Instances: Static মেথড ক্লাসের সকল ইনস্ট্যান্সের জন্য শেয়ার করা হয়।
  3. Instance Variables Access: Static মেথড সরাসরি নন-স্ট্যাটিক বা ইনস্ট্যান্স ভেরিয়েবল অ্যাক্সেস করতে পারে না, তবে শুধুমাত্র Static ভেরিয়েবল ব্যবহার করতে পারে।

Static Method এর উদাহরণ:

public class MathOperations {
    // Static method
    public static Integer add(Integer a, Integer b) {
        return a + b;
    }
}

// Static method কল করা
Integer sum = MathOperations.add(5, 10);
System.debug('Sum: ' + sum); // Output: Sum: 15
  • এখানে add মেথডটি Static, তাই এটি MathOperations ক্লাসের ইনস্ট্যান্স তৈরি না করেই সরাসরি ক্লাসের মাধ্যমে কল করা হয়েছে।

Non-static Method

Non-static Method হলো এমন একটি মেথড, যা ক্লাসের অবজেক্ট তৈরি করে তারপর কল করতে হয়। Non-static মেথডের জন্য static কিওয়ার্ড ব্যবহার করতে হয় না।

Non-static Method এর বৈশিষ্ট্য:

  1. Instance Access Required: Non-static মেথড কল করার জন্য ক্লাসের একটি অবজেক্ট তৈরি করতে হয়।
  2. Instance Variables Access: Non-static মেথড ক্লাসের ইনস্ট্যান্স ভেরিয়েবল এবং অন্য Non-static মেথড সরাসরি অ্যাক্সেস করতে পারে।
  3. Unique for Each Instance: Non-static মেথড প্রতিটি ইনস্ট্যান্সের জন্য আলাদা থাকে।

Non-static Method এর উদাহরণ:

public class MathOperations {
    // Non-static method
    public Integer multiply(Integer a, Integer b) {
        return a * b;
    }
}

// Non-static method কল করা
MathOperations mathOp = new MathOperations();
Integer product = mathOp.multiply(5, 10);
System.debug('Product: ' + product); // Output: Product: 50
  • এখানে multiply মেথডটি Non-static, তাই এটি কল করতে MathOperations ক্লাসের একটি অবজেক্ট mathOp তৈরি করা হয়েছে।

Static এবং Non-static Methods এর মধ্যে পার্থক্য

বৈশিষ্ট্যStatic MethodNon-static Method
অ্যাক্সেস পদ্ধতিসরাসরি ক্লাসের মাধ্যমে কল করা যায়অবজেক্ট তৈরি করে কল করতে হয়
শেয়ারিংক্লাসের সব ইনস্ট্যান্সে শেয়ার করা হয়প্রতিটি ইনস্ট্যান্সে আলাদা
অ্যাক্সেসStatic ভেরিয়েবল এবং Static মেথড অ্যাক্সেস করতে পারেNon-static ভেরিয়েবল এবং মেথড অ্যাক্সেস করতে পারে
প্রয়োজনীয়তাসাধারণত যেখানে অবজেক্টের প্রয়োজন হয় নাযেখানে অবজেক্টের নির্দিষ্ট ডেটার প্রয়োজন

উদাহরণ: Static এবং Non-static Method এর সংমিশ্রণ

নিচের উদাহরণে MathOperations ক্লাসে একটি Static মেথড এবং একটি Non-static মেথড সংযুক্ত করা হয়েছে, যেখানে বিভিন্ন গণিত অপারেশন সম্পন্ন করা হয়েছে।

public class MathOperations {
    // Static method
    public static Integer add(Integer a, Integer b) {
        return a + b;
    }

    // Non-static method
    public Integer subtract(Integer a, Integer b) {
        return a - b;
    }
}

// Static method কল করা
Integer sum = MathOperations.add(20, 10); // সরাসরি কল করা হয়েছে
System.debug('Sum: ' + sum); // Output: Sum: 30

// Non-static method কল করা
MathOperations mathOp = new MathOperations();
Integer difference = mathOp.subtract(20, 10); // অবজেক্ট তৈরি করে কল করা হয়েছে
System.debug('Difference: ' + difference); // Output: Difference: 10
  • Static Method add: ক্লাসের নামের মাধ্যমে সরাসরি কল করা হয়েছে।
  • Non-static Method subtract: অবজেক্ট mathOp তৈরি করে কল করা হয়েছে।

কখন Static Method এবং Non-static Method ব্যবহার করবেন?

Static Method ব্যবহার করবেন যখন:

  • মেথডটি কোনো নির্দিষ্ট অবজেক্টের ডেটার উপর নির্ভর করে না।
  • মেথডটি ক্লাস-লেভেলের কার্যক্রম পরিচালনা করে।
  • সাধারণ ইউটিলিটি ফাংশন বা গণিত ফাংশন তৈরি করতে চান, যেমন add, multiply, ইত্যাদি।

Non-static Method ব্যবহার করবেন যখন:

  • মেথডটি ক্লাসের নির্দিষ্ট ডেটা বা ইনস্ট্যান্সের উপর নির্ভর করে।
  • মেথডটি অবজেক্টের ডেটার উপর নির্দিষ্ট কার্যক্রম সম্পন্ন করে।
  • কোনো ক্লাসের ইনস্ট্যান্স ভিত্তিক কাজ সম্পন্ন করতে চান, যেমন displayInfo, calculateTotal ইত্যাদি।

সংক্ষেপে:

  • Static Method সরাসরি ক্লাসের মাধ্যমে অ্যাক্সেসযোগ্য এবং সাধারণত ইউটিলিটি ফাংশন হিসেবে ব্যবহৃত হয়।
  • Non-static Method নির্দিষ্ট অবজেক্টের উপর নির্ভরশীল এবং প্রতিটি ইনস্ট্যান্সের জন্য আলাদা থাকে।

এইভাবে, Apex-এ Static এবং Non-static Method ব্যবহার করে কার্যকরী ও সুসংগঠিত কোডিং করা সম্ভব।

common.content_added_by

Recursive Methods এর ব্যবহার

244
244

Recursive Methods হলো এমন মেথড যা নিজেকে পুনরায় কল করে। এটি সাধারণত এমন সমস্যাগুলি সমাধান করতে ব্যবহৃত হয়, যা একই ধরনের উপ-সমস্যায় ভাগ করা যায়। Recursive মেথড সাধারণত কিছু নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত পুনরায় নিজেকে কল করে।

Recursive Method-এর বৈশিষ্ট্য

  1. বেস কেস (Base Case): Recursive মেথডে একটি বেস কেস থাকতে হয়, যা শর্ত পূরণ হলে মেথডটি পুনরায় কল হওয়া বন্ধ করে। এটি একটি স্টপিং কন্ডিশন হিসেবে কাজ করে।
  2. Recursive Call: মেথডটি নিজেকে পুনরায় কল করে এবং প্রত্যেকবার একই ধরনের কাজ সম্পন্ন করে।

Recursive মেথডের ব্যবহার এবং উদাহরণ

Recursive মেথডের কিছু সাধারণ ব্যবহার হলো ফ্যাক্টোরিয়াল, ফিবোনাচি সিরিজ এবং অন্যান্য সমস্যা, যা উপ-সমস্যায় ভাগ করে সমাধান করা যায়।

উদাহরণ ১: ফ্যাক্টোরিয়াল নির্ণয়

ফ্যাক্টোরিয়াল হলো একটি সংখ্যা এবং তার পূর্ববর্তী সমস্ত সংখ্যার গুণফল। যেমন, ৫ এর ফ্যাক্টোরিয়াল (5!) হলো 5 x 4 x 3 x 2 x 1 = 120।

Recursive মেথড দিয়ে ফ্যাক্টোরিয়াল নির্ণয়:

public class FactorialCalculator {
    public Integer factorial(Integer n) {
        // বেস কেস: n যদি 1 হয়, তাহলে 1 রিটার্ন করবে
        if (n <= 1) {
            return 1;
        }
        // Recursive Call: n * factorial(n - 1)
        return n * factorial(n - 1);
    }
}

// ব্যবহার
FactorialCalculator calc = new FactorialCalculator();
Integer result = calc.factorial(5); // result = 120
System.debug('Factorial of 5: ' + result);

এখানে factorial() মেথড নিজেকে পুনরায় কল করে যতক্ষণ না n 1 বা এর কম হয়। যখন n 1 হয়, মেথডটি 1 রিটার্ন করে এবং Recursive কল শেষ হয়।


উদাহরণ ২: ফিবোনাচি সিরিজ নির্ণয়

ফিবোনাচি সিরিজ হলো এমন একটি সংখ্যার সিরিজ যেখানে প্রতিটি সংখ্যা তার আগের দুটি সংখ্যার যোগফল। যেমন: 0, 1, 1, 2, 3, 5, 8,...

Recursive মেথড দিয়ে ফিবোনাচি সিরিজের নির্দিষ্ট স্থান নির্ণয়:

public class FibonacciCalculator {
    public Integer fibonacci(Integer n) {
        // বেস কেস: n যদি 0 বা 1 হয়
        if (n == 0) {
            return 0;
        } else if (n == 1) {
            return 1;
        }
        // Recursive Call: fibonacci(n - 1) + fibonacci(n - 2)
        return fibonacci(n - 1) + fibonacci(n - 2);
    }
}

// ব্যবহার
FibonacciCalculator fibCalc = new FibonacciCalculator();
Integer fibResult = fibCalc.fibonacci(6); // result = 8
System.debug('6th Fibonacci number: ' + fibResult);

এখানে fibonacci() মেথড নিজেকে পুনরায় কল করে এবং আগের দুটি সংখ্যার যোগফল রিটার্ন করে। যখন n 0 বা 1 হয়, তখন Recursive কল বন্ধ হয় এবং বেস কেস অনুযায়ী রিটার্ন করা হয়।


Recursive Methods-এর ব্যবহার

  1. সমস্যার উপ-সমস্যায় বিভাজন: এমন সমস্যাগুলোর জন্য Recursive মেথড কার্যকর, যা ছোট ছোট উপ-সমস্যায় ভাগ করা যায়।
  2. স্ট্রাকচারাল ডেটা প্রসেসিং: ট্রি এবং গ্রাফের মতো ডেটা স্ট্রাকচার প্রসেস করতে Recursive মেথড ব্যবহার করা যায়।
  3. গাণিতিক সমস্যার সমাধান: যেমন ফ্যাক্টোরিয়াল, ফিবোনাচি সিরিজ ইত্যাদি সমস্যা সমাধানে Recursive মেথড কার্যকর।

Recursive Methods-এর সুবিধা এবং সীমাবদ্ধতা

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

সংক্ষেপে

  • Recursive Method: নিজেকে পুনরায় কল করে সমস্যার সমাধান করে।
  • Base Case: স্টপিং কন্ডিশন যা Recursive কল বন্ধ করে।
  • Recursive Call: মেথডের নিজেকে পুনরায় কল করার প্রক্রিয়া।

Recursive Methods ব্যবহার করে কার্যকরী ও পুনঃব্যবহারযোগ্য কোড তৈরি করা যায়, যা জটিল সমস্যাগুলোর সমাধান সহজ করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion