- 1 1. Java import ප්රකාශයක් කියන්නේ මොනවාද? අරමුණ සහ ප්රතිලාභ
- 2 2. import ප්රකාශයන්ගේ මූලික ව්යුහය සහ වර්ග
- 3 3. පොදු import භාවිත උදාහරණ සහ නියැදි
- 4 4. නාම ගැටුම් (Namespace ගැටළු) සහ ඒවා හසුරවීමේ ක්රම
- 5 5. ආයාත ප්රකාශන සඳහා හොඳ පුරුදු සහ වෘත්තීය උපදෙස්
- 6 6. FAQ: Java ආයාත සඳහා සාමාන්ය ප්රශ්න සහ ගැටළු විසඳුම්
- 7 7. නිගමනය: ආයාත ප්රකාශන නිවැරදි භාවිතය අත්කර ගැනීම
1. Java import ප්රකාශයක් කියන්නේ මොනවාද? අරමුණ සහ ප්රතිලාභ
Java වැඩසටහන් ලියන විට, ඔබට import ප්රකාශය යන වාක්යය බොහෝවිටම හමුවේ. බොහෝ ආරම්භකයන් “import එක ඇත්තටම අවශ්යද?” හෝ “එය සෑම වරක්ම ලියන්න ඕනේ ඇයි?” යන ප්රශ්න අසති.
කෙසේ වෙතත්, import ප්රකාශයන් Java කේතය කාර්යක්ෂමව ලිවීමට සහ කියවීමට, නඩත්තු කිරීමට පහසු වැඩසටහන් සෑදීමට අත්යවශ්ය වේ.
import ප්රකාශයක ප්රධාන කාර්යය ඔබේ වැඩසටහන තුළ භාවිතා කිරීමට පන්තීන් හෝ පැකේජ්වල ලබා දීම ය. Java හි ප්රමිතී පසුබැසීම් සහ බාහිර පුස්තකාලයන් ස්වාධීන “ආකෘති” ලෙස කළමනාකරණය වේ. import ප්රකාශ භාවිතා කිරීමෙන්, ඔබට අවශ්ය ආකෘති පමණක් වැඩසටහනට ඇතුළත් කර, කෙටි හා පහසු-බවක් ඇති කේතයක් ලිවිය හැක.
උදාහරණයක් ලෙස, දිනයන් කළමනාකරණය සඳහා LocalDate පන්තිය හෝ ලැයිස්තු ව්යුහ සඳහා ArrayList පන්තිය භාවිතා කරන විට, import ප්රකාශ අවශ්ය වේ. ඒවා නොමැතිව, සෑම වරක්ම පූර්ණ නාමය ලිවිය යුතු වන අතර, එය කේතය කියවීමට අමාරු කරයි.
import ප්රකාශයන්ගේ තවත් වැදගත් ප්රතිලාභයක් නම් කේතයේ සමස්ත පැහැදිළිත්වය වැඩි කිරීම ය. ගොනුවේ ඉහළින් import ලැයිස්තුගත කිරීමෙන්, වැඩසටහනට අවශ්ය බාහිර පන්තීන් හෝ පුස්තකාලයන් කුමනදැයි වහාම දැකිය හැකි අතර, අනාගත සමාලෝචන සහ නඩත්තු වැඩ පහසු වේ.
අනෙක් පැත්තට, import ප්රකාශයක් ලිවීමට අමතක වීම හෝ wildcard import (*) අධික ලෙස භාවිතා කිරීම අනපේක්ෂිත ගැටළු හෝ දෝෂ ඇති කරයි. මෙම පොදු වැරදි පෙරදැක්වීමෙන් වැළැක්වීම, දෝෂ වැළැක්වීමට සහ සංවර්ධනය සුවිශේෂී කර ගැනීමට උපකාරී වේ.
සාරාංශයෙන්, Java import ප්රකාශයන් අනිවාර්ය වාක්ය රීති නොව, කාර්යක්ෂම, කියවීමට පහසු, නඩත්තු කළ හැකි වැඩසටහන් ලිවීමට මූලික අංගයකි. මෙම ලිපිය import ප්රකාශයන් පිළිබඳව මූලික සංකල්පයන් සිට උසස් භාවිතය සහ ගැටළු විසඳුම් දක්වා විස්තර කරයි.
2. import ප්රකාශයන්ගේ මූලික ව්යුහය සහ වර්ග
Java, අරමුණ සහ තත්ත්වය අනුව, import ප්රකාශ ලිවීමට විවිධ ක්රම ලබා දේ. මෙම කොටස තුළ මූලික රටා හතරක් හඳුන්වා දී, ඒවායේ ලක්ෂණ සහ සුදුසු භාවිතා අවස්ථා පැහැදිලි කරයි.
2-1. එක පන්තියක් Import කිරීම (නිර්දේශිත)
Import ප්රකාශයේ අති සරලම ආකාරය එකම විශේෂිත පන්තියක් import කිරීමයි.
උදාහරණයක් ලෙස, ලැයිස්තු ව්යුහ සමඟ වැඩ කරන විට, ඔබට මෙසේ ලියන්න පුළුවන්:
import java.util.List;
මෙම ක්රමය භාවිතා කරන පන්තිය පැහැදිලිව පෙන්වයි, කියවීමට පහසුකම වැඩි කරයි. වෘත්තීය පරිසරයන්හි සහ බොහෝ සැබෑ ලෝක ව්යාපෘතිවල, එක පන්තියක් import කිරීම දැඩි ලෙස නිර්දේශ කරයි.
ArrayList හෝ HashMap වැනි නිතර භාවිතා වන පන්තීන් පැහැදිලිව import කිරීමෙන්, පසුකාලීනව කේතය කියවන ඕනෑම පුද්ගලයාට එය තේරුම් ගැනීමට පහසු වේ.
2-2. * භාවිතා කරන Wildcard Import
Java, පැකේජ් එකේ සියලු පන්තීන් එකවර import කිරීමට wildcard (*) භාවිතා කිරීමට ඉඩ දෙයි:
import java.util.*;
මෙය පහසු බවක් පෙනුනත්, එයට අඩුපාඩු ඇත. භාවිතා වන පන්තීන් කුමනදැයි හඳුනා ගැනීමට අමාරු වන අතර, අනාගත නඩත්තු කාලයේ ගැටළු ඇති විය හැක. තවද, උප-පැකේජ් (උදාහරණයක් ලෙස java.util.concurrent) wildcard import වලට ඇතුළත් නොවේ.
ඒ නිසා, wildcard import ඉගෙනීමේ අවධියේ ප්රයෝජනවත් විය හැකි නමුත්, වෘත්තීය සංවර්ධනයේ පෙරනිමියෙන් එක පන්තියක් import කිරීම භාවිතා කර, wildcard import අවම ලෙස සීමා කිරීම වඩා ආරක්ෂිත වේ.
2-3. java.lang පැකේජ් එකේ ස්වයංක්රීය Import
Java හි java.lang නමින් විශේෂ පැකේජ් එකක් ඇත. මෙම පැකේජ් එකේ පන්තීන් import ප්රකාශයක් ලියන අවශ්යතාවයක් නොමැතිව ස්වයංක්රීයව ලබා ගත හැක. සාමාන්ය උදාහරණ ලෙස String සහ System පන්තීන් වේ.
String message = "Hello";
System.out.println(message);
ඔබට කිසිදාක පන්තියක් import නොකළත් ක්රියා කරනවා දැකෙනවා නම්, එය බොහෝවිට java.lang පැකේජ් එකේ අංගයක් බවයි.
2-4. static import කියන්නේ මොකක්ද? (උසස්)
Java 5 දී හඳුන්වා දුන් static import මඟින්, පන්තීන්ගේ නාමය නොදැක්වී ස්ථාවර ක්ෂේත්ර සහ ක්රම භාවිතා කළ හැකිය.
import static java.lang.Math.PI;
import static java.lang.Math.max;
This allows you to write PI or max(...) instead of Math.PI or Math.max(...). However, excessive use can make it unclear where methods or constants originate, so it should be used carefully. It is most useful when frequently referencing specific constants or static methods.
3. පොදු import භාවිත උදාහරණ සහ නියැදි
මෙම කොටස සාමාන්යයෙන් භාවිතා වන import ප්රකාශන සහ ප්රායෝගික භාවිත රටා හඳුන්වා දෙයි, වාස්තුක සංවර්ධනයේ යෙදිය හැකි ප්රයෝජනවත් තාක්ෂණයන් ඇතුළත් කරමින්.
3-1. ප්රමිතිය පුස්තකාලයෙන් import උදාහරණ
දිනයන් සහ වේලාවන් සමඟ වැඩ කරන විට, ඔබ සාමාන්යයෙන් java.time පැකේජය import කරයි.
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("Today's date: " + today);
}
}
ලැයිස්තු සහ සිතියම් වැනි එකතු කිරීම් සඳහා, java.util හි පන්තීන් import කරන්න.
import java.util.ArrayList;
import java.util.HashMap;
public class Sample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
HashMap<String, Integer> map = new HashMap<>();
map.put("Apple", 100);
map.put("Banana", 150);
System.out.println(list);
System.out.println(map);
}
}
3-2. ස්ථාතික import භාවිතා කරන පහසු උදාහරණ
Math පන්තියේ ස්ථිරයන් සහ ක්රමයන් ස්ථාතික import මඟින් වඩා සරලව භාවිතා කළ හැක.
import static java.lang.Math.PI;
import static java.lang.Math.pow;
public class Circle {
public static void main(String[] args) {
double r = 3.0;
double area = PI * pow(r, 2);
System.out.println("Area of a circle with radius 3: " + area);
}
}
මෙය කේතය කෙටි කර පඬිවීම වැඩි කරන නමුත්, සමහර අවස්ථාවල පන්තියේ නාමය පැහැදිලිව භාවිතා කිරීමෙන් පැහැදිලිත්වය වැඩි වේ.
3-3. පොදු දෝෂ සහ විසඳුම්
ඔබ import ප්රකාශනයක් අමතක කරන්නේ නම්, “symbol සොයාගත නොහැක” දෝෂයක් මුහුණට එන්න පුළුවන්.
// Example without an import statement
ArrayList<String> list = new ArrayList<>(); // Causes an error
එවැනි අවස්ථාවල, පන්තිය අඩංගු පැකේජය හඳුනාගෙන, සුදුසු import ප්රකාශනය එකතු කරන්න.
තවද, wildcard import ගুলি උප‑පැකේජ ඇතුළත් නොකරයි. උදාහරණයක් ලෙස, java.util.* හි java.util.concurrent ඇතුළත් නොවේ.
4. නාම ගැටුම් (Namespace ගැටළු) සහ ඒවා හසුරවීමේ ක්රම
Java ප්රමිතිය සහ බාහිර පුස්තකාල මගින් බොහෝ ප්රයෝජනවත් පන්තීන් ලබා දෙයි. එම නිසා, විවිධ පැකේජවල එකම නාමය ඇති පන්තීන් තිබීම අසාමාන්ය නොවේ. import ගুলি අනිසි ලෙස හසුරුවීම නාම ගැටුම් ඇති කර, සංග්රහණ දෝෂ හෝ ගැටළු ඇති කරයි.
4-1. පොදු නාම ගැටුම් උදාහරණ
උදාහරණයක් ලෙස, Java හි java.util.Date සහ java.sql.Date දෙකම ඇත. දෙකම දිනයන් නිරූපණය කරන නමුත්, ඒවා වෙනත් අරමුණු සඳහා භාවිතා වේ.
import java.util.Date;
import java.sql.Date; // Causes an error
දෙකම එකවර import කර ඇති විට, සංග්රහකයා කුමන පන්තිය භාවිතා කළ යුතුද යන්න තීරණය කළ නොහැක.

