Skip to content

Latest commit

 

History

History
357 lines (212 loc) · 30.8 KB

File metadata and controls

357 lines (212 loc) · 30.8 KB

বাংলায় জাভা প্রোগ্রামিং 🍵

লেখক পরিচিতি ✍️

আসসালামু-আলাইকুম । আমি তাওসিফ তাসরিক । আমি বর্তমানে কম্পিউটার সাইন্স এন্ড ইঞ্জিনিয়ারিং পড়ছি ইউনিভার্সিটি অফ স্কলার্স এ । আমার ১ম সেমিস্টার থাকাকালীন সময় এই বই লিখা শুরু করি। ছোট বেলা থেকেই আমি একজন কম্পিউটার এর খুবি বড় ভক্ত হয়ে আছি । ফাক পেলেই যে গেম খেলতাম সে জন্য আমি কত যে বকা খেয়েছি তা গুণতে শেষ হবে না । ওই গেম খেলা থেকে যেমন কীবোর্ড আয়ত্ত করেছি , তেমনি একদিন আমার মামার কাছ থেকে শুনা প্রোগ্রামিং শব্দ টা নিয়ে অনেক ঘাটাঘাটি করে শিখতে পেরেছি বেশ কয়েকটা প্রোগ্রামিং ল্যাঙ্গুয়েজ । এই বই টা উৎসর্গ করা হবে আমার প্রিয় মানুষদের আমার মা , বাবা , বোন , মামা , চাচ্চূ , নন্দিনী । লিস্ট অনেক বড় দুঃখিত ,কিন্তু এসব মানুষ এর জন্যই হয়ত এতদুর আসতে পারা । ১ম সেমিস্টার থেকেই যে এত কিছু করতে পারবো তা চিন্তা ভাবনার বাহিরে। আমার প্রোগ্রামিং যাত্রা শুরু হয় ২০১৬ সাল এ । মামার কাছে যখন প্রোগ্রামিং এর কথা শুনি তখন মামা বলেছিলেন যে " সি প্রোগ্রামিং " দিয়ে শুরু করো । আমি যথারীতি সি প্রোগ্রামিং লিখে ইউটিউব এ সার্চ দেই অনেক কিছুই এসে পরে কিছুই বুঝতে পারিনি , কোনটা ছেড়ে কোনটা দেখব । তখন পেলাম তামিম শাহরিয়ার সুবিন ভাই এর ভিডিও । এইতো তারপর থেকে শেখা শুরু করি এরপর থেকেই লেগে আছি । মাঝে অনেক বাধা বিপত্তি আসলেও টিকে আছি । আল্লাহ্‌ আলহামদুলিল্লাহ আমাাকে ভালো রেখেছেন ।

লেখার উদ্দেশ্য মানুষের মাঝে জাভার যে ভয়ভীতি আছে তা দূর করা । বই বা Documentation এ মানুষের আগ্রহ বাড়ানো ।

একটা উপদেশঃ প্রথম ল্যাঙ্গুয়েজ সি দিয়ে শুরু করেন । তাহলে আপনি এই জাভা প্রোগ্রামিং এর একদম বস হয়ে উঠবেন। সাথে আমার লেখা এই বই আপনার কাছে পানি ভাত মনে হবে ।

আমি ধরে নিব এই বই যারা পড়বেন তাদের আগে থেকেই সি প্রোগ্রামিং সম্পর্কে আইডিয়া আছে ।

সূচিপত্র

কেন জাভা ?

