"হ্যালো, তরুণ বন্ধু। আশা করি তুমি ভুলে যাওনি যে আমি 16 প্রজন্মের একজন আমলা। আমি আমার সমস্ত জ্ঞান নিয়মাবদ্ধ না করলে যা অর্জন করেছি তা কখনই করতে পারতাম না। আমি উপযোগী তথ্যে পরিপূর্ণ। আমি তোমাকে কিছু কাজে সাহায্য করতে যাচ্ছি। শিক্ষানবিসদের জন্য, আমি তোমাকে একটি সাধারণ জাভা প্রোগ্রাম সম্বন্ধে বলতে চাই।"
"আমি শুনছি।"
"তথ্য নম্বর এক। জাভা প্রোগ্রামে কিছু ক্লাস থাকে। প্রতিটি ক্লাস আলাদা ফাইলে সংরক্ষিত হয়, যার নাম ক্লাসের নামের অনুরূপ হয়। ফাইল এক্সটেনশন হল java."
"অতএব, 'java' ফাইল এক্সটেনশনসহ কিছু ফাইল নিয়ে কোনো প্রোগ্রাম গঠিত হয় আর প্রতিটি ফাইলে কেবল একটি ক্লাসের জন্য কোড থাকে, ঠিক আছে?"
"একেবারে সঠিক, অ্যামিগো। কোনো ফাইলের নাম MyCat.java হলে, এতে MyCat ক্লাসটি থাকে।"
"তথ্য নম্বর দুই। আমাদের কাছে অনেকগুলো ক্লাস ফাইল থাকলে আমরা সেগুলোকে ফোল্ডার ও সাবফোল্ডারে ভাগ করি। এছাড়াও, ক্লাসগু্লোকে প্যাকেজ ও সাব-প্যাকেজে ভাগ করা হয়। ক্লাস কোডে প্যাকেজ ও সাব-প্যাকেজের নাম অবশ্যই উল্লেখ করতে হবে, এবং এগুলো ড্রাইভের ফোল্ডার ও সাবফোল্ডারের নামের অনুরূপ হতে হবে।"
"এভাবে এক দিকে আমরা ফোল্ডারে ফাইলগুলো সংরক্ষণ করি, আর অন্যদিকে ক্লাসগুলো প্যাকেজে সংরক্ষণ করি। কোনো ক্লাসের নাম অবশ্যই সেই ক্লাস বর্ণনাকারী ফাইলের নামের অনুরূপ হতে হবে। ক্লাসটি যে ফোল্ডারে স্নংরক্ষণ করা হয় সেটির নাম অবশ্যই প্যাকেজের নামের অনুরূপ হতে হবে।
"আপনি কি আমাকে আরও বিশদ বিবরণ দিতে পারেন?"
"নেস্টেড প্যাকেজের নামগুলো পিড়িয়ড দিয়ে ভাগ করা হয়, অনেকটা URL এর মত।"
"অন্য কথায়, ধরো, Cat নামের তোমার একটি ক্লাস আছে, যা animals.pets প্যাকেজে সংরক্ষিত আছে। তার মানে হল:
হার্ড ড্রাইভে কিছু ফোল্ডার আছে (আমরা এটাকে srcবলব) যেখানে প্রোজেক্টের সব ফাইল সংরক্ষণ করা হয়।
এতে animals নামের একটি ফোল্ডার আছে, যার ভিতর pets নামের সাবফোল্ডার আছে।
pets ফোল্ডারে Cat.java নামে একটি ফাইল আছে, যার ভিতরে Cat ক্লাসের জন্য কোড আছে।"
"আমি পুরোপুরি নিশ্চিত নই যে আমি এটি বুঝেছি।"
"দেখো। ক্লাস ও প্যাকেজের কাঠামো ড্রাইভে ফোল্ডার ও ফাইলের কাঠামোকে প্রতিবিম্বিত করে। আমাদের কাছে House.java নামে src/com/houses ফোল্ডারে সংরক্ষিত কোনো ফাইল থাকলে com.houses প্যাকেজের ভিতর House নামের একটি ক্লাস সংরক্ষিত আছে।"
"বুঝেছি।"
"মনে হয় তুমি বেশ দ্রুত বুঝতে পারছো। পর্দায় দেখো। এটি একটি ছোট ক্লাসের কোড। আমি সবগুলো প্রধান অংশে লেবেল দিয়েছি:"
প্যাকেজের নাম
package com.futujava.lesson2;
import java.io.IOException;
/**
* ব্যবহারকারী: সাধারণ
* তারিখ: 12/21/12
* সময়: 11:59
*/
ক্লাসের নাম
public class Task1
{
⎤
private static String TEXT = "Kiss my metal rear actuator";⎥ CLASS VARIABLE
⎦
⎤
public static void main(String[] args) throws IOException ⎥
{ ⎥
পর্দার আউটপুট এক লাইনের মন্তব্য ⎥
System.out.println(TEXT); //কেবল একটি স্ট্রিং দেখায় ⎥
একাধিক লাইনের মন্তব্য ⎥
/* ⎥
এটি একাধিক লাইনের মন্তব্য। ⎥
নিচের কোডটি তিনটি অনুরূপ স্ট্রিং দেখাবে। ⎥ main() মেথড
*/ ⎥
চলক ঘোষণা ⎥
String s = "Ho-ho-ho!"; ⎥
মেথড কল ⎥
printTextMoreTimes(s, 3); ⎥
} ⎥
⎦
মেথড প্যারামিটার ⎤
public static void printTextMoreTimes(String s, int count) ⎥ মেথড সিগনেচার
⎦
⎤
{ ⎥
লুপ ⎥
for (int i = 0; i < count; i++) ⎥
লুপ বডি ⎥ মেথড বডি/কোড
{ ⎥
System.out.println(s); ⎥
} ⎥
} ⎥
⎦
}
"মাত্র একবার ব্যাখ্যা করার পরেই এটি যথাসম্ভব সহজ লাগছে।"
"ভাল! আমাদের এটাই প্রয়োজন। অন্তত কিছু বুঝতে চেষ্টা করো। সময়ের সাথে সাথে পূর্ণ উপলব্ধি অর্জিত হবে। এখন আমি একটু ঘুমোতে যাচ্ছি। অন্য কেউ তোমার প্রশিক্ষণ চালিয়ে যাবেন।"
GO TO FULL VERSION