6. වස්තු පාදක ක්‍රමලේඛනය (OOP)

පාඩම 6.1: ක්ලාස් සහ ඔබ්ජෙක්ට් (Classes and Objects)

OOP යනු හුදෙක් කේත ලියන ක්‍රමයක් පමණක් නොව, ගැටළු දෙස බලන ආකාරයකි. මෙහිදී, අපි සැබෑ ලෝකයේ ඇති "වස්තූන්" (objects) ලෙස අපේ වැඩසටහන ගොඩනගමු.

ක්ලාස් සහ ඔබ්ජෙක්ට් (Classes and Objects)

  • **ක්ලාස් (Class):** මෙය "වස්තුවක" නිර්මාණ සැලැස්මයි (blueprint). එය මෝටර් රථයක තිබිය යුතු දත්ත (වර්ණය, වෙළඳ නාමය) සහ හැසිරීම් (start(), brake()) මොනවාදැයි නිර්වචනය කරයි.
  • **ඔබ්ජෙක්ට් (Object):** මෙය එම සැලැස්මෙන් නිර්මාණය කරන ලද සැබෑ වස්තුවයි (instance). ඔබේ රතු පැහැති Toyota රථය සහ මගේ නිල් පැහැති Honda රථය, "මෝටර් රථ" ක්ලාස් එකෙන් නිර්මාණය කළ ඔබ්ජෙක්ට් දෙකකි.

Python හි ක්ලාස් එකක් නිර්මාණය කිරීම

අපි Dog (බල්ලා) නමින් සරල ක්ලාස් එකක් නිර්මාණය කරමු.

class Dog:
    # __init__ යනු constructor method එකයි.
    def __init__(self, name, age, breed):
        # Attributes (ඔබ්ජෙක්ට් එකට අදාළ දත්ත)
        self.name = name
        self.age = age
        self.breed = breed
        print(f"{self.name} නමැති {self.breed} වර්ගයේ බල්ලෙක් නිර්මාණය විය.")

    # Method (ඔබ්ජෙක්ට් එකේ හැසිරීමක්)
    def bark(self):
        print(f"{self.name} මෙසේ බුරයි: Woof! Woof!")

    # තවත් method එකක්
    def celebrate_birthday(self):
        self.age = self.age + 1
        print(f"සුභ උපන්දිනයක් {self.name}! ඔබට දැන් වයස අවුරුදු {self.age}යි.")

ඔබ්ජෙක්ට් නිර්මාණය සහ භාවිතය

දැන් අපි ඉහත Dog ක්ලාස් එක (සැලැස්ම) භාවිතා කර, සැබෑ "බල්ලන්" (ඔබ්ජෙක්ට්) දෙදෙනෙක් නිර්මාණය කරමු.

# Dog ක්ලාස් එකෙන් ඔබ්ජෙක්ට් දෙකක් නිර්මාණය කිරීම
dog1 = Dog("Buddy", 3, "Golden Retriever")
dog2 = Dog("Lucy", 5, "German Shepherd")

ප්‍රතිඵලය:

Buddy නමැති Golden Retriever වර්ගයේ බල්ලෙක් නිර්මාණය විය.
Lucy නමැති German Shepherd වර්ගයේ බල්ලෙක් නිර්මාණය විය.

දැන් `dog1` සහ `dog2` යනු එකිනෙකට ස්වාධීන ඔබ්ජෙක්ට් දෙකකි.

Methods කැඳවීම:

dog1.bark()
dog2.celebrate_birthday()

ප්‍රතිඵලය:

Buddy මෙසේ බුරයි: Woof! Woof!
සුභ උපන්දිනයක් Lucy! ඔබට දැන් වයස අවුරුදු 6යි.

සුබ පැතුම්! 🎉

ඔබ මෙම Python ක්‍රමලේඛන පාඨමාලාව සාර්ථකව නිම කර ඇත. මෙය ඔබගේ ක්‍රමලේඛන ගමනේ විශිෂ්ට ආරම්භයකි. දැන් ඔබට වෙබ් සංවර්ධනය, දත්ත විද්‍යාව, හෝ ස්වයංක්‍රීයකරණය වැනි ක්ෂේත්‍ර ගවේෂණය කිරීම ආරම්භ කළ හැකිය.

ඔබේ Python ගමනට මගෙන් උණුසුම් සුබ පැතුම්! 🧑‍💻