জাভা শেখা বিভিন্ন কারণে উপকারী হতে পারে:

  1. বহুমুখিতা: জাভা একটি বহুমুখী ভাষা যা ওয়েব ডেভেলপমেন্ট থেকে শুরু করে মোবাইল অ্যাপস (অ্যান্ড্রয়েড ডেভেলপমেন্ট), এন্টারপ্রাইজ সফ্টওয়্যার, বৈজ্ঞানিক অ্যাপ্লিকেশন এবং আরও অনেক কিছুতে ব্যবহৃত হয়।

  2. জনপ্রিয়তা: জাভা বহু বছর ধরে সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষাগুলির মধ্যে একটি। এর জনপ্রিয়তার অর্থ হল ডেভেলপারদের একটি বৃহৎ সম্প্রদায়, বিস্তৃত ডকুমেন্টেশন, এবং শেখার ও সমর্থনের জন্য উপলব্ধ অসংখ্য সংস্থান রয়েছে।

  3. চাকরির সুযোগ: অনেক কোম্পানি, বিশেষ করে এন্টারপ্রাইজ সেক্টরে, তাদের সফ্টওয়্যার উন্নয়ন প্রকল্পের জন্য জাভা ব্যবহার করে। জাভা শেখা বিভিন্ন শিল্প ও প্রতিষ্ঠানে চাকরির সুযোগ খুলে দিতে পারে।

  4. প্ল্যাটফর্ম স্বাধীনতা: জাভা তার "একবার লিখুন, যে কোনো জায়গায় চালান" দর্শনের জন্য পরিচিত, যার অর্থ জাভা ভার্চুয়াল মেশিন (JVM) আছে এমন যেকোনো ডিভাইসে জাভা প্রোগ্রাম চলতে পারে। এই প্ল্যাটফর্মের স্বাধীনতা জাভাকে ক্রস-প্ল্যাটফর্ম অ্যাপ্লিকেশন বিকাশের জন্য বিশেষভাবে উপযোগী করে তোলে।

  5. অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP): জাভা একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা, যা একটি বহুল ব্যবহৃত প্রোগ্রামিং প্যারাডাইম। জাভা শেখা আপনাকে OOP ধারণাগুলিকে কার্যকরভাবে বুঝতে এবং প্রয়োগ করতে সাহায্য করতে পারে, যা অন্যান্য অনেক প্রোগ্রামিং ভাষার ক্ষেত্রেও প্রযোজ্য।

  6. শক্তিশালী ইকোসিস্টেম: জাভা-এর একটি শক্তিশালী ইকোসিস্টেম রয়েছে যার বিশাল অ্যারের লাইব্রেরি, ফ্রেমওয়ার্ক এবং টুল রয়েছে যা উন্নয়ন প্রক্রিয়াকে স্ট্রিমলাইন করতে পারে এবং উৎপাদনশীলতা বাড়াতে পারে।

  7. নিরাপত্তা: Java এর অন্তর্নির্মিত সুরক্ষা বৈশিষ্ট্য রয়েছে যা এটিকে নিরাপদ অ্যাপ্লিকেশন বিকাশের জন্য একটি পছন্দের পছন্দ করে তোলে, বিশেষত ফিনান্স এবং ব্যাঙ্কিংয়ের মতো শিল্পগুলিতে যেখানে নিরাপত্তা অত্যন্ত গুরুত্বপূর্ণ৷

  8. স্কেলেবিলিটি: জাভা স্কেলেবল অ্যাপ্লিকেশন তৈরির জন্য উপযুক্ত, এটি ছোট প্রকল্প এবং বড় আকারের এন্টারপ্রাইজ অ্যাপ্লিকেশন উভয়ের জন্য উপযুক্ত করে তোলে।

আপনি সফ্টওয়্যার ডেভেলপমেন্টে ক্যারিয়ার গড়তে আগ্রহী হন না কেন, আপনার নিজস্ব অ্যাপ্লিকেশন তৈরি করতে চান, বা কেবল আপনার প্রোগ্রামিং দক্ষতা প্রসারিত করতে চান, জাভা শেখা আপনার সময় এবং প্রচেষ্টার একটি মূল্যবান বিনিয়োগ হতে পারে।


কোড লেখার জায়গা তৈরি

