Wednesday, December 21, 2011

මොකද්ද මේ OOP කියන්නේ ?


OOP එහෙමත් නැත්නම් Object Oriented Programming කියන්නේ අපි ලියන Program ලේසි කරගන්න ආපු ක්‍රමයක්. අපි  Program එකක් කෝඩ් කරන විට සමහර මෙතඩ් නැත්නම් Functions නැවත නැවත භාවිතා කරන අවස්ථා තියෙනවා නේද ? නැත්නම් එකම වගේ මෙතඩ් තියෙන Program නැවත නැවත කෝඩ් කරන තැන් තියෙනවා නේ ද ? ඉතින් මේ ගැටලුව මග හරින්න තමයි අපි OOP කියන Concept එක භාවිතා කරන්නේ.
                        OOP Concept එකේ ප්‍රධාන වශයෙන් File වර්ග 2 ක් භාවිතා වෙනවා, ඒ Header File එක හා Source File. ඇයි මේ File  වර්ග 2 ක් ? අපි අපේ Program එකේ තියෙන Variables හා Methods වල නම් වෙනමත් ඒ මෙතඩ් implementation එහෙමත් නැත්නම් ඒ Methods වල කෝඩින් වෙනමත් file එකක තියා ගන්නවා. ඇයි අපි එහෙම කරන්නේ ? හිතන්න අපිට අලුත්න් Variable එකක් Add කරන්න උනා කියල, එතකොට අපේ Variables වල නම් තියෙන File එක විතරක් Edit කරල අපිට අලුත් Variable එක Add කරගන්න පුලුවන්.
            අපි Header File එකට දාන්නේ Variables වල නම් හා අපි භාවිතා කරන Methods වල නම් වතරයි. Header File එකෙන් එක එක කොටස් වලට බොදෙනවා ඒ Public, Private etc. අපි Private කියන කොටසේ Variables වල නම් ද Public කොටසේ Methods වල නම් ද භාවිතා කරනවා
පහත දැක්වෙන්නේ එලෙස Code කල C++ Header File එකක Coding
#pragma once
#include<iostream>
using namespace std;
class Student
{
private:
                int ditNo;
                char name[20];
                double marks[3];
public:
                Student (int pditNo,char name[]); //constructer
                void assignMarks (double marks1,double marks2,double marks3);  //functions
                double calcAvg();
                void print()        
};

ඊලගට Source File එකේ අපි භාවිතා කරන Methods වල Implementation
පහත දැක්වෙන් නේ ඉහත් භාවිතා කල Headers File එකේ Source File එකේ Coding

#include "StdAfx.h"
#include "Student.h"
#include <cstring>
Student :: Student(int pditNo, char pname[]) {
                ditNo = pditNo;
                strcpy(name,pname);
}
void Student :: assignMarks(double marks1,double marks2,double marks3) {
                marks[0]= marks1;
                marks[1]= marks2;
                marks[2]= marks3;
}
double Student :: calcAvg() {
                double avg;
                avg = ((marks[0]+marks[1]+marks[2])/3);
                return avg;
}
void Student :: print() {
                cout<<"DIT No : "<<ditNo<<endl;
                cout<<"Name : "<<name<<endl;
}
  

No comments:

Post a Comment