Module 1: Java යනු කුමක්ද?


Java හි මූලික කරුණු, එහි විශේෂාංග සහ භාවිතයන් තේරුම් ගැනීම.


Java යනු object-oriented, class-based programming language එකකි. එය හැකි තරම් implementation dependencies අඩු කිරීමට නිර්මාණය කර ඇත. Java භාවිතා කරන්නේ web applications, Android apps, server-side applications සහ තවත් බොහෝ දේ සඳහාය


Java හි ප්‍රධාන විශේෂාංග:


• Platform independence (Write Once, Run Anywhere)

• Object-Oriented

• සරල හා ඉගෙන ගැනීමට පහසු වීම

• ආරක්ෂිත වීම (bytecode verification වැනි විශේෂාංග)

• Standard library පැවතීම.



Java භාවිතකරනුයේ ඇයි ?


Backend development, Android apps, cloud systems, big data tools සහ තවත් බොහෝ දේ සඳහා භාවිතා වේ.



Lesson 1.2: Java Development Environment සකස් කිරීම


ඉලක්කය: Java ස්ථාපනය කර Java code ලියා ගැනීමට IDE එකක් සකස් කිරීම.




Oracle JDK website එකට යන්න.

ඔබගේ operating system (Windows, macOS, හෝ Linux) සඳහා ගැලපෙන JDK එක download කරන්න.

website එකේ ඇති instructions අනුගමනය කර JDK ස්ථාපනය කරන්න.




Recommended  IDE : IntelliJ IDEA, Eclipse, හෝ Visual Studio Code.


IntelliJ IDEA ගැන සලකමු,


IntelliJ IDEA download කර ස්ථාපනය කරන්න.

IntelliJ IDEA විවෘත කර new project එකක් සාදන්න.

Java project type එක තෝරන්න.

setup කිරීමේදී JDK link කරන්න.




ඔබගේ IDE විවෘත කර new Java file එකක් සාදන්න, එය HelloWorld.java ලෙස නම් කරන්න.

"Hello, World!" console එකට print කිරීමට පහත code එක ලියන්න:


public class HelloWorld {

public static void main(String[] args) {

        System.out.println("Hello, World!");

}

}


දැන් program එක run කරන්න. ඔබ "Hello, World!" console එකේ print වන ආකාරය දකිනු ඇත.




Module 2: මූලික Java Syntax



Lesson 2.1: Variables සහ Data Types


Variables භාවිතා කරන්නේ කෙසේද සහ Java හි විවිධ data types තේරුම් ගැනීම මෙහිදී අද්‍යනය කරමු


Variables සහ Data Types:


Variables භාවිතා කරන්නේ දත්ත ගබඩා කිරීමටයි. සෑම variable එකකටම type එකක් ඇති අතර එය එයට ගබඩා කළ හැකි දත්ත වර්ගය තීරණය කරයි.



මූලික Data Types:


int (පූර්ණ සංඛ්‍යා)

double (දශම සංඛ්‍යා)

char (තනි සංකේතයක්)

boolean (true or false)



උදාහරණය:


int age = 25;

double price = 19.99;

char grade = 'A';

boolean isJavaFun = true;


ක්‍රියාකාරකම : 

ඔබගේ නම (String), වයස (int), උස (double), සහ programming කැමතිද යන්න (boolean) සඳහා variables declare කරන්න. ඒවා System.out.println() භාවිතා කර print කරන්න.



Lesson 2.2: Java හි Operators

Calculations සහ comparisons සඳහා operators භාවිතා කරන්නේ කෙසේද යන්න තේරුම් ගැනීම මෙහිදී අද්‍යනය කරමු.



+, -, *, /, % (modulus)



උදාහරණය:

int sum = 5 + 3;  // sum = 8

int product = 4 * 2;  // product = 8





==, !=, >, <, >=, <=


උදාහරණය:

boolean isEqual = (5 == 5);  // true

boolean isGreater = (10 > 5);  // true




&& (AND)

|| (OR)

! (NOT)


උදාහරණය:

boolean result = (5 > 3) && (8 > 6);  // true



ක්‍රියාකාරකම :

 rectangle එකක ප්රදේශය ගණනය කර එහි ප්රතිඵලය 100 ට වඩා විශාලදැයි පරීක්ෂා කරන program එකක් ලියන්න.



Lesson 2.3: Control Flow Statements


Program එකක execution flow පාලනය කරන්නේ කෙසේද යන්න ඉගෙන ගැනමුමු


if, else if, else Statements:

කොන්දේසි භාවිතා කර code flow පාලනය කිරීම.


උදාහරණය:

int number = 10;

if (number > 5) {

    System.out.println("Number is greater than 5");

} else {

    System.out.println("Number is 5 or less");

}



switch Statement:

ඔබට පරීක්ෂා කිරීමට බහු විකල්ප ඇති විට භාවිතා කරන්න.


උදාහරණය:

int day = 3;