আসসালামু-আলাইকুম । আজকে এই লেখায় আমরা দেখবো কিভাবে আমরা আমাদের জাভা কোড লেখার জায়গা তৈরি করতে পারি । আমাদের অবশ্যই ইনটারনেট কানেকশন সহ একটি কম্পিউটার বা ল্যাপটপ থাকা জরুরি । আপানারা যদি কেউ মোবাইল দিয়ে করতে চান সে ক্ষেত্রে আমি বলবো অনলাইন কম্পাইলার ব্যবহার করতে । আমি নিচে বেশ কিছু কম্পাইলারের লিঙ্ক দিয়ে দিচ্ছি আপনারা দেখতে পারেন ।

অনলাইন কম্পাইলের লিঙ্কঃ

  1. https://www.jdoodle.com/online-java-compiler
  2. https://www.programiz.com/java-programming/online-compiler/
  3. https://www.online-java.com/

এই তিনটা তেই ইনশাআল্লাহ হয়ে যাওয়ার কথা ।

এবার আসা যাক উইন্ডোজ এর সেটাপ ইন্সট্রাকশন এ ।

ধাপ-১: আমাদের প্রথমে আমাদের নিজেদের ব্যবহার করা ব্রাউজার এ যেতে হবে । গিয়ে আমরা প্রথমে লিখব "Visual Studio Code" ।

ধাপ-২: এরপর আমরা দেখতে পাবো আমাদের সামনে এরকম কিছু Image

ধাপ-৩: এরপর আমরা সরাসরি ক্লিক করবো "Docs" এ । ক্লিক করার পর আমরা "Docs page" এর ওখানে দেখতে পাবো "Java" নামক একটি সেকশন । আমরা ওখানে ক্লিক করবো । Image

ধাপ-৪: এরপর আমরা যদি Java তে এরপর যদি "Getting Started" এ ক্লিক করি তাইলে আমরা এরকম কিছু একটা পাবো Image এরপর আমরা ওখানে থাকা " Install the Coding Pack for Java - Windows" এখানে ক্লিক করে আমাাদের কাঙ্ক্ষিত ফাইল টা ডাউনলোড করে নিব ।

ধাপ-৫: এরপর আমরা আমাদের ইন্সটলার ফাইল টি ওপেন করে আমাদের দুইটাই ইন্সটল দিতে হবে । প্রথম এ থাকবে জাভা jdk এরপরের টা vs code দুইটাতে ইন্সটল ক্লিক করে চুপ করে বসে থাকেন । ইন্সটল শেষ হলে vs code ওপেন করুন এবার একটা নতুন ফাইল বানাইতে আপনারে চাপতে হবে ctrl + n এরপর ctrl + sচেপে আপনার পছন্দের একটা জায়গায় নির্বাচন করে ফাইল এর নাম দেন HelloWorld.java। এই যে .java হচ্ছে আমাদের জাভা ফাইলের এক্সটেনশ । এরপর আমাদের একটা কোড আসার কথা কিছুটা এমন

public class HelloWorld{

} 

এরপর এই ফাকা জায়গায় আমরা লিখবো

public class HelloWorld{
	public static void main(String args[]){
	
	}
}

আমরা যদি এখানে দেখতে পাই Run | Debug তাহলে বুঝবো আমাদের সেটআপ আমাদের জাভা কোড লেখার জন্য তৈরি হয়ে আছে ।

Run | Debug
public static void main(String args[]){
    	
}

প্রথম "Hello,World!" লেখা

যেহেতু আমাদের কোড লেখার জায়গা তৈরি হয়ে আছে । আমি আশা করবো আপনাদের ফাইল বানানো এবং সেভ এর মধ্যে কোন সমস্যা নাই । আমাদের বানানো ফাইল টি যদি আমরা vscode দিয়ে ওপেন করি তাইলে দেখতে পাবো এরকম কিছু

HelloWorld.java >>

public  class  HelloWorld {

public  static  void  main(String[] args) {

}

}

