Community project by students of the Faculty of Information Technology, University of Moratuwa, Sri Lanka.

ජාවා මූලිකාංග – Fundamentals of Java

අද කතා කරන්නේ ජාවා වල මූලිකම දේවල් ගැන.ඒ යටතේ
1. OO concepts
2. Classes and Interfaces
කියන සංකල්ප ගැන කතා කරන්න බලාපොරොත්තු වෙනවා.

1. OO (Object Orientation)
අපි මුලින්ම බලමු Object Oriented Programming (OOP) කියන්නේ මොකද්ද කියලා. OOP කියන සංකල්පය බිහිවෙන්න කලින් භාවිතා කලේ Structured Programming කියන සංකල්පය. ඊට පස්සේ තමයි මේ OOP කියන සංකල්පය බිහිවෙන්නේ. ඒකෙදී සරලව කිව්වොත් වෙන්නේ අපේ program එක Objects ගනනාවක එකතුවක් විදියට තමයි ක්‍රියා කරන්නේ. එක වෙන්නේ Object අතර වෙන අන්තර් සහභාගීත්වයෙන් (interaction). එක object එකක් තව object එකක තියන method එකක් call කරනවා. ඒ object එක වෙන object එකක method එකක් call කරනවා. මේ අකාරයට එක එක objects අතර අන්තර් සන්නිවේදනය සිද්ද වෙනවා.

හැම Object එකටම පොදු කරුණු 3ක් තියනවා
1. Identifier – එක object එකක් තවත් එකකින් වෙන්කර හඳුනාගැනීමට නමක් – name of the object.
2. Attributes – object එකට අදාල ලක්ෂණ – instance variables in that object.
3. Behaviors – object එකට කරන්න පුලුවන් වැඩ තියනවා – methods of that object.

OOP වල තියන මූලිකම කරුණු තමයි

1. Abstraction – මෙම සංකල්පය මගින් විස්තර කරන්නේ අපි ක්‍රමලේඛනය කිරීමට බලාපොරොත්තු වන වැඩසටහනට අදාල විස්තර පමණයි. අපිට අවශය්‍ය නොවන කරුණු ගැන අපි සැලකිලිමත් වෙන්නෑ. (Abstraction means to show only the necessary details to the client of the object.)

2. Encapsulation – අපේ ක්‍රමලේඛනයේ තිබෙන සමහර කොටස් අනවසරයෙන් වෙනස් කිර්‍රිම වැළක්වීම වගේ දෙයක් තමයි මේ තුළින් අපි බලාපොරොත්තු වෙන්නේ. ගොඩක් වෙලාවට මේ සඳහා අපි private variables භාවිතා කරමින් ඒවා වෙනස් කිරීම සඳහා getters and setters (Accesors/ Mutators) භාවිතා කරනවා.

3. Inheritance -අපි සැබෑ ලෝකයේ උදාහරණයක් සලකා බැලුවොත් දෙමාව්පියන්ගේ ගති ලක්ෂණ ළමයින්ට උරුම වෙනවා. ඒවගේ තමයි පරිගණක ක්‍රමලේඛනයේදී super class වල ගති ලක්ෂණ, subclasses/child classes වලට උරුම වෙනවා.

4. Polymorphism – එකම දේ ක්‍රම ගණනාවකින් තියෙන්න පුලුවන්. මේක යටතේ
Overloading
Overriding
Dynamic binding
කියන සංකල්ප හඳුන්වා දෙන්න පුලුවන්.

2. class
දැන් අපි බලමු Object එකක් කියන්නේ මොකද්ද කියන එක. Class එකකින් අපි හදන instance එකක් අපි Object එකක් කියලා හඳුන්වනවා. එතකොට නිතැතින්ම නැගෙන අනික් ප්‍රශ්ණය තමයි මොකක්ද මේ එකක් කියන්නේ කියන එක. Class එකක් කියන්නේ සරලවම කිවුවොත් හරියට අච්චුවක් වගේ.
අපි බ්ලොක් ගලක් object එකක් කියලා සැලකුවොත් බ්ලොක්ගල් හදන machine එක තමයි අපේ class එක වෙන්නේ. ඒ අච්චුවෙන් අපිට ඕනේ තරම් බ්ලොක්ගල් හදන්න පුලුවන්.හැබැයි ඒ හැම එකකම සමාන ලක්ෂණ සමුහයක් තියෙනවා.

නමුත් එකම class එකන් තැනු object වල  ඒ ලක්ෂණ  වලට  අදාල  values  වෙනස් .හැසිරීම එම අවස්ථාවට ගැලපෙන එක.සරලවම කුව්වොත් class එක කියන්න form  එකක් නම් object එක සම්පුරන කල form  එකකට සමානයි.මේක සිදුවෙන්නේ object එක implement කරල run කරන කොට.

class එකක structure එක තියෙන්නේ මෙහෙමයි.PIC
P – package declaration – මේ file එක තියෙන්නේ මොන folder එකේද
I – import statements – අපේ program එක run කරන්න ඕනේ වෙන අනික් class, methods තියෙන්නේ කොහෙද කියන එක
C – ‘class’ keyword + class body.

package test; // MyFileReader කියන class එක තියෙන්නේ test කියන folder එක ඇතුලේ

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

//BufferedReader,File,FileReader, etc..class තියෙන්නේ IO කියන package එක ඇතුලේ

class MyFileReader {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(new File(“abc.txt”)));
while (reader.ready()) {
System.out.println(reader.readLine());
}
reader.close();
}
}

OOP වල භාවිතා වෙන අනික් ප්‍රධානතම කරුණක් තමයි Interface කියන සංකල්පය. ජවා ක්‍රමලේඛන භාශාවේදී අපිට Multiple Inheritance ඒ කියන්නේ එක class එකකට Super Class කීපයකින් ගතිලක්ෂණ උරුමකර දෙන්න බෑ. එකකට තිබිය හැක්කේ එක Super Class එකක් පමණයි. නමුත් අපිට සියලුම දේවල් ඒ අකාරයට ගොඩනගන්න හැකියාවක් නෑ. මම සරළ උදාහරණයක් ගන්නම්
කුරුල්ලෝ වර්ග ගොඩක් ඉන්නවා. අපි වවුලා(Bat) කියන පක්ෂියා සැලකුවොත් ඌට පක්ශීන්ට(Bird) ආවේණික ගතිලක්ශණ වගේම ක්ශීරපායි සතුන්ට(Mammal) ආවේණික ගති ලක්ශණත් පිහිටා තිබෙනවා. ජාවා ක්‍රමලේඛණ භාෂාව සඳහා සහයෝගය නොදක්වන නිසා අපේ කියන එකට සහ කියන දෙකේම ගතිලක්ෂණ එකවර ලබාදෙන්න හැකියාවක් නෑ. එවැනි වෙලාවක අපිට interface එකක් පාවිච්චි කරන්න පුලුවන්.

class Bird{
……………….
}

interface Mammal{
…………………
}

class Bat extends Bird implements Mammal{
…………………..
}

The following two tabs change content below.

Thusitha Thilina Dayaratne

Latest posts by Thusitha Thilina Dayaratne (see all)

Leave a Reply

Your email address will not be published. Required fields are marked *