4-2. දෝෂ සහ ප්රායෝගික විසඳුම්
පොදු විසඳුමක් ලෙස, එක් පන්තියක් පමණක් import කර, අනෙක් පන්තිය සඳහා සම්පූර්ණ සුදුසු නාමය (fully qualified name) භාවිතා කිරීමයි.
import java.util.Date;
public class Sample {
public static void main(String[] args) {
Date utilDate = new Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println(utilDate);
System.out.println(sqlDate);
}
}
මෙය පන්තීන් දෙකම පැහැදිලිව වෙනස් කර, දෙකම ආරක්ෂිතව භාවිතා කිරීමට ඉඩ සලසයි.
4-3. Wildcard import ගুলি සහ ගැටුම් අවදානම්
Wildcard import ගুলি අධික ලෙස භාවිතා කිරීම අනපේක්ෂිත නාම ගැටුම් අවදානම වැඩි කරයි, විශේෂයෙන් විශාල ව්යාපෘතිවල හෝ බොහෝ බාහිර පුස්තකාල භාවිතා කරන විට.
ප්රධාන කරුණු:
- පන්තිය නාමය අනුපිළිවෙලට පෙනෙන අවස්ථා වල, තනි-පන්තිය ආයාතයන් පූර්ණ-අධිකාරී නාම සමඟ එකතු කරන්න.
- කණ්ඩායම් සංවර්ධනයේ, එකම ආයාත ප්රතිපත්තියක් නිර්වචනය කිරීම අනාගත ගැටළු වලින් වැළැක්වීමට උපකාරී වේ.
5. ආයාත ප්රකාශන සඳහා හොඳ පුරුදු සහ වෘත්තීය උපදෙස්
ආයාත ප්රකාශන මූලික ලක්ෂණයක් වුවත්, විශාල හෝ සමූහ ව්යාපෘති සඳහා අවධානයෙන් කළමනාකරණය අවශ්ය වේ. මෙම කොටස වෘත්තීය පරිසරයන්හි භාවිතා වන ප්රායෝගික හොඳ පුරුදු පිළිබඳව කවරා කරයි.
5-1. කියවීමේ හැකියාව සහ නඩත්තුකිරීමේ හැකියාව වැඩි කිරීම
ආයාත ප්රකාශන භාවිතා වන පන්තීන් සහ පැකේජයන් පෙන්වන බැවින්, අවශ්ය පන්තියක් එක් එක් ලෙස පැහැදිලිව ආයාත කිරීම හොඳම ක්රමය වේ. වයිල්ඩ්කාඩ් ආයාතයන් ටයිප් කිරීම අඩු කරනු ඇත, නමුත් ඒවා කියවීමේ හැකියාව සහ නඩත්තුකිරීමේ හැකියාවට හානියක් කරයි.
- නිර්දේශිතය:
import java.util.List; import java.util.ArrayList; - නිර්දේශ නොකළේ:
import java.util.*;
5-2. භාවිතා නොකළ ආයාතයන් නිතර ඉවත් කිරීම
සංවර්ධනය ඉදිරියට යාමත් සමඟ, භාවිතා නොකළ ආයාතයන් මූලාශ්ර කේතයේ ඉතිරි වීමට හැකිය. ඒවා ගොනු අලංකාර කරයි සහ අනතුරු ඇඟවීම් හෝ ගොඩනැගීමේ ගැටළු ඇති කරනු ඇත. අවශ්ය නොවන ආයාතයන් නිතර ඉවත් කිරීම යන පුරුද්දක් ගන්න.
බොහෝ IDE ගණනාවන් භාවිතා නොකළ ආයාතයන් පිරිසිදු කිරීම සඳහා ස්වයංක්රීය මෙවලම් ලබා දේ.
5-3. Eclipse සහ IntelliJ IDEA හි ආයාත පිරිසිදු කිරීමේ කෙටි මාර්ග
- Eclipse :
Ctrl+Shift+Oඔබා ස්වයංක්රීයව ආයාත සංවිධානය කරන්න. - IntelliJ IDEA :
Ctrl+Alt+Oඔබා ඒම ප්රතිඵලය ලබා ගන්න.
5-4. කේතන ප්රමිතීන් සමඟ ආයාත කළමනාකරණය
කණ්ඩායම් පරිසරයන්හි, ආයාත සඳහා කේතන ප්රමිතීන් නිර්වචනය කිරීම ඉතා ප්රයෝජනවත් වේ. “වයිල්ඩ්කාඩ් ආයාත වලින් වැළැක්වීම”, “පැකේජ අනුව ආයාත වර්ග කිරීම” හෝ “ස්ථාතික ආයාත සීමා කිරීම” වැනි නීති ගැටළු වැළැක්වීමට සහ එකරූපතාව රැක ගැනීමට උපකාරී වේ.
ආයාත ප්රකාශන කුඩා වශයෙන් පෙනුනත්, ඒවා කේත ගුණාත්මකභාවය සහ කාර්යක්ෂමතාවයට වැදගත් බලපෑම් කරයි. අවධානයෙන් කළමනාකරණය කිරීම දිගු කාලීනව ප්රතිඵල දක්වයි.
6. FAQ: Java ආයාත සඳහා සාමාන්ය ප්රශ්න සහ ගැටළු විසඳුම්
මෙම කොටස සාමාන්යයෙන් අසන ප්රශ්නවලට පිළිතුරු දී, ප්රායෝගිකව මුහුණ දෙන සාමාන්ය ආයාත-සම්බන්ධ ගැටළු සලකා බලයි.
Q1. ආයාත ප්රකාශන නොමැතිව පන්තීන් භාවිතා කළ හැකිද?
A1. ඔව්. ඔබට පන්තියක් එහි පූර්ණ-අධිකාරී නාමය (උදාහරණයක් ලෙස java.util.ArrayList) කේතයේ සෘජුව ලියමින් භාවිතා කළ හැක. නමුත් මෙය දිගු වන අතර කියවීමේ හැකියාව අඩු කරයි, එබැවින් සාමාන්යයෙන් ආයාත ප්රකාශන භාවිතා කිරීම වඩාත් ප්රිය වේ.
Q2. import java.util.* ගැන කුමක් වැරදියි?
A2. පහසු වුවත්, වයිල්ඩ්කාඩ් ආයාතයන් භාවිතා කරන පන්තීන් සැඟවීමෙන් නාම ගැටළු ඇති වීමට අවදානම වැඩි කරයි. වෘත්තීය සංවර්ධනයේ, අවශ්ය පන්තීන් පමණක් පැහැදිලිව ආයාත කිරීම නිර්දේශිතය.
Q3. ආරම්භකයන් සඳහා ස්ථාතික ආයාතය නිර්දේශිතද?
A3. ස්ථාතික ආයාතය නිතර භාවිතා වන ස්ථිරයන් හෝ ක්රම සඳහා ප්රයෝජනවත් වුවත්, එය කේතය තේරුම් ගැනීමට අමාරු කරයි. ආරම්භකයන් එය අවශ්ය අවස්ථාවල පමණක්, සීමිත ලෙස භාවිතා කළ යුතුය.
Q4. ආයාත-සම්බන්ධ දෝෂයන් කෙසේ හසුරවන්නද?
A4. “symbol එක සොයාගත නොහැක” හෝ “class එක සොයාගත නොහැක” වැනි දෝෂයන්ට මුහුණ දුන් විට, පළමුව අස්ථානගත හෝ වැරදි අකුරු ඇති ආයාත ප්රකාශන පරීක්ෂා කරන්න. පැකේජ නාමයන් තහවුරු කර, නාම ගැටළු හෝ උප-පැකේජ ආයාත අස්ථානගත වීම ගැන දැනුවත් වන්න.
Q5. ආයාත ප්රකාශන කවදා ලියන්නද?
A5. සාමාන්යයෙන්, වෙනත් පැකේජයක පන්තියක් පළමුව භාවිතා කරන විට ආයාත ලියයි. IDE ගණනාවන් ඒවා ස්වයංක්රීයව එක් කරයි. කේත පදනම පිරිසිදු තබා ගැනීමට භාවිතා නොකළ ආයාත නිතර පිරිසිදු කර ගැනීමට වග බලා ගන්න.
7. නිගමනය: ආයාත ප්රකාශන නිවැරදි භාවිතය අත්කර ගැනීම
මෙම ලිපිය Java ආයාත ප්රකාශන මූලික සංකල්පයන් සිට උසස් භාවිතය, වාස්තු විද්යාත්මක හොඳ පුරුදු, සහ සාමාන්ය ප්රශ්න දක්වා ආවරණය කරයි. ආයාත ප්රකාශන විකල්ප සින්ටැක්ස් පමණක් නොව, කියවීමේ හැකියාව, නඩත්තුකිරීමේ හැකියාව, සහ සමස්ත කේත ගුණාත්මකභාවය මත බලපාන අත්යවශ්ය සාධකයකි.
ආයාත නිවැරදිව භාවිතා කිරීමෙන්, ඔබට බාහිර පන්තීන් සහ පුස්තකාලයන් සමඟ සම්මුඛීකරණය කර, පිරිසිදු, සංක්ෂිප්ත කේත ලියිය හැක. ඒ සමඟ, වයිල්ඩ්කාඩ් අධික භාවිතය සහ නාම ගැටළු වැනි අවදානම් තේරුම් ගැනීම ඔබට සුක්ෂ්ම දෝෂ වලින් වැළැක්වීමට උපකාරී වේ.
වෘත්තීය පරිසරවල, නිතර භාවිත නොවන import ගොනු ඉවත් කිරීම සහ කණ්ඩායම් අතර import නීති සම්මත කිරීම වැනි ක්රියාමාර්ග ඉතා ප්රයෝජනවත් වේ. IDE විශේෂාංග සහ කේත ප්රමිතීන් භාවිතා කිරීම මඟින් පිරිසිදු සහ නඩත්තු කළ හැකි කේත පදනමක් සලසා දේ.
ගැටළු උදාවුනහොත්, import ප්රකාශන, පැකේජ නාම, සහ පන්තී නාමයන් කාරුණිකව සමාලෝචනය කිරීම සාමාන්යයෙන් වේගවත් විසඳුම් ලබා දේ.
අවසානයේ, import ප්රකාශන පාලනය කිරීම ඔබේ කාර්යක්ෂමතාවය සහ Java සංවර්ධනයේ විශ්වාසය ගණනාවට වැඩි කරයි. මෙහි සාකච්ඡා කරන ලද තාක්ෂණයන් ඔබේ දෛනික කේත ලිවීමේදී යොදා ගනිමින් නිෂ්පාදනශීලීත්වය සහ කේත ගුණාත්මකභාවය දෙකම වැඩි කරගන්න.

