Java একটি স্ট্যাটিক টাইপড ভাষা, অর্থাৎ কম্পাইলের সময়েই একটি ভ্যারিয়েবলের টাইপ জানা থাকে। কোনো নামে একটি মান অ্যাসাইন করাকে ভ্যারিয়েবল ডিফাইন করা বলা হয়। ভ্যারিয়েবল ডিফাইন করতে তার টাইপ স্পষ্টভাবে উল্লেখ করতে হয়।
int explicitVar = 10;
ভ্যারিয়েবলের মান আপডেট করা হয় = অপারেটরের মাধ্যমে।
এখানে = গাণিতিক সমতা বোঝায় না।
এটি কেবল একটি ভ্যারিয়েবলে একটি মান অ্যাসাইন করে।
একবার ডিফাইন হয়ে গেলে ভ্যারিয়েবলের টাইপ আর কখনো পরিবর্তন করা যায় না।
int count = 1; // Assign initial value
count = 2; // Update to new value
// Compiler error when assigning a different type
// count = false;
Java একটি অবজেক্ট-ওরিয়েন্টেড ভাষা এবং এতে সব ফাংশন একটি ক্লাসে ডিফাইন করা আবশ্যক।
ক্লাস ডিফাইন করতে class কিওয়ার্ডটি ব্যবহার করা হয়।
class Calculator {
// ...
}
ক্লাসের ভেতরের ফাংশনকে মেথড বলা হয়।
প্রতিটি মেথডে শূন্য বা তার বেশি প্যারামিটার থাকতে পারে।
সব প্যারামিটারের টাইপ স্পষ্টভাবে লিখতে হয়, প্যারামিটারের জন্য কোনো টাইপ ইনফারেন্স নেই।
একইভাবে, রিটার্ন টাইপও স্পষ্টভাবে উল্লেখ করতে হয়।
return কিওয়ার্ড দিয়ে মেথড থেকে মান রিটার্ন করা হয়।
অন্য ক্লাস থেকে একটি মেথড কল করার সুযোগ দিতে public অ্যাক্সেস মডিফায়ার যোগ করতে হয়।
class Calculator {
public int add(int x, int y) {
return x + y;
}
}
একটি মেথড ইনভোক করা বা কল করা হয় এভাবে: তার ক্লাস ও মেথডের নাম উল্লেখ করে এবং মেথডের প্রতিটি প্যারামিটারের জন্য আর্গুমেন্ট পাস করে।
int sum = new Calculator().add(1, 2); // here the "add" method has been called to perform the task of addition
Java-তে স্কোপ নির্ধারিত হয় { আর } অক্ষর দুটির মধ্যে।
Java দুই ধরনের কমেন্ট সমর্থন করে।
একলাইনের কমেন্টের আগে // বসে আর বহুলাইনের কমেন্ট লেখা হয় /* ও */-এর মধ্যে।
এই অনুশীলনীতে আপনি কিছু কোড লিখবেন, যা আপনার প্রিয় রান্নার বইয়ের একটি দুর্দান্ত লাসানিয়া রান্না করতে সাহায্য করবে।
আপনার চারটি কাজ আছে, যেগুলো সবই লাসানিয়া রান্না করতে ব্যয় হওয়া সময়ের সাথে সম্পর্কিত।
expectedMinutesInOven() মেথডটি ডিফাইন করুন, যা কোনো প্যারামিটার নেয় না এবং লাসানিয়াটি ওভেনে কত মিনিট থাকা উচিত তা রিটার্ন করে। রান্নার বই অনুসারে, ওভেনে প্রত্যাশিত সময় মিনিটে ৪০:
Lasagna lasagna = new Lasagna();
lasagna.expectedMinutesInOven();
// => 40
remainingMinutesInOven() মেথডটি ডিফাইন করুন, যা লাসানিয়া ওভেনে যত মিনিট আছে তা একটি প্যারামিটার হিসেবে নেয় এবং আগের কাজের ওভেনে প্রত্যাশিত সময় মিনিটের ভিত্তিতে লাসানিয়াটিকে ওভেনে আরও কত মিনিট থাকতে হবে তা রিটার্ন করে।
Lasagna lasagna = new Lasagna();
lasagna.remainingMinutesInOven(30);
// => 10
preparationTimeInMinutes() মেথডটি ডিফাইন করুন, যা লাসানিয়ায় আপনি যত স্তর যোগ করেছেন তার সংখ্যা একটি প্যারামিটার হিসেবে নেয় এবং লাসানিয়া প্রস্তুত করতে আপনার কত মিনিট লেগেছে তা রিটার্ন করে, ধরে নিয়ে যে প্রতিটি স্তর প্রস্তুত করতে আপনার ২ মিনিট লাগে।
Lasagna lasagna = new Lasagna();
lasagna.preparationTimeInMinutes(2);
// => 4
totalTimeInMinutes() মেথডটি ডিফাইন করুন, যা দুটি প্যারামিটার নেয়: প্রথম প্যারামিটারটি হলো লাসানিয়ায় আপনি যত স্তর যোগ করেছেন তার সংখ্যা, আর দ্বিতীয় প্যারামিটারটি হলো লাসানিয়া ওভেনে যত মিনিট আছে তার সংখ্যা। ফাংশনটি রিটার্ন করবে লাসানিয়া রান্না করতে আপনি মোট কত মিনিট কাজ করেছেন, যা প্রস্তুতির সময় মিনিটে এবং এই মুহূর্তে লাসানিয়া ওভেনে যত মিনিট আছে তার যোগফল।
Lasagna lasagna = new Lasagna();
lasagna.totalTimeInMinutes(3, 20);
// => 26
Exercism-এ সাইন আপ করুন, Java ট্র্যাকের 26টি কনসেপ্ট158টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।