ক্লাস এবং অবজেক্ট

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) - সুইফট প্রোগ্রামিং (Swift Programming) - Computer Programming

760

Swift-এ ক্লাস এবং অবজেক্ট হলো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর মূল ধারণা। ক্লাস হলো একটি টেমপ্লেট বা ব্লুপ্রিন্ট, যার মাধ্যমে আমরা অবজেক্ট তৈরি করি। অবজেক্ট হলো সেই টেমপ্লেট থেকে তৈরি করা ইনস্ট্যান্স, যা ক্লাসের প্রোপার্টি এবং মেথড ব্যবহার করতে পারে। Swift-এ ক্লাস এবং অবজেক্ট ব্যবহার করে প্রোগ্রামকে আরও মডিউলার, পুনঃব্যবহারযোগ্য, এবং সুসংগতভাবে গঠন করা যায়।


১. ক্লাস কী?

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

ক্লাসের গঠন

class ClassName {
    // প্রোপার্টি
    var property1: Type
    var property2: Type
    
    // ইনিশিয়ালাইজার (Initializer)
    init(property1: Type, property2: Type) {
        self.property1 = property1
        self.property2 = property2
    }
    
    // মেথড
    func methodName() {
        // কার্যক্রম
    }
}
  • class: ক্লাস ডিফাইন করার জন্য ব্যবহার করা হয়।
  • প্রোপার্টি: ক্লাসের বৈশিষ্ট্য, যা সাধারণত ভেরিয়েবল বা কনস্ট্যান্ট হিসেবে থাকে।
  • মেথড: ক্লাসের কার্যক্রম, যা ফাংশন আকারে ডিফাইন করা হয়।
  • ইনিশিয়ালাইজার (init): ক্লাসের প্রোপার্টি ইনিশিয়ালাইজ করার জন্য ব্যবহৃত হয়।

২. একটি ক্লাস উদাহরণ

class Person {
    var name: String
    var age: Int
    
    // ইনিশিয়ালাইজার
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
    
    // মেথড
    func greet() {
        print("Hello, my name is \(name) and I am \(age) years old.")
    }
}
  • এখানে, Person ক্লাসটি দুটি প্রোপার্টি (name এবং age) এবং একটি মেথড (greet()) নিয়ে গঠিত।
  • ইনিশিয়ালাইজারটি ব্যবহার করে আমরা ক্লাসের প্রোপার্টি ইনিশিয়ালাইজ করতে পারি।

৩. অবজেক্ট কী?

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

অবজেক্ট তৈরি করা

let person1 = Person(name: "Alice", age: 25)
let person2 = Person(name: "Bob", age: 30)

// অবজেক্টের প্রোপার্টি অ্যাক্সেস করা
print(person1.name)  // Output: Alice
print(person2.age)   // Output: 30

// অবজেক্টের মেথড কল করা
person1.greet()  // Output: Hello, my name is Alice and I am 25 years old.
person2.greet()  // Output: Hello, my name is Bob and I am 30 years old.
  • person1 এবং person2 হলো Person ক্লাস থেকে তৈরি করা দুটি অবজেক্ট।
  • অবজেক্টের প্রোপার্টি এবং মেথড অ্যাক্সেস করে আমরা তাদের উপর নির্দিষ্ট কার্যক্রম পরিচালনা করতে পারি।

৪. ক্লাসের প্রোপার্টির ডিফল্ট মান এবং কনস্ট্যান্ট

ক্লাসের প্রোপার্টিতে ডিফল্ট মান দেওয়া যেতে পারে এবং চাইলে let ব্যবহার করে কনস্ট্যান্টও ডিফাইন করা যায়।

class Car {
    var brand: String = "Unknown"
    var model: String
    let wheels: Int = 4
    
    init(model: String) {
        self.model = model
    }
}

let myCar = Car(model: "Model S")
print(myCar.brand)  // Output: Unknown
print(myCar.wheels) // Output: 4
  • এখানে, brand প্রোপার্টির ডিফল্ট মান "Unknown" এবং wheels কনস্ট্যান্ট মান হিসেবে 4 ডিফাইন করা হয়েছে।

৫. মেথডে প্যারামিটার এবং রিটার্ন টাইপ

ক্লাসের মেথডগুলোতে প্যারামিটার এবং রিটার্ন টাইপ ব্যবহার করা যায়।

class Calculator {
    func add(_ a: Int, _ b: Int) -> Int {
        return a + b
    }
    
    func multiply(_ a: Int, _ b: Int) -> Int {
        return a * b
    }
}

let calc = Calculator()
let sum = calc.add(5, 3)         // Output: 8
let product = calc.multiply(4, 6) // Output: 24
  • এখানে, add এবং multiply নামের মেথড দুটি ইন্টিজার প্যারামিটার গ্রহণ করে এবং তাদের যোগফল ও গুণফল রিটার্ন করে।

৬. ইনহেরিটেন্স (Inheritance)

Swift-এ একটি ক্লাস অন্য একটি ক্লাস থেকে প্রোপার্টি এবং মেথড উত্তরাধিকারী হতে পারে। এটি ক্লাসের কার্যকারিতা বাড়াতে সাহায্য করে।

class Vehicle {
    var brand: String
    
    init(brand: String) {
        self.brand = brand
    }
    
    func start() {
        print("\(brand) is starting.")
    }
}

// Car ক্লাস Vehicle ক্লাস থেকে ইনহেরিট করছে
class Car: Vehicle {
    var model: String
    
    init(brand: String, model: String) {
        self.model = model
        super.init(brand: brand)
    }
    
    override func start() {
        print("\(brand) \(model) is starting.")
    }
}

let myCar = Car(brand: "Tesla", model: "Model 3")
myCar.start()  // Output: "Tesla Model 3 is starting."
  • এখানে Car ক্লাসটি Vehicle ক্লাস থেকে ইনহেরিট করেছে এবং এর মেথড start() ওভাররাইড করা হয়েছে।

৭. ক্লাস বনাম স্ট্রাকচার (Class vs. Struct)

Swift-এ ক্লাস এবং স্ট্রাকচারের মধ্যে কিছু পার্থক্য রয়েছে:

  • রেফারেন্স টাইপ: ক্লাস হলো রেফারেন্স টাইপ, অর্থাৎ ক্লাসের অবজেক্ট একাধিক ভেরিয়েবলে রেফারেন্স হিসেবে পাস করা হয়।
  • ইনহেরিটেন্স: স্ট্রাকচার ইনহেরিট করতে পারে না, কিন্তু ক্লাস করতে পারে।
  • ডি-ইনিশিয়ালাইজার: ক্লাসে ডি-ইনিশিয়ালাইজার থাকে, যা অবজেক্ট মেমোরি থেকে সরানোর আগে এক্সিকিউট হয়।

উপসংহার

Swift-এ ক্লাস এবং অবজেক্ট OOP (অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং)-এর গুরুত্বপূর্ণ অংশ, যা প্রোগ্রামকে আরও মডিউলার, পুনঃব্যবহারযোগ্য, এবং সুসংগতভাবে গঠন করতে সহায়ক।

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

Swift-এ ক্লাস ব্যবহার করে আমরা বড় প্রোগ্রাম সহজভাবে ডিজাইন এবং পরিচালনা করতে পারি।

Content added By
Promotion

Are you sure to start over?

Loading...