এবার আমরা এই ফাঁকা জায়গার মধ্যে লিখবো System.out.println("Hello,World!);

public  static  void  main(String[] args) {

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

}

তাহলে আমাদের কোড টা হবে এরকম কিছুটা

public  class  HelloWorld {

    public  static  void  main(String[] args) {

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

}

এবার আমরা যদি Run | Debug এর ওখানে Run ক্লিক করলে । vscode এ টার্মিনাল ওপেন হয়ে দেখাবে

Hello,World!

যেহেতু আমরা দেখতে পেয়েছি কিভাবে আমরা স্ক্রিন এ আমাদের কোড এর অউটপুট দেখতে পাচ্ছি তাই আমরা এবার আমাদের নাম , বাবার নাম , মা'র নাম এবং আমরা বর্তমানে কোন শ্রেণিতে আছি তাই প্রিন্ট করতে হবে ।

public  class  HelloWorld {

public  static  void  main(String[] args) {

System.out.println("My name is: Tousif Tasrik");

System.out.println("My father's name: father's name");

System.out.println("My mother's name: Mother's name");

System.out.println("I am studying CSE at international University of Scholars");

}

}

ভ্যারিয়েবল এবং ডেটা টাইপ নিয়ে যত কথা

আমাদের আগের সেকশন এ আমরা দেখেছি কিভাবে আমরা কিছু বার্তা প্রিন্ট করতে পারি । একে একে আমরা অনেক কিছুই প্রিন্ট করে ফেলেছি । এবার আমরা দেখবো আমাদের ভ্যারিয়েবল এবং ডাটা টাইপ । আমরা যদি সি করে থাকি তাহলে আমাদের জানা থাকার কথা ডাটা টাইপ গুলো কি কি হতে পারে । চলেন এবার আলোচনায় আসা যাক ।

ভ্যারিয়েবল কি ?

আমাদের বাসায় তহ মসলা থাকেই । আমরা তহ গুঁড়া মসলা গুলো ফেলায় রাখি না আমরা কিছু পাত্রে সংরক্ষণ করি । যেমন ধরেন জিরার গুঁড়া , মরিচের গুঁড়া ইত্যাদি মসলার গুঁড়া আমরা বিভিন্ন কৌটায় রাখি । আমাদের এরকম ভ্যালু রাখার জন্য ও জায়গা লাগে । আমরা এই জন্য ব্যবহার করি ভ্যারিয়েবল টার্ম টা । ধরেন আপনাকে আমি এক কেজি গরুর মাংস দিলাম আপনি একেটা পলিথিন এ করে মাংস গুলো ফ্রিজ এ রেখে দিলেন । তাহলে কোথায় রাখলেন ? পলিথিন এ তাহলে আমাদের ভ্যারিয়েবল হলো পলিথিন । আর মাংস টা আমাদের ভ্যালু । আশা করি বুঝতে পেরেছেন ।

একটা নতুন ফাইল তৈরি করেন নাম দেন আপনার ইচ্ছা মতো আবার ফাইল এর নাম এ স্পেস দিয়েন না । যেমনঃ variable and data type.java এমন দিলে Error দিবে । তাই ফাইল এর নাম এমন দিবেন যে কেউ নাম পড়েও যাইতে কিছু ধারণা নিতে পারবে আসলে কি লেখা আছে ।

এই লেখাটা পড়তে পারেনঃ

All Java components require names. Names used for classes, variables, and methods are called identifiers. In Java, there are several points to remember about identifiers. They are as follows -

Step 1 − All identifiers should begin with a letter (A to Z or a to z), currency character ($) or an underscore (_).

Step 2 − After the first character, identifiers can have any combination of characters.

Step 3 − A keyword cannot be used as an identifier.

Step 4 − Most importantly, identifiers are case sensitive.

Step 5 − Examples of legal identifiers: age, $salary, _value, __1_value.

Step 6 − Examples of illegal identifiers: 123abc, -salary.

জাভার কিছু কি-ওয়ার্ড আছে যেগুলো আমরা আমাদের ভ্যারিয়েবল এর নাম দিতে পারবো না । < - https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html - >

ডাটা টাইপ

ডাটা টাইপ নিয়ে পরার আগে আমাদের কিছু বিষয় জানা দরকার । আমরা সবাই জানি পূর্ণসংখ্যা সম্পর্কে । যেখানে কোন দশমিক সংখ্যা থাকবে না তাই মুলত পূর্ণসংখ্যা । আবার দশমিক সংখ্যার সম্পর্কেও জানি যেখানে সংখ্যা কিছু টা এমন দেখায় ১৫.৫ । যদি বলি আমরা একটা ক্যারেক্টার শুধু রাখতে পারি তাহলে শুধু একটাই হবে যেমনঃ a । আবার আমরা বহু-ক্যারেক্টার ও রাখতে পারি যেমনঃ "Hello World" । এরপর আমরা ছোট বেলায় True / False করেছি প্রশ্নে কোনটা ভুল আর কোনটা ঠিক তাই শুধু লিখতে হবে । আমরা এই কয়েকটা ডাটা টাইপ নিয়েই কাজ করবো ।

তাহলে আমরা জানলাম কি কি সম্পর্কে তা হচ্ছেঃ

  • পূর্ণসংখ্যা
  • দশমিক সংখ্যা
  • একটা ক্যারেক্টার
  • বহু-ক্যারেক্টার
  • সত্যমিথ্যা

এবার আমাদের ইংলিশ টার্ম টার সাথে পরিচয় হওয়া দরকার ।

  • Integer ( পূর্ণসংখ্যা )
  • Float ( দশমিক সংখ্যা )
  • Double ( দশমিক সংখ্যা কিন্তু বড় সাইজ এর রাখা যায় )
  • Single Character ( একটা ক্যারেক্টার )
  • Simply we can say String ( বহু-ক্যারেক্টার )
  • Boolean ( সত্যমিথ্যা )

এবার আমরা নতুন ফাইল তৈরি করি । আপনারা একটা ফোল্ডার এ সব ফাইল রেখে দিয়েন এতে করে সব কোড একজায়গায় থাকবে । এরপর ওই ফোল্ডার বানানো হইলে right click করে open with vscode দিবেন । তাহলে ওই ফাইল টা নিয়ে vscode ওপেন হবে ।

এবার আমাদের কোড সুপরিচিত কোড লিখে দেই

public  class  variable_data_type {

public  static  void  main(String[] args) {

}

} এরপর

public  class  variable_data_type {

public  static  void  main(String[] args) {

int  num  =  567;
float  num2  =  5.67f;
double  num3  =  57656.22;
char  single_char  =  'c';
String  multi_char  =  "Hello,World";


   }

}

লিখার পরে আমরা প্রিন্ট করে দেখি

public  class  variable_data_type {

public  static  void  main(String[] args) {

int  num  =  567;
float  num2  =  5.67f;
double  num3  =  57656.22;
char  single_char  =  'c';
String  multi_char  =  "Hello,World";


System.out.println("Integer Value: "  +  num);
System.out.println("Floating Value: "  +  num2);
System.out.println("Double Value: "  +  num3);
System.out.println("Single Character: "  +  single_char);
System.out.println("Multi Character: "  +  multi_char);
System.out.println("Boolean Value: " + bool_value);

}

}

আউটপুটঃ

Integer Value: 567
Floating Value: 5.67
Double Value: 57656.22
Single Character: c
Multi Character: Hello,World
Boolean Value: true

তাহলে আমাদের কাছে জিনিস টা অনেকটাই পরিষ্কার । এখন আমরা জানি যে আমাদের পূর্ণসংখ্যা , দশমিক সংখ্যা , একটা ক্যারেক্টার এর জন্য কি কি ডাটা টাইপ ব্যবহার করতে হবে ।

জিনিসগুলো আরেকবার ভেঙ্গে শিখি চলেন । আমরা যদি int num = 567;এই লাইন টায় দেখি তাহলে আমরা দেখতে পাবো যে আমাদের int হচ্ছে ডাটা টাইপ আর num হচ্ছে আমাদের ভ্যারিয়েবল এর নাম এবং 567 আমাদের ভ্যালু । মনে আছে তহ ? পলিথিন মাংস এর কথা ? 😅

শর্তের উপর শর্ত { কন্ডিশনাল স্টেটমেন্ট }

এবার ভ্যারিয়েবল কিভাবে নিতে হয় তারপর ডাটা টাইপ কিভাবে ব্যবহার করতে হয় তা তহ জানলাম । এবার আমরা শর্তের উপর শর্ত শিখবো 😁 । যেইটাকে আমরা বলি কন্ডিশনাল স্টেটমেন্ট এখানে আমরা শর্ত নিয়ে কাজ করবো । চলেন একটা ভেজাল গল্প দিয়ে শুরু করি ।

একটা ভেজাল গল্প

রফিক ঢাকাতেই থাকে । বর্তমানে সি এস ই তে পড়ছে । রফিক এর ভার্সিটিতে আজকে কন্ডিশনাল স্টেটমেন্ট করানোর কথা । রফিক আজকে যথারীতি ভার্সিটি এর জন্য প্রস্তুতি নিচ্ছিলো । হুট করে আজকে বৃষ্টি চলে আসলো , এখন রফিক মুশকিল এর পরে গেলো । এবার রফিক , রেইনকোট যখন নিল তখন দেখলো বৃষ্টি প্রায় শেষ কিন্তু মেঘলা আকাশে রোদ ও দেখা যাচ্ছে । এবার রফিক এর মাথায় চমৎকার একটা জিনিস চলে আসলো । ও নিজে থেকে লজিক বানানো শুরু করলো । লজিক এরকম কিছু টা যে , যদি বৃষ্টি আসে তাহলে আমি রেইনকোট নিব আর যদি না আসে তাহলে এমনেই যাবো । লজিক চিন্তা করতে করতে রফিক বাসা থেকে বের হয়ে যায় । তখন রোদ এর ভরপুর , রফিক একটু হেসে বলল আমি নিজে থেকে কন্ডিশনাল স্টেটমেন্ট বুঝে ফেললাম হিহি ।

গল্প থেকে কি শিখলাম ?

যদি বৃষ্টি আসে তাহলে আমি রেইনকোট নিব আর যদি না আসে তাহলে এমনেই যাবো । এই কথাটার দিকে তাকাই একটু । একটু ভাঙ্গি যদি কে বলছি if আর যদি না কে বলছি else । তাহলে আমরা লিখতে পারি যে

 if ( যদি বৃষ্টি আসে তাহলে আমি রেইনকোট নিব আর যদি না আসে তাহলে এমনেই যাবো ) 
 {
    		রেইনকোট নিব ।
 }
 
  else {
    	এমনেই যাবো 
   }

আমরা if - else এর syntax টা যদি দেখি

if (condition) {
    // run code if test expression is true
}
else {
    // run code if test expression is false
}

এবার আমাদের আসল কোড টা এমন হবে।
public class Main
{
	public static void main(String[] args) {
    boolean rain_comes = false;
    
    if(rain_comes == true){
        System.out.println("Take umbrella");
    }
    else{
        System.out.println("Don't take umbrella");
    }
    
	}
}

Breakdown

এখানে আমাদের পরিচিত সেই কোড যেখানে আমরা class আর main function লিখে আমাদের প্রোগ্রাম টি লিখে ফেললাম । এখানে আমরা নিয়েছি boolean rain_comes = false; নামে একটি ভ্যারিয়েবল নিয়েছি । যেখানে আমরা assign করেছি false । এরপর আমরা if else এর একটা স্টেটমেন্ট নিয়েছি । যেখানে মাঝে আমরা রেখেছি rain_comes কে । যদি rain_comes == true হয় তাহলে System.out.println("Take umbrella"); প্রিন্ট করতেসে । যদি ওইটা মিথ্যা হয় তাহলে System.out.println("Don't take umbrella"); এইটা প্রিন্ট করবে । আশা করি বুঝতে পারসেন ।

আমি বেশকিছু উদাহরণ এখানে অ্যাড করে দিব নে , দেখে নিয়েন 🫣 । টাটা