নিচে কিছু বেসিক Java Examples দেওয়া হলো যা Java প্রোগ্রামিং ভাষার মৌলিক ধারণাগুলি বুঝতে সাহায্য করবে। এই উদাহরণগুলি আপনাকে সিনট্যাক্স, ভেরিয়েবল, কন্ডিশনাল স্টেটমেন্ট, লুপস, ফাংশন এবং অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং (OOP) এর মৌলিক ধারণা বুঝতে সহায়তা করবে।
1. Hello World Example
এই কোডটি Java তে একটি মৌলিক "Hello, World!" প্রিন্ট করার উদাহরণ।
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
ব্যাখ্যা:
public class HelloWorld: একটি ক্লাস ডিফাইন করা হয়েছে।public static void main(String[] args): প্রধান মেথড যা Java প্রোগ্রামটি চালানোর জন্য প্রয়োজন।
2. Variables and Data Types
এই উদাহরণে বিভিন্ন ডেটা টাইপের ভেরিয়েবল ঘোষণা এবং তাদের মান প্রদর্শন করা হয়েছে।
public class VariablesExample {
public static void main(String[] args) {
int num = 10;
double pi = 3.14159;
char grade = 'A';
boolean isJavaFun = true;
System.out.println("Integer: " + num);
System.out.println("Double: " + pi);
System.out.println("Char: " + grade);
System.out.println("Boolean: " + isJavaFun);
}
}
ব্যাখ্যা:
- এখানে বিভিন্ন ডেটা টাইপ যেমন
int,double,char, এবংbooleanব্যবহার করা হয়েছে।
3. If-Else Statement
এই উদাহরণে if-else কন্ডিশনাল স্টেটমেন্ট ব্যবহার করা হয়েছে।
import java.util.Scanner;
public class IfElseExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your age: ");
int age = sc.nextInt();
if (age >= 18) {
System.out.println("You are an adult.");
} else {
System.out.println("You are a minor.");
}
}
}
ব্যাখ্যা:
- ব্যবহারকারীর বয়স ইনপুট নেয়া হচ্ছে এবং
if-elseব্যবহার করে বয়সের উপর ভিত্তি করে একটি মেসেজ প্রদর্শন করা হচ্ছে।
4. For Loop Example
এই উদাহরণে একটি for loop ব্যবহার করে 1 থেকে 10 পর্যন্ত সংখ্যা প্রিন্ট করা হয়েছে।
public class ForLoopExample {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
ব্যাখ্যা:
forলুপের মাধ্যমে 1 থেকে 10 পর্যন্ত সংখ্যা প্রিন্ট করা হচ্ছে।
5. While Loop Example
এখানে একটি while loop দিয়ে 1 থেকে 10 পর্যন্ত সংখ্যা প্রিন্ট করা হয়েছে।
public class WhileLoopExample {
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
System.out.println(i);
i++;
}
}
}
ব্যাখ্যা:
whileলুপ ব্যবহার করে একটি শর্তের উপর ভিত্তি করে লুপটি চলবে।
6. Method Example
এই উদাহরণে একটি সিম্পল method তৈরি করা হয়েছে যা দুটি সংখ্যা যোগ করবে।
public class MethodExample {
public static void main(String[] args) {
int result = addNumbers(5, 7);
System.out.println("Sum is: " + result);
}
public static int addNumbers(int num1, int num2) {
return num1 + num2;
}
}
ব্যাখ্যা:
addNumbersমেথডটি দুটি ইন্টিজার গ্রহণ করে এবং তাদের যোগফল রিটার্ন করে।
7. Arrays Example
এই উদাহরণে একটি array ব্যবহার করা হয়েছে এবং তার মধ্যে কিছু ভ্যালু যোগ করা হয়েছে।
public class ArraysExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
}
}
ব্যাখ্যা:
numbersএকটি integer array, যেখানে 1 থেকে 5 পর্যন্ত মান রাখা হয়েছে এবং একটিforলুপ ব্যবহার করে সেগুলো প্রিন্ট করা হয়েছে।
8. Switch Case Example
এখানে একটি switch case স্টেটমেন্ট ব্যবহার করা হয়েছে, যা একটি দিন (1-7) অনুযায়ী সপ্তাহের দিন প্রিন্ট করবে।
public class SwitchCaseExample {
public static void main(String[] args) {
int day = 3;
switch(day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("Invalid day");
}
}
}
ব্যাখ্যা:
switchস্টেটমেন্ট ব্যবহার করে নির্দিষ্ট একটিdayএর জন্য সপ্তাহের নাম প্রদর্শিত হচ্ছে।
9. Object-Oriented Programming (OOP) Example
এই উদাহরণে OOP ধারণার মাধ্যমে একটি ক্লাস এবং অবজেক্ট তৈরি করা হয়েছে।
class Car {
String model;
int year;
public void displayInfo() {
System.out.println("Model: " + model);
System.out.println("Year: " + year);
}
}
public class OOPExample {
public static void main(String[] args) {
Car car1 = new Car();
car1.model = "Toyota Corolla";
car1.year = 2020;
car1.displayInfo();
}
}
ব্যাখ্যা:
Carক্লাসের মধ্যে একটি মেথড এবং দুটি ফিল্ড আছে (model,year)।OOPExampleক্লাসেCarঅবজেক্ট তৈরি করে তার ফিল্ড এবং মেথড ব্যবহার করা হয়েছে।
10. Constructor Example
এখানে একটি constructor ব্যবহার করা হয়েছে, যা ক্লাসের অবজেক্ট তৈরি করার সময় কিছু প্রাথমিক মান সেট করে।
class Person {
String name;
int age;
// Constructor
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void displayInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}
public class ConstructorExample {
public static void main(String[] args) {
// Constructor is called here
Person person1 = new Person("John", 25);
person1.displayInfo();
}
}
ব্যাখ্যা:
Personক্লাসে একটি constructor রয়েছে যাnameএবংageসেট করে এবংdisplayInfo()মেথডের মাধ্যমে সেই তথ্য প্রদর্শন করে।
এই Java উদাহরণগুলো Java প্রোগ্রামিং ভাষার মৌলিক ধারণাগুলি বোঝার জন্য সহায়ক। আপনি এগুলোর মাধ্যমে ভেরিয়েবলস, কন্ডিশনাল স্টেটমেন্টস, লুপস, ফাংশন, অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং (OOP) এর মতো প্রধান ধারণা শিখতে পারবেন। Java তে এই ধারণাগুলি ব্যাবহার করার মাধ্যমে আপনি আরও জটিল প্রোগ্রাম তৈরি করতে সক্ষম হবেন।
Java তে প্রথম প্রোগ্রাম লেখা (Hello World Program) হল Java প্রোগ্রামিং ভাষার একটি পরিচিত এবং সহজ উদাহরণ। এই প্রোগ্রামের মাধ্যমে আপনি Java এর বেসিক সিনট্যাক্স এবং কিভাবে একটি প্রোগ্রাম তৈরি ও রান করতে হয় তা শিখতে পারেন।
Hello World Program in Java
// HelloWorld.java - A simple Java program
public class HelloWorld {
public static void main(String[] args) {
// This is the output statement
System.out.println("Hello, World!");
}
}
কোড ব্যাখ্যা:
- class HelloWorld:
public class HelloWorldহল ক্লাস ডেফিনেশন, যেখানেHelloWorldহচ্ছে ক্লাসের নাম। Java তে প্রতিটি প্রোগ্রাম একটি ক্লাসের মধ্যে থাকে।
- public static void main(String[] args):
mainমেথড হল Java প্রোগ্রামের এন্ট্রি পয়েন্ট, যেখানে প্রোগ্রাম রান শুরু হয়। এটি একটিstaticমেথড, যা ক্লাসের মধ্যে সরাসরি অ্যাক্সেস করা যায়।String[] argsহচ্ছে একটি প্যারামিটার যা কমান্ড লাইন আর্গুমেন্ট গ্রহণ করে (যদি ব্যবহার করা হয়)।
- System.out.println("Hello, World!");:
System.out.println()হল একটি বিল্ট-ইন ফাংশন যা কনসোল/স্ক্রীনে আউটপুট প্রিন্ট করে।- এখানে
"Hello, World!"টেক্সট কনসোলে প্রিন্ট করা হবে।
প্রোগ্রাম রান করার পদক্ষেপ:
- Java কোড লিখুন:
- প্রথমে একটি টেক্সট এডিটরে (যেমন Notepad, Sublime Text বা Visual Studio Code) উপরের কোডটি লিখে
HelloWorld.javaনামে ফাইল সেভ করুন। ফাইলের নাম ক্লাসের নামের সাথে মেলাতে হবে (যেমনHelloWorldক্লাসের জন্য ফাইলের নামHelloWorld.javaহবে)।
- প্রথমে একটি টেক্সট এডিটরে (যেমন Notepad, Sublime Text বা Visual Studio Code) উপরের কোডটি লিখে
- Java Compiler Install করা:
- Java কোড রান করতে আপনার কম্পিউটারে Java Development Kit (JDK) ইনস্টল থাকতে হবে। আপনি Oracle এর অফিসিয়াল ওয়েবসাইট থেকে JDK ডাউনলোড এবং ইনস্টল করতে পারেন।
- Java কোড কম্পাইল এবং রান করা:
- টার্মিনাল বা কমান্ড প্রম্পট (Command Prompt বা Terminal) খুলুন।
Java কোড কম্পাইল করা:
javac HelloWorld.java- এটি
HelloWorld.classনামক একটি বাইটকোড ফাইল তৈরি করবে। Java কোড রান করা:
java HelloWorld- এই কমান্ডটি
HelloWorld.classফাইল রান করবে এবং স্ক্রীনে "Hello, World!" প্রিন্ট হবে।
আউটপুট:
Hello, World!
সংক্ষেপে:
- Java তে প্রথম প্রোগ্রাম হল একটি খুবই সহজ প্রোগ্রাম যা শুধুমাত্র কনসোলে "Hello, World!" আউটপুট প্রিন্ট করে।
- এটি Java তে প্রোগ্রামিং এর সিনট্যাক্স এবং কিভাবে একটি ক্লাস তৈরি এবং রান করা হয় তা বুঝতে সহায়তা করে।
Java তে ডেটা টাইপ দুটি প্রধান ভাগে বিভক্ত: প্রিমিটিভ ডেটা টাইপ (Primitive Data Types) এবং নন-প্রিমিটিভ ডেটা টাইপ (Non-Primitive Data Types)। প্রিমিটিভ ডেটা টাইপগুলি সিস্টেমের মেমরি থেকে সরাসরি মান ধারণ করে এবং সেগুলির জন্য নির্দিষ্ট মেমরি সাইজ রয়েছে, যেখানে নন-প্রিমিটিভ ডেটা টাইপগুলি অবজেক্ট বা রেফারেন্স হিসেবে কাজ করে এবং তাদের মেমরি সাইজ পরিবর্তনশীল।
1. প্রিমিটিভ ডেটা টাইপ (Primitive Data Types)
প্রিমিটিভ ডেটা টাইপগুলি Java এর অন্তর্নিহিত ডেটা টাইপ যা সিস্টেমের মেমরিতে সরাসরি মান ধারণ করে। এগুলির জন্য নির্দিষ্ট মেমরি বরাদ্দ থাকে এবং এগুলি ফাংশন বা মেথডের মাধ্যমে পাস করা হলে তাদের মান কপি হয়ে পাস হয় (Call by Value)।
প্রিমিটিভ ডেটা টাইপের উদাহরণ:
- byte: 8-বিট সাইনড পূর্ণসংখ্যা (Range: -128 to 127)
- short: 16-বিট সাইনড পূর্ণসংখ্যা
- int: 32-বিট সাইনড পূর্ণসংখ্যা
- long: 64-বিট সাইনড পূর্ণসংখ্যা
- float: 32-বিট ফ্লোটিং পয়েন্ট সংখ্যা
- double: 64-বিট ডাবল ফ্লোটিং পয়েন্ট সংখ্যা
- char: 16-বিট ইউনিকোড ক্যারেক্টার
- boolean: সত্য (true) বা মিথ্যা (false)
প্রিমিটিভ ডেটা টাইপ উদাহরণ:
public class PrimitiveDataTypesExample {
public static void main(String[] args) {
// Primitive Data Types
byte byteValue = 10;
short shortValue = 200;
int intValue = 1000;
long longValue = 100000L;
float floatValue = 10.5f;
double doubleValue = 20.99;
char charValue = 'A';
boolean booleanValue = true;
// Displaying values
System.out.println("byte value: " + byteValue);
System.out.println("short value: " + shortValue);
System.out.println("int value: " + intValue);
System.out.println("long value: " + longValue);
System.out.println("float value: " + floatValue);
System.out.println("double value: " + doubleValue);
System.out.println("char value: " + charValue);
System.out.println("boolean value: " + booleanValue);
}
}
আউটপুট:
byte value: 10
short value: 200
int value: 1000
long value: 100000
float value: 10.5
double value: 20.99
char value: A
boolean value: true
2. নন-প্রিমিটিভ ডেটা টাইপ (Non-Primitive Data Types)
নন-প্রিমিটিভ ডেটা টাইপগুলি Java তে অবজেক্ট বা রেফারেন্স টাইপ হিসেবে কাজ করে। এগুলির জন্য মেমরি ডায়নামিকভাবে বরাদ্দ করা হয় এবং এগুলির মধ্যে অনেকগুলো ভেরিয়েবল থাকতে পারে (যেমন, String, Arrays, Classes, Interfaces, ইত্যাদি)। নন-প্রিমিটিভ ডেটা টাইপগুলি প্রিমিটিভ ডেটা টাইপের মান ধারণ করতে পারে এবং সেগুলির জন্য আলাদা মেমরি বরাদ্দ হয়।
নন-প্রিমিটিভ ডেটা টাইপের উদাহরণ:
- String: টেক্সট (স্ট্রিং) ডেটা টাইপ
- Array: একই ধরনের উপাদানের একটি সারণি
- Class: কাস্টম ডেটা টাইপ (অবজেক্ট তৈরি করা হয়)
- Interface: একটি কনট্রাক্ট যা ক্লাসগুলো বাস্তবায়ন করতে পারে
নন-প্রিমিটিভ ডেটা টাইপ উদাহরণ:
public class NonPrimitiveDataTypesExample {
public static void main(String[] args) {
// Non-Primitive Data Types
String strValue = "Hello, Java!";
int[] intArray = {1, 2, 3, 4, 5};
NonPrimitiveClass classObject = new NonPrimitiveClass("John Doe", 25);
// Displaying values
System.out.println("String value: " + strValue);
System.out.print("Array values: ");
for (int num : intArray) {
System.out.print(num + " ");
}
System.out.println();
System.out.println("Class object: " + classObject.getName() + ", Age: " + classObject.getAge());
}
}
class NonPrimitiveClass {
private String name;
private int age;
public NonPrimitiveClass(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
আউটপুট:
String value: Hello, Java!
Array values: 1 2 3 4 5
Class object: John Doe, Age: 25
সারাংশ (Summary):
- প্রিমিটিভ ডেটা টাইপ:
- সরাসরি মেমরিতে মান ধারণ করে।
- নির্দিষ্ট সাইজ এবং রেঞ্জ থাকে।
- প্রাথমিক ডেটা টাইপ:
byte,short,int,long,float,double,char,boolean।
- নন-প্রিমিটিভ ডেটা টাইপ:
- অবজেক্ট বা রেফারেন্স হিসেবে কাজ করে।
- মেমরি ডায়নামিকভাবে বরাদ্দ হয় এবং এর মধ্যে বিভিন্ন উপাদান থাকতে পারে।
- উদাহরণ:
String,Array,Class,Interface।
এছাড়া, নন-প্রিমিটিভ ডেটা টাইপগুলি প্রিমিটিভ ডেটা টাইপের উপর ভিত্তি করে ডেটা ধারণ করতে পারে এবং Java তে মেমরি ম্যানেজমেন্ট আরও ডাইনামিক হতে পারে।
Java তে ভেরিয়েবল এবং কনস্ট্যান্ট ডেটা সংরক্ষণ করতে ব্যবহৃত হয়, তবে তাদের ব্যবহার এবং বৈশিষ্ট্য কিছুটা আলাদা। ভেরিয়েবল হল এমন একটি স্থান যেখানে ডেটা পরিবর্তিত হতে পারে, আর কনস্ট্যান্ট হল এমন একটি মান যা একবার সেট করা হলে পরিবর্তন করা যায় না। নিচে ভেরিয়েবল ডিক্লারেশন এবং কনস্ট্যান্ট ব্যবহারের বিস্তারিত উদাহরণ দেওয়া হলো।
1. ভেরিয়েবল ডিক্লারেশন (Variable Declaration)
Java তে ভেরিয়েবলগুলি ডেটার ধরন (data type) এবং তাদের নামের মাধ্যমে ডিক্লেয়ার করা হয়। ভেরিয়েবলগুলো প্রোগ্রামের চলাকালে মান ধারণ করতে সক্ষম এবং তাদের মান পরিবর্তন করা যায়।
ভেরিয়েবল ডিক্লারেশনের সিনট্যাক্স:
data_type variable_name = value;
উদাহরণ: ভেরিয়েবল ডিক্লারেশন
public class VariableExample {
public static void main(String[] args) {
// প্রাথমিকভাবে ভেরিয়েবল ডিক্লারেশন
int age = 25; // Integer type variable
double salary = 50000.50; // Double type variable
String name = "John"; // String type variable
// ভেরিয়েবলের মান প্রিন্ট করা
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Salary: " + salary);
}
}
ব্যাখ্যা:
int age = 25;:ageনামে একটি ভেরিয়েবল ঘোষণা করা হয়েছে যাintটাইপ এবং মান ২৫।double salary = 50000.50;:salaryনামে একটিdoubleটাইপ ভেরিয়েবল ডিক্লেয়ার করা হয়েছে।String name = "John";:nameনামে একটিStringটাইপ ভেরিয়েবল, যেখানে "John" মান রয়েছে।
2. কনস্ট্যান্ট ব্যবহার (Using Constants)
Java তে কনস্ট্যান্ট এমন একটি মান যা একবার অ্যাসাইন করার পরে পরিবর্তন করা যায় না। Java তে কনস্ট্যান্ট তৈরি করার জন্য final কীওয়ার্ড ব্যবহার করা হয়। যখন কোনো ভেরিয়েবল final দ্বারা ডিক্লেয়ার করা হয়, তখন সেটির মান পরিবর্তন করা যায় না।
কনস্ট্যান্ট ডিক্লারেশনের সিনট্যাক্স:
final data_type CONSTANT_NAME = value;
উদাহরণ: কনস্ট্যান্ট ব্যবহার
public class ConstantExample {
public static void main(String[] args) {
// কনস্ট্যান্ট ডিক্লারেশন
final double PI = 3.14159; // constant value of PI
final int MAX_USERS = 100; // constant value for maximum users
// কনস্ট্যান্ট ভেরিয়েবলের মান প্রিন্ট করা
System.out.println("PI: " + PI);
System.out.println("Maximum Users Allowed: " + MAX_USERS);
// কনস্ট্যান্টের মান পরিবর্তন করার চেষ্টা করলে এরর হবে
// PI = 3.14; // This will cause a compilation error
}
}
ব্যাখ্যা:
final double PI = 3.14159;:PIকনস্ট্যান্ট হিসেবে ডিক্লেয়ার করা হয়েছে, যা একটিdoubleটাইপ এবং এর মান পরিবর্তন করা যাবে না।final int MAX_USERS = 100;:MAX_USERSকনস্ট্যান্ট হিসেবে ডিক্লেয়ার করা হয়েছে, যার মান ১০০ এবং এটি পরিবর্তন করা যাবে না।
3. কনস্ট্যান্টের ক্ষেত্রে কনভেনশন (Naming Conventions for Constants)
Java তে কনস্ট্যান্টের নাম সব capital letters এ লেখা হয় এবং underscore (_) দিয়ে শব্দগুলো আলাদা করা হয়। যেমন:
final int MAX_USERS = 100;
final double PI = 3.14159;
4. ভেরিয়েবল এবং কনস্ট্যান্টের মধ্যে পার্থক্য
| বিষয় | ভেরিয়েবল | কনস্ট্যান্ট |
|---|---|---|
| মান পরিবর্তনযোগ্য | হ্যাঁ, ভেরিয়েবলের মান পরিবর্তন করা যায় | না, কনস্ট্যান্টের মান একবার সেট করার পর পরিবর্তন করা যায় না |
| ডিক্লেয়ার করার জন্য কীওয়ার্ড | কোনো কীওয়ার্ড নেই | final কীওয়ার্ড ব্যবহৃত হয় |
| নামকরণের কনভেনশন | সাধারণত ছোট হাতের অক্ষরে, Camel Case ব্যবহার করা হয় | সব কপি লেটার এবং underscore ব্যবহার করা হয় |
5. পাঠযোগ্যতা এবং রক্ষণাবেক্ষণ
- ভেরিয়েবল ব্যবহারের মাধ্যমে প্রোগ্রাম ডাইনামিক হতে পারে এবং ডেটার মান চলাকালীন পরিবর্তিত হতে পারে, যেমন ইউজার ইনপুটের ভিত্তিতে।
- কনস্ট্যান্ট ব্যবহারের মাধ্যমে আপনার কোড আরও সুরক্ষিত হয়, কারণ কনস্ট্যান্টের মান একবার সেট করার পর কোনো প্রোগ্রাম তার মান পরিবর্তন করতে পারে না, এটি আপনার কোডের বাগ কমাতে সহায়ক।
- ভেরিয়েবল এমন একটি জায়গা যেখানে ডেটা সংরক্ষণ করা হয় এবং সেটি পরিবর্তিত হতে পারে।
- কনস্ট্যান্ট এমন একটি মান যা একবার সেট করার পরে পরিবর্তন করা যায় না, এবং এটি সাধারণত
finalকীওয়ার্ড দ্বারা ডিক্লেয়ার করা হয়।
Java তে ভেরিয়েবল এবং কনস্ট্যান্ট ব্যবহারের মাধ্যমে আপনি আরও সুসংগঠিত এবং নিরাপদ কোড লিখতে পারেন, যেখানে ডেটার অবস্থা (state) সঠিকভাবে নিয়ন্ত্রণ করা হয়।
Java তে Operators বিভিন্ন ধরনের গণনা এবং শর্তাদি পরীক্ষা করার জন্য ব্যবহৃত হয়। এরা মূলত কয়েকটি শ্রেণীতে বিভক্ত: Arithmetic Operators, Relational Operators, Logical Operators, এবং Bitwise Operators। নিচে প্রতিটি ধরনের অপারেটরের উদাহরণ সহ আলোচনা করা হয়েছে।
1. Arithmetic Operators (গাণিতিক অপারেটর)
Arithmetic Operators গাণিতিক হিসাব করার জন্য ব্যবহৃত হয়। এরা সাধারণত দুটি বা তার অধিক সংখ্যার মধ্যে গাণিতিক কাজ যেমন যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি করতে ব্যবহার করা হয়।
Arithmetic Operators:
+: যোগফল-: বিয়োগফল*: গুণফল/: ভাগফল%: ভাগশেষ
উদাহরণ:
public class ArithmeticOperatorsExample {
public static void main(String[] args) {
int a = 10, b = 5;
System.out.println("Addition: " + (a + b)); // 10 + 5 = 15
System.out.println("Subtraction: " + (a - b)); // 10 - 5 = 5
System.out.println("Multiplication: " + (a * b)); // 10 * 5 = 50
System.out.println("Division: " + (a / b)); // 10 / 5 = 2
System.out.println("Modulo: " + (a % b)); // 10 % 5 = 0
}
}
Output:
Addition: 15
Subtraction: 5
Multiplication: 50
Division: 2
Modulo: 0
2. Relational Operators (সম্পর্ক অপারেটর)
Relational Operators ব্যবহার করে দুটি মানের মধ্যে সম্পর্ক নির্ধারণ করা হয়। এগুলি মূলত শর্তাদি পরীক্ষা করতে ব্যবহৃত হয়।
Relational Operators:
==: সমান!=: সমান নয়>: বড়<: ছোট>=: বড় অথবা সমান<=: ছোট অথবা সমান
উদাহরণ:
public class RelationalOperatorsExample {
public static void main(String[] args) {
int x = 10, y = 20;
System.out.println("x == y: " + (x == y)); // false
System.out.println("x != y: " + (x != y)); // true
System.out.println("x > y: " + (x > y)); // false
System.out.println("x < y: " + (x < y)); // true
System.out.println("x >= y: " + (x >= y)); // false
System.out.println("x <= y: " + (x <= y)); // true
}
}
Output:
x == y: false
x != y: true
x > y: false
x < y: true
x >= y: false
x <= y: true
3. Logical Operators (যুক্তিক অপারেটর)
Logical Operators ব্যবহার করা হয় দুটি বা তার অধিক শর্ত একত্রিত করার জন্য। এগুলি Boolean ধরনের অপারেটর এবং শর্ত সত্য বা মিথ্যা নির্ধারণে ব্যবহৃত হয়।
Logical Operators:
&&: AND||: OR!: NOT
উদাহরণ:
public class LogicalOperatorsExample {
public static void main(String[] args) {
boolean a = true, b = false;
System.out.println("a && b: " + (a && b)); // false
System.out.println("a || b: " + (a || b)); // true
System.out.println("!a: " + (!a)); // false
}
}
Output:
a && b: false
a || b: true
!a: false
4. Bitwise Operators (বিটওয়াইজ অপারেটর)
Bitwise Operators একে একে বাইনারি ডেটার বিটগুলির উপর কাজ করে। এই অপারেটরগুলি ব্যবহার করে একটি নির্দিষ্ট বিটের মানের সঙ্গে কাজ করা হয়।
Bitwise Operators:
&: AND|: OR^: XOR~: NOT<<: Left shift>>: Right shift>>>: Unsigned right shift
উদাহরণ:
public class BitwiseOperatorsExample {
public static void main(String[] args) {
int x = 5, y = 3; // x = 0101, y = 0011 in binary
System.out.println("x & y: " + (x & y)); // 0101 & 0011 = 0001 = 1
System.out.println("x | y: " + (x | y)); // 0101 | 0011 = 0111 = 7
System.out.println("x ^ y: " + (x ^ y)); // 0101 ^ 0011 = 0110 = 6
System.out.println("~x: " + (~x)); // ~0101 = 1010 = -6 (two's complement)
System.out.println("x << 1: " + (x << 1)); // 0101 << 1 = 1010 = 10
System.out.println("x >> 1: " + (x >> 1)); // 0101 >> 1 = 0010 = 2
System.out.println("x >>> 1: " + (x >>> 1)); // 0101 >>> 1 = 0010 = 2
}
}
Output:
x & y: 1
x | y: 7
x ^ y: 6
~x: -6
x << 1: 10
x >> 1: 2
x >>> 1: 2
সারাংশ:
- Arithmetic Operators: গাণিতিক অপারেশন যেমন যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি।
- Relational Operators: দুটি মানের মধ্যে সম্পর্ক নির্ধারণ করা হয়, যেমন সমান, বড়, ছোট ইত্যাদি।
- Logical Operators: শর্তের যৌক্তিক সম্পর্ক নির্ধারণ করতে ব্যবহৃত হয়, যেমন AND, OR, NOT ইত্যাদি।
- Bitwise Operators: বাইনারি ডেটা (বিট) এর উপর কাজ করতে ব্যবহৃত হয়, যেমন বিটwise AND, OR, XOR, SHIFT ইত্যাদি।
এই অপারেটরগুলো আপনাকে Java তে বিভিন্ন ধরনের গণনা এবং শর্তাদি পরীক্ষা করার সুবিধা প্রদান করে।
Java তে ইনপুট এবং আউটপুট হ্যান্ডল করার জন্য বেশ কিছু জনপ্রিয় পদ্ধতি রয়েছে। Scanner ক্লাস ইনপুট গ্রহণ করার জন্য এবং System.out.println আউটপুট প্রদর্শনের জন্য ব্যবহৃত হয়। এখানে Scanner ক্লাস দিয়ে ইনপুট গ্রহণ এবং System.out.println দিয়ে আউটপুট প্রদর্শনের একটি সহজ উদাহরণ দেওয়া হয়েছে।
উদাহরণ ১: Scanner ব্যবহার করে ইনপুট গ্রহণ এবং System.out.println দিয়ে আউটপুট প্রদর্শন
import java.util.Scanner;
public class InputOutputExample {
public static void main(String[] args) {
// Scanner ক্লাস দিয়ে ইনপুট নেয়া
Scanner scanner = new Scanner(System.in);
// ইউজার থেকে নাম ইনপুট নেওয়া
System.out.print("আপনার নাম লিখুন: ");
String name = scanner.nextLine(); // String ইনপুট নেয়া
// ইউজার থেকে বয়স ইনপুট নেয়া
System.out.print("আপনার বয়স লিখুন: ");
int age = scanner.nextInt(); // Integer ইনপুট নেয়া
// ইনপুট প্রদর্শন করা
System.out.println("\nআপনার নাম: " + name);
System.out.println("আপনার বয়স: " + age);
// স্ক্যানার বন্ধ করা
scanner.close();
}
}
কোডের ব্যাখ্যা:
- Scanner ক্লাস:
Scanner scanner = new Scanner(System.in);: এটি একটিScannerঅবজেক্ট তৈরি করে, যা কীবোর্ড (System.in) থেকে ইনপুট গ্রহণ করতে সক্ষম।nextLine(): এটি ব্যবহারকারীর কাছ থেকে একটি পূর্ণলাইন (String) ইনপুট নেয়।nextInt(): এটি ব্যবহারকারীর কাছ থেকে একটি পূর্ণসংখ্যা (Integer) ইনপুট নেয়।
System.out.print()এবংSystem.out.println():System.out.print(): এটি ব্যবহারকারীকে কিছু লেখার জন্য নির্দেশ দেয়, কিন্তু এটি নতুন লাইন যুক্ত করে না।System.out.println(): এটি আউটপুট প্রদর্শনের পর নতুন লাইন তৈরি করে।
scanner.close():- এটি
Scannerঅবজেক্ট বন্ধ করার জন্য ব্যবহৃত হয়, যাতে রিসোর্স ব্যবহার শেষ হওয়ার পরে তা মুক্ত করা যায়।
- এটি
আউটপুট:
আপনার নাম লিখুন: জন
আপনার বয়স লিখুন: 25
আপনার নাম: জন
আপনার বয়স: 25
উদাহরণ ২: একই ইনপুটে একাধিক ধরনের ডেটা গ্রহণ
import java.util.Scanner;
public class MultipleInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// ইনপুট গ্রহণ
System.out.print("আপনার নাম লিখুন: ");
String name = scanner.nextLine(); // String ইনপুট
System.out.print("আপনার বয়স লিখুন: ");
int age = scanner.nextInt(); // Integer ইনপুট
System.out.print("আপনার উচ্চতা (মিটার) লিখুন: ");
double height = scanner.nextDouble(); // Double ইনপুট
// আউটপুট প্রদর্শন
System.out.println("\nআপনার নাম: " + name);
System.out.println("আপনার বয়স: " + age);
System.out.println("আপনার উচ্চতা: " + height + " মিটার");
scanner.close();
}
}
কোডের ব্যাখ্যা:
- এখানে, তিনটি ভিন্ন ধরনের ইনপুট গ্রহণ করা হয়েছে:
- String: নাম
- Integer: বয়স
- Double: উচ্চতা
nextLine(),nextInt(), এবংnextDouble()মেথড ব্যবহার করে আমরা ভিন্ন ভিন্ন ডেটা টাইপের ইনপুট নিয়েছি।
আউটপুট:
আপনার নাম লিখুন: মিশেল
আপনার বয়স লিখুন: 30
আপনার উচ্চতা (মিটার) লিখুন: 1.75
আপনার নাম: মিশেল
আপনার বয়স: 30
আপনার উচ্চতা: 1.75 মিটার
দ্রষ্টব্য:
nextLine()এবংnextInt()/nextDouble()এর মধ্যে পার্থক্য:nextLine(): এটি পুরো লাইন হিসেবে ইনপুট নেয়।nextInt()বাnextDouble(): এটি শুধুমাত্র সংখ্যার মান ইনপুট নেয় এবং একটি লাইনের শেষের স্পেসের পরবর্তীnextLine()মেথডে সমস্যা সৃষ্টি করতে পারে। এই কারণে, যদি আপনি একে একেnextInt()এবংnextLine()ব্যবহার করেন, তাহলে আপনার প্রথমnextLine()কলটি ইনপুটের পরবর্তী লাইনটি গ্রহন করতে পারে, যা আপনি না চেয়েও অবাঞ্ছিতভাবে পেয়ে যেতে পারেন। এই সমস্যা এড়ানোর জন্য, আপনি একটি অতিরিক্তnextLine()কল করতে পারেন।
উদাহরণ:
System.out.print("Enter age: ");
int age = scanner.nextInt();
scanner.nextLine(); // Extra nextLine() to consume the newline character
Scannerক্লাস Java তে ইনপুট গ্রহণ করার জন্য অন্যতম জনপ্রিয় পদ্ধতি। এটি ব্যবহার করে আপনি বিভিন্ন ধরনের ইনপুট (যেমন String, Integer, Double) গ্রহণ করতে পারেন।System.out.println()এবংSystem.out.print()ব্যবহার করে আপনি কনসোলে আউটপুট প্রদর্শন করতে পারেন।- ইনপুট নেওয়ার পর, সব সময়
scanner.close()ব্যবহার করা উচিত যাতে রিসোর্স মুক্ত করা যায়।
Read more