switch (day) {

case 1: System.out.println("Monday"); break;

case 2: System.out.println("Tuesday"); break;

default: System.out.println("Other day");

}



ක්‍රියකාරකම: 

user එකෙන් අංකයක් ඉල්ලා එය ඔත්තේද, ඉරට්ටේද (even or odd ) දැයි පරීක්ෂා කරන program එකක් සාදන්න.




Module 3: Object-Oriented Programming (OOP) මූලික කරුණු


Lesson 3.1: OOP Concepts හැඳින්වීම

Object-oriented programming හි මූලික කරුණු තේරුම් ගැනීම මෙහිදී  සිදුකරමු.



OOP යනු කුමක්ද?


OOP යනු objects සහ classes භාවිතා කරන programming paradigm එකකි.


ප්‍රධාන concepts:

• Classes: objects සඳහා blueprints.

• Objects: classes වල instances.

• Encapsulation: දත්ත class එකක් තුළ සඟවා methods භාවිතා කර එයට ප්රවේශ වීම.

• Inheritance: class එකක් තවත් class එකක properties සහ methods inherit කර ගැනීම.

• Polymorphism: විවිධ classes වල methods එකම නමින් වුවද වෙනස් implementations ඇති වීම.

• Abstraction: සංකීර්ණ implementation details සඟවා තැබීම.



Lesson 3.2: Java හි Methods


Methods සාදා භාවිතා කරන්නේ කෙසේද යන්න බලමු.


Methods යනු මොනවාද  :

Methods භාවිතා කරන්නේ code reusable blocks ලෙස සංවිධානය කිරීමටයි.


උදාහරණය:


public class Calculator {

public int add(int a, int b) {

     return a + b;

}

}



Methods call කිරීම,


උදාහරණය:


Calculator calc = new Calculator();

int sum = calc.add(5, 3);  // sum = 8


ක්‍රියාකාරකම :

 integers දෙකක් ගෙන ඒවායේ ගුණිතය return කරන method එකක් සාදන්න.



Lesson 3.3: Constructors


Java හි constructors ක්‍රියා කරන ආකාරය ඉගෙන ගනිමු.


Constructor යනු කුමක්ද?

Constructor භාවිතා කරන්නේ object එකක් create කරන විට එය initialize කිරීමටයි.


උදාහරණය:


public class Car {

String model;

int year;


public Car(String model, int year) {

        this.model = model;

        this.year = year;

}

}



ක්‍රියාකාරකම: 

Person class එකක් සාදා, එහි constructor භාවිතා කර පුදගලයන්ගෙ නම සහ වයස initialize කරන්න.



Module 4: Collections සමඟ වැඩ කිරීම


Lesson 4.1: Arrays


Java හි arrays සමඟ වැඩ කරන්නේ කෙසේද යන්න ඉගෙන ගනිමු.


Arrays සාදා භාවිතා කිරීම:

Arrays භාවිතා කරන්නේ එකම වර්ගයේ බහු අගයන් ගබඩා කිරීමටයි.


උදාහරණය:


int[] numbers = {1, 2, 3, 4, 5};

System.out.println(numbers[0]);  // Output: 1


ක්‍රියාකාරකම :

 ඔබගේ මිතුරන්ගේ නම් ගබඩා කිරීමට array එකක් සාදා loop එකක් භාවිතා කර ඒවා print කරන්න.



Lesson 4.2: ArrayLists


ArrayList class භාවිතා කරන්නේ කෙසේද යන්න ඉගෙන ගැනිමු.


ArrayLists:

Dynamic arrays වන අතර ඒවාට size වැඩි කිරීම හෝ අඩු කිරීම කළ හැකිය.


උදාහරණය:


ArrayList<String> names = new ArrayList<>();

names.add("Alice");

names.add("Bob");

System.out.println(names.get(0));  // Output: Alice


ක්‍රියාකාරකම :

integers ArrayList එකක් සාදා, එහි අගයන් කිහිපයක් add කර ඒවා print කරන්න.




Module 5: දෝෂ හැසිරවීම (error)


Lesson 5.1: Exception Handling


Java හි දෝෂ හැසිරවීම තේරුම් ගනිමු.


Exceptions යනු කුමක්ද?

Exceptions යනු runtime දෝෂ වන අතර ඒවා try-catch blocks භාවිතා කර හැසිරවිය හැකිය.


උදාහරණය:


try {

int result = 10 / 0;

} catch (ArithmeticException e) {

    System.out.println("Error: " + e.getMessage());

}



ක්‍රියාකාරකම :

user එකෙන් අංකයක් ඉල්ලා 100, එම අංකයෙන් බෙදීමේදී division by zero දෝෂය handle කරන program එකක් ලියන්න.




Module 6: Java Project


Lesson 6.1: සරල Java Project එකක් නිර්මාණය කිරීම


ඔබ ඉගෙන ගත් සියල්ල කුඩා project එකකට යොදා ගැනීම ගැන බලමු.


Project : Basic Calculator එකක් සාදමු,