Monday, March 17, 2014

Lesson 8

  এবার JDK5/6 সঠিক ভাবে ইন্সটলেসন হয়েছে কিনা বা Java কাজ করছে কিনা এর স্ক্রীনশট:

ডস প্রমোপটে গিয়ে টাইপ করুন javac অত:পর দেখুন আউটপুট কি আসে..

javac

যদি নিম্নের স্ক্রীনশটটির মত আসে তাহলে বুঝতে হবে জাভা ইন্সটলেসন সঠিক হয়নি। এর কারন হল এখানে   Java JDK এর পাথ সেট করা নাই তাই এই ম্যাসেজটি দেখাচ্ছে। এখন আমরা জাভার পাথ সেট করবো

javac2

নিম্নে লক্ষ্য করুন জাভা কোথায় ইনস্টল হয়েছে C:\Program Files\Java

javac4ক্

এখানে jdk এর ফোলডারটি লক্ষ্য করুন  C:\Program Files\Java\jdk1.6.0_18

javac4

এই jdk1.6.0_18 ফোল্ডারটির অভ্যন্তরের ফাইলগুলো লক্ষ্য করুন

javac5

এখান bin নামের যে ফোল্ডারটি দেখা যাচ্ছে এর অভ্যন্তরের জাভার কম্পাইলিং এর জন্য ব্যবহারকৃত ইএক্সজি ফাইলসমূহ

javac6

Java JDK PATH সেটিং এর জন্য My computer>Property> Advance>  Environment Variables এ ক্লিক করুন

env

javac3

User variables for Administrator এর New তে ক্রিক করুন এবং নিম্নে প্রদশীত স্ক্রীনশটের মত  Variable name: PATH  Variable value: C:\Program Files\Java\jdk1.6.0_18\bin; আপনার পিসির Java JDK এর সোর্স পাথ দেখান।

javac7

উপরোক্ত স্ক্রীন শটে খুব সতর্কতার সহিত লক্ষ্য করুন Variable name: PATH  Variable value: C:\Program Files\Java\jdk1.6.0_18\bin;  এর শেষে ; (সেমিকোলন) দেয়া হয়েছে এটা যেন কোনক্রমে বাদ  না পড়ে যায় সে দিকে সজাগ দৃষ্টি রাখতে হবে।

OK করুন আবার  OK  করুন এবং পিসি রিস্টার্ট করুন

PC অন হয়ার পর ডস প্রমোপটে যান এবং টাইপ করুন javac এবং এন্টার করুন, এন্টার করার পর যদি নিম্নের স্ক্রীনশটটির মত আউটপুট আসে তাহলে বুঝতে হবে ava JDK5/6 সঠিক ভাবে ইন্সটলেসন হয়েছে।

javac8

Java JDK5/6 সঠিক ভাবে ইন্সটলেসন শেষ হয়েছে এবার আমরা একটি java editor সিলেক্ট করবো যা দ্বারা খুব সহজে আমরা java এডিট , কম্পাইল করতে পারবো।

Lesson 7

নিম্নে জাভা ডেভেলপমন্টে টুল JDK6.u18/JDK1.5.0.06 ইনস্টল পদ্বতির স্ক্রীনশট :

প্রথমে Java JDK5/6 ডাউনলোড করুন  অত:পর Java ইনস্টলের জন্য নিম্নে প্রদর্শিত  আইকনে ক্লিক করুন

jdk

উইন্ডোজ এক্সপির ক্ষেত্রে এ ধরনের একটি ম্যাসেজ দেখতে পাবেন। রান এ ক্লিক করুন

runJ

অত:পর একচেপ্ট বাটনে ক্লিক করুন

accept

এবার নেক্সট বাটনে ক্লিক করুন

y_01next

অপেক্ষা করুন...

y_p1finish

অপেক্ষা করুন...

y_pfinish

অপেক্ষা করুন...

y_1next

এবার নেক্সট বাটনে ক্লিক করুন

y_next

অপেক্ষা করুন...

y_1accept

ফিনিশ বাটনে ক্লিক করুন

y_finish

Java JDK5/6 ইন্সটলেসন শেষ করার পর এখন আমরা দেখবো Java JDK5/6 সঠিক ভাবে ইন্সটলেসন হয়েছে কিনা বা Java কাজ করছে কিনা।

lesson 1

অভিজ্ঞ, অনভিজ্ঞ প্রোগ্রামার এবং সাধারন ইউজার সবার জাভা প্রোগ্রামিং লেনগুয়েজ সম্বন্ধে সম্যক ধারনা দেওয়ার জন্য আমার এই ক্ষুদ্র প্রচেষ্টা।আমি একজন প্রোগ্রামার হিসাবে চেষ্টা করবো পরিচ্ছন বাংলা এবং প্রয়োজনীয় ইংরেজী ভাষার ব্যবহারসহ ছোট ছোট টপিকস আকারে ধারাবাহিকভাবে প্রত্যকটা বিষয় আলোচনা করার,আমি আশা করি জাভা প্রোগ্রামিং লেনগুয়েজ হাতেখড়ি দ্বারা সবাই উপকৃত হবেন।
jlogo

প্রোগ্রাম লেনগুয়েজ এর প্রাথমিক ধারনা:

কম্পিউটার  আবিষ্কারের পর থেকেই তা দিয়ে জটিল সমস্যা সহজে সমাধানের চেষ্টা  অব্যাহত   রয়েছে এবং গবেষনা ও  উন্নয়নমূলক  কাজ  চলছে বিভিন্ন প্রোগ্রামিং পদ্বতি নিয়ে।  মডিউলার প্রোগ্রামিং, টপ-ডাউন প্রোগ্রামিং,  বটম-আপ প্রোগ্রামিং উল্লখযোগ্য কয়েকটি  প্রোগ্রামিং পদ্বতি। সকল প্রোগ্রামিং  পদ্বতির উদ্দেশ্য অভিন্ন- সহজে সমস্যা সমাধানের  জন্য   প্রোগ্রাম তৈরী, প্রোগ্রামের গ্রহনযোগ্যতা বৃদ্বি, ব্যবহৃত ডাটার সহজ সংরক্ষন ও গোপনীয়তা রক্ষা ইত্যাদি। বর্তমানে  বাস্তবতার অলোকে   সমস্যা সমাধানের প্রতিশ্রুত দিয়ে  প্রোসিডিউর অরিয়েন্টড প্রোগ্রামিং পদ্বতির ধারনাসহ অতিরিক্ত  কিছু  ধারনা  নিয়ে প্রোগ্রামিং জগতে নতুন চমক নিয়ে আসে Object-oriented programming (OOP)পদ্বতি।
জাভা লেনগুয়েজে একটি সহজ, সাবলীল, সরল, ছোট্র একটি প্রোগ্রামিং লেনগুয়েজ। জাভা প্রোগ্রামিং কৌশল অনেকটা সি এবং সি ++ এর মত। প্রোগ্রামিং লেনগুয়েজে সি এবং সি ++ এর বিঘ্নসৃষ্টিকারী বৈশিষ্ট্যাবলী বাদ দিয়ে নতুন অনেক বৈশিষ্ট্যর সমন্বয় ঘটানো হয়,  যা জাভাকে  সত্যিকার অর্থে একটি সহজ সাবলীল, বিশ্বস্ত ও সুবহনশীল লেনগুয়েজে  পরিনত করেছে। জাভা লেনগুয়েজের  প্রধান  বৈশিষ্ট হচ্ছে নিদিষ্ট কোন প্লাটফম নির্ভরহীনতা। জাভাই প্রথম অবজেক্ট অরিয়েন্টড প্রোগ্রাম লেনগুয়েজ যা  নিদিষ্ট কিছু  হার্ডওয়্যার  সফটওয়ারের  গন্ডির  মধ্য সীমাবদ্ব নয়। ফলে এক কম্পিউটার কিংবা অপারেটিং সিস্টেমে লেখা জাভা প্রোগ্রাম ভিন্ন কম্পউটার কিংবা অপারেটিং  সিস্টমে রান করা সম্ভব।  বর্তমান সময়ে  ইন্টারনেট এবং নেটওয়ার্ক প্রোগ্রামের  জনপ্রিয়তা বৃদ্বি পাওয়ায় পূর্নাঙ্গ অবজেক্ট অরিয়েন্টেড প্রোগ্রাম লেনগুয়েজ হিসাবে জাভা  অন্তত্য জনপ্রিয়তা  লাভ করেছে এবং  আগামীতে এর পরিধি  আরো বৃদ্বি  পাবে বলে  আশা  করা  যায় ।
Object-oriented programming (OOP) হল প্রোগ্রামিং জগতে এক নতুন সংযোজন। OOP পদ্বতিতে  কতগুলো শব্দ  বার  বার ব্যবহৃত হয়,OOP  প্রোগ্রাম বুঝতে হলে এই শব্দ সন্বন্ধে মৌলিক ধারনা  থাকা বিশেষ প্রয়োজন।
Object, Class, Instance, Method, Message passing, Inheritance, Abstraction, Encapsulation, (Subtype) polymorphism, Decoupling.

Object কি ?

সাধারনভাবে object বলতে বুজায় কোন বস্তু, আপনি real-world এ অনেক উদাহরণ খুঁজে পাবেন: আপনার desk, আপনার টেলিভিশন, আপনার bicycle  একটি অবজেক্ট, বই, কলম, খাতা, কম্পিউটার এগুলো প্রত্যকটিই এক একটি অবজেক্ট। প্রতিটি অবজেক্টের কিছু বৈশিষ্ট থাকে, যেগুলোর জন্য একটি object অন্য একটি object থেকে অলাদা। OOP প্রোগ্রামিং পদ্বতির রান  টাইম এনটিটি হল object। object হল software bundle of related state and behavior.. চলবে.........................

Saturday, March 15, 2014

Lesson 10

JCreator ইন্সটলেসন করার পদ্বতির স্ক্রীনশটগুলো লক্ষ্য করুন এবং অনুস্মরন করুন:

JCreator সফটোয়ারটি নিদিষ্ট সোর্স থেকে ডাউনলোড করে নিন এবং নিম্নোক্ত স্ক্রীনশট অনুযায়ী ইনস্টল প্রক্রিয়া সম্পন্ন করুন।


yk jcreator setup1

Next বাটনে ক্লিক করুন

yk jcreator setup2

Next বাটনে ক্লিক করুন

yk jcreator reg3a

Next বাটনে ক্লিক করুন

yk jcreator setup4

Yes বাটনে ক্লিক করুন

yk jcreator setup5

Next বাটনে ক্লিক করুন

yk jcreator setup6

Next বাটনে ক্লিক করুন

yk jcreator setup7

Install বাটনে ক্লিক করুন

yk jcreator setup8

অপক্ষো করুন...

yk jcreator setup9

Finish বাটনে ক্লিক করুন

yk jcreator setup10a

Save settings for all users সলিক্টে কর Next বাটনে ক্লিক করুন

yk jcreator setup11

yk jcreator setup12

Java সিলেক্ট করুন এবং Next বাটনে ক্লিক করুন

yk jcreator setup13

JDK সোর্স সিলেক্ট করুন এবং Next বাটনে ক্লিক করুন

yk jcreator setup14

Finish বাটনে ক্লিক করুন

yk jcreator setup15

yk jcreator setup16

File>newতে ক্লিক করুন

yk jcreator setup17

Java Class সিলেক্ট করুন এবং Next বাটনে ক্লিক করুন

yk jcreator setup18

class name লিখুন এবং আপনার জাভা ফাইল লোকোশান সিলেক্ট করুন

yk jcreator setup19

yk jcreator setup20

Finish বাটনে ক্লিক করুন

yk jcreator setup21

এই লিংক থেকে এই মূল্যবান জাভা এডিটরটি ডাউনলোড করুন বিনামূল্যে : এটা  ভবিষ্যত প্রোগ্রামারদের এবং টেকটিউনস এর জন্য উপহার আমার পক্ষ থেকে।

JCreator রেজিষ্ট্রেশন প্রক্রিয়া:

JCreator এ যান এবং Help এ ক্লিক করে Enter registraration details ক্লিক করুন

Name এবং  Key নাম্বার দিন
এবার ok ক্লিক  করুন
yk jcreator reg3
এবার ok ক্লিক করে রেজিষ্ট্রশেন প্রক্রিয়া সম্পন্ন করুন
এই লিংকটি থেকে JCreator এর মূল্য সম্বন্ধে ধারনা পাবেন http://www.jcreator.com/register_buy.htm

Lesson 9

জাভা এডিটর- Jcreator

Java JDK5/6 সঠিক ভাবে ইন্সটলেসন শেষ হবার পর এবার আমরা একটি java editor সিলেক্ট করবো যা দ্বারা খুব সহজে আমরা java এডিট , কম্পাইল করতে পারবো।
এই ক্ষেত্রে আমার প্রথম পছন্দ Jcreator, এই ক্ষেত্রে Jcreator সন্বন্ধে কিছুটা ধারনা থাকা আবশ্যক।

jcr

JCreator একটি powerful interactive development environment (IDE)

JCreator দিয়ে যা যা করা যাবে

Microsoft Visual Studio এর মত প্রজক্টে ম্যানজে করা যাবে।

নিজের ইচ্ছানুযায়ী color schemes নির্বাচন করত পারেন XML এর জন্য।

খুব সহজেই কোড লিখতে পারেন প্রজেক্ট টেম্পপ্লেটসহ।

খুব সহজেই Debug করুন DOS prompts না গিয়ে। এছাড়া অনেক সুবিধা পাওয়া যায় JCreator থেকে। বিস্তারিত জানার জন্য এই লিংক থেকে ঘুরে আসুন http://www.jcreator.com/
JCreator দিয়ে বিভিন্ন ধরনের টুলস কনফিগার করা যায়। যেমন-Java Development Kit (JDK) tools এবং  JDK tools to compile, debug, and run the project. এছাড়া Compiler, Ant builder, Interpreter, Applet viewer, Debugging করা যায়।
এছাড়া User Tool 1, User Tool 2, ব্যবহার করা যায় এবং তাতে XML validator,
RMI compiler,JAVA code formatter,Version control,Batch files এডিট করা যায়।

JCreator এর একটি ভালো বৈশিষ্ট হল JDK 1.6.0 থেকে JDK 1.0.2 সবধরনরে নতুন পুরাতন প্ল্যাটফরম কাজ করে।

যেমন

JDK 1.6.0
JDK 1.6.0 - J2EE
JDK 1.6.0 - J2ME
JDK 1.5.0
JDK 1.4.2
JDK 1.2.2
JDK 1.0.2
সঠিক ভাবে JCreator ইন্সটলেসন করার স্ক্রীনশটগুলো লক্ষ্য করুন এবং অনুস্মরন করুন।

Lesson 5

Interface কি?

আমরা ইতিমধ্যে শিখেছি, objectsপদ্ধতির মধ্য দিয়ে বাইরে বিশ্বের সঙ্গে তাদের পারস্পরিক যোগাযোগ কিভাবে সংজ্ঞায়িত করেন ।  বাইরে বিশ্বের সঙ্গে objectএর ইন্টারফেস সংগঠিত করে; আপনার টেলিভিশনের  front বাটন উদাহরণের জন্য ব্যবহার করেছিল, যার মধ্যে ইন্টারফেস আছে এবং এর প্লাস্টিক casingএর অন্যান্য পাশে electrical wiring। আপনি "power" button চাপুন  television  on and off করার জন্য.

In its most common form, an interface is a group of related methods with empty bodies. A bicycle's behavior, if specified as an interface, might appear as follows:

interface Bicycle { void changeCadence(int newValue);

// wheel revolutions per minute void changeGear(int newValue);

void speedUp(int increment);

void applyBrakes(int decrement); }

এই ইন্টারফেস বাস্তবায়ন করতে, আপনার class এর নাম পরিবর্তন করতে হবে (উদাহরণস্বরুপ, যেমন ACMEBicycle এটি একটি নির্দিষ্ট ব্র্যান্ডের bicycle) and you'd use the implements keyword in the class declaration:

class ACMEBicycle implements Bicycle {// remainder of this class implemented as before }

Implementing an interface allows a class to become more formal about the behavior it promises to provide. class এবং বাইরে বিশ্বের মধ্যে ইন্টারফেস আকারে এটি একটি contract, এবং এই contract টি compilerএর দ্বারা build করা হয়। If your class claims to implement an interface, all methods defined by that interface must appear in its source code before the class will successfully compile.

প্যাকেজ কি?

A package is a namespace that organizes a set of related classes and interfaces. প্যাকেজেক Conceptually আপনার computer এ আলাদা ফোল্ডারের similar  ভাবতে পারেন। আপনি HTML pages in one folder, images in another, and scripts or applications in yet another। Because software written in the Java programming language can be composed of hundreds or thousands of individual classes, it makes sense to keep things organized by placing related classes and interfaces into packages.

জাভা প্ল্যাটফর্ম একটি বড় class library (a set of packages) আপনার নিজের অ্যাপলিকেশনে ব্যবহারের জন্য উপযুক্ত। এই library টি " অ্যাপলিকেশন প্রোগ্রামিং ইন্টারফেস ", অথবা " এ.পি.আই. " for short। এর প্যাকেজ general-purpose প্রোগ্রামিংএর সঙ্গে কাজ সর্বাপেক্ষা সাধারণভাবে প্রতিনিধিত্ব করতে সহযোগিতা করে। a String object  contains state and behavior for character strings; a File object allows a programmer to easily create, delete, inspect, compare, or modify a file on the filesystem; a Socket object allows for the creation and use of network sockets; various GUI objects control buttons and checkboxes and anything else related to graphical user interfaces.

The Java Platform API Specification contains the complete listing for all packages, interfaces, classes, fields, and methods supplied by the Java Platform 6, একজন প্রোগ্রামার হিসেবে, এইটি তথ্যসূত্র ডকুমেনটেশনট আপনার একক সর্বাপেক্ষা গুরুত্বপূর্ণ রেফারেন্স হিসাবে কাজে আসবে। গত ৫টি টিউটোরিয়াল এ Object-Oriented Programming Concepts এর কিছু প্রয়োজনীয় বিষয় নিয়ে লোচনা করা হয়েছে। পরবতীতে জাভা সফটোয়্যার ইনস্টল, কনফিগার এবং জাভা এডিটর এবং জাভা Language  Basics নিয়ে বিস্তারিত বননা থাকবে। চলবে..........

Lesson 4

What Is Inheritance?

যে প্রক্রিয়ায় কোন ক্লাস বা অবজেক্টের বা অন্য কোন ক্লাস বা অবজেক্টের বৈশিষ্ট্য অর্জন করে তাক Inheritance বা উত্তরধিকার সূত্রে বলা হয়। একই প্রোগ্রামে  কিছু প্রোগ্রামাংশ বারবার লেখার চেয়ে একবার লিখে তা পুনঃ পুনঃ ব্যবহার করা সুবিদাজনক। প্রোগ্রামে ব্যবহৃত কোন ক্লাস অন্যান্য প্রোগ্রামে ব্যবহার করা যায়। এভাবে পুরাতন ক্লাস থেকে নতুন ক্লাস তৈরি করার কৌশলকে Inheritance বলা হয়।

Mountain Bike,Road bikes, উদাহরণের জন্য এবং সমলয়ে bikes, bicyclesএর সমস্ত শেয়ার গুণাবলিসমূহ (বর্তমান গতি, বর্তমান pedal cadence, বর্তমান gear)। প্রত্যেক এখনও অতিরিক্ত বৈশিষ্ট্য ও সংজ্ঞায়িত করে যে তাদেরকে আলাদা তৈরি করে: সমলয়ে bicyclesএর দুই আসন রয়েছে এবং handlebarsএর দুই সেট; রাস্তা bikesএর বিন্দু handlebars রয়েছে; কিছু পর্বত bikesএর একটি অতিরিক্ত শৃঙ্খল বলয়, তাদের একটি নিম্নতর gear অনুপাত রয়েছে। Object-oriented প্রোগ্রামিং অন্যান্য শ্রেণী থেকে সাধারণভাবে ব্যবহৃত স্ট্যইট এবং আচরণ উত্তরাধিকারসূত্রে পেতে শ্রেণী অনুমোদন করে। এই উদাহরণেটি, Bicycle MountainBike, RoadBikeএর superclassহবে, এবং TandemBike। জাভা প্রোগ্রামিং ভাষাতে, প্রত্যেক শ্রেনী একটি সরাসরি superclass রাখতে অনুমোদন করা হয়, এবং প্রত্যেক superclassএর subclassesএর একটি অসীম সংখ্যার জন্য সম্ভাবনা রয়েছে:

concepts-bikeHeirarchy

একটি subclass তৈরি করার জন্য বাক্যরীতি সহজ। আপনার class ঘোষণার শুরুতে, মূলশব্দ ব্যবহার করুন প্রসারিত করুন, যা উত্তরাধিকারসূত্রে পেয়েছেন এবং  শ্রেনীর নামের দ্বারা অনুসরণ করেছিলেন:

নীচের উদাহরনটি লক্ষ্য করুন-

class MountainBike extends Bicycle {// new fields and methods defining a mountain bike would go here
}

এটি MountainBike এর ক্ষেত্রে  Bicycle হিসেবে পদ্ধতি এর , বৈশিষ্ট্যে একচেটিয়াভাবে ফোকাস করতে এর কোড এখনও অনুমোদন করে যে এটি অনন্য তৈরি করে। এটি পড়তে আপনার subclasses সহজের জন্য কোড তৈরি করে। উপরন্তু, আপনার স্ট্যাট এবং আচরণ সঠিকভাবে ডকুমেন্টতে  গ্রহণ করে যা প্রত্যেক superclass সংজ্ঞায়িত করেন, since that code will not appear in the source file of each subclass.

Lesson 6

জাভা পুরোপুরিভাবে ইন্টারনেট ও ওয়ার্ল্ড ওয়াইড ওয়েব প্রযুক্তির সাথে সম্পর্কযুক্ত। ইন্টারনেটে এ্যপলেট প্রোগ্রাম নির্বাহের জন্য নির্মিত প্রথম জাভা এ্যপলিক্যশন প্রোগ্রাম হল হটজাভা। হটজাভায় এ্যপলেট প্রোগ্রাম ব্যবহারের  সুবিধাসহ জাভা ভার্চুয়াল মেশিন ব্যবহারের   মাধ্যমেই জাভার প্রকৃত  ক্ষমতা প্রদর্শন ও উত্থান শুরু  হয়।  ইন্টারনেট ব্যবহারকারীগন জাভা ভাষায় এ্যপলেট প্রোগ্রাম  রচনা করে  তা জাভা এনাবেল ব্রাউজার ব্যবহার করে তা লোকাল কম্পিউটারে চালনা করতে পারেন কিংবা জাভা এনাবেলড ব্রাউজার ব্যবহার করে দূরবতী কম্পিউটার থেকে এ্যপলেট প্রোগ্রাম ডাউনলোড করে তা লোকাল কম্পিউটারে চালনা করতে পারেন। বিপরীতক্রমে ইন্টারনেট ব্যবহারকারীগন জাভা এ্যপলেটের মাধ্যমে তাদের ওয়েভপেইজ তৈরী করে দূরবতী কম্পিটারের ব্যবহারকারীদের জন্য ব্রাউজ কিংবা ডাউনলোড করার জন্য স্থাপন করতে পারেন । এ জন্যই জাভা ইন্টারনেট প্রোগ্রাম ভাষা বলে সুপরিচিত। মূলত ইন্টারনেটের সাথে তথ্য প্রযুক্তির সেতুবন্ধন তৈরী করার ক্ষমতাই জাভাকে একটি অপ্রতিদ্বন্ধী প্রোগ্রাম ভাষায় রূপদান করেছে।

জাভা কম্পাইলার

জাভার প্রথম ভার্সন (১.০১) প্রকাশতি হয় ১৯৯৬ সালে।এর কিছুদিন পরে আসে ১.০২ ভার্সন। তবে এ দুটি ভার্সন বড় এবং জটিল মানের প্রোগ্রাম িলখার জন্য উপযুক্ত ছিল না। ১৯৯৭ সালে আসে বড় এবং জটিল মানের প্রোগ্রাম লিখার জন্য উপযুক্ত এবং জাভা বিল্টইন ক্লাস সমৃদ্ব জাভা ১.১ ভার্সন। আরো বছর খানেক পরে, ১৯৯৮ সালে আসে আরো অধিক সংখ্যক বিল্ট-ইন ক্লাস ও ডকুমেন্ট সমৃদ্ব জাভা  ১.৩ ভার্সন। এখানে উল্লেখ্য যে, জাভা ১.২ ও তার পরবর্তী ভাসনসমূহ জাভা ২ নামে পরিচিত।
জাভা কম্পাইলার বিপুল সংখ্যক ডেভলেপমন্টে টুলস এবং সহস্রাধকি ক্লাস ও মেথডের সমন্বয়ে গঠিত। জাভা   ডেভেলপমন্টে টুলসসমূহ জেডিকে নামে পরিচিত যা সাধারনত JDK1.01, JDK1.02,  JDK1.1.1, JDK1.1.2, JDK1. 1.3, JDK1.2, JDK1.3, JDK1.4,JDK1.5,JDK6.u18,এখানে  1.01, 1.1.1, 1.1.2,  1. 1.3,  1.2,  1.3 , 1.4, 1.5, 6.u18 ইত্যাদিকে জেডিকে এর বিভিন্ন ভার্সন বুঝায়।
তবে জাভা কম্পাইলার জেডিকে ভিন্ন অন্য কোন ফোল্ডার হিসাবে যেমন: Java, Java1.1, Java1.2, Java1.3, Java2  ইত্যাদি নামে থাকতে পারে।
এই লিংক খেকে Java JDK6.u18 ডাউনলোড করুন  http://java.sun.com/javase/downloads/index.jsp অথবা
এই লিংক খেকে Java JDK1.5.0.06 ডাউনলোড করুন  http://www.hyperfileshare.com/d/90900815
নিম্নে জাভা ডেভেলপমন্টে টুল JDK6.u18/JDK1.5.0.06 ইনস্টল পদ্বতি দেখান হল।

Lesson 3

class কি?

class হল ইউজার-ডিফাইনড বা ব্যবহারকারী নির্ধারিত ডেটা টাইপ, যা প্রোগ্রামে বিল্ট   ইন ডেটা  টাইপের  মত কাজ করে। এটি class এ বিল্ট ইন ডেটা টাইপের কয়েকটি ভেরিয়েবল এবং ঐ ভেরিয়েবল  এক্সেস  করার জন্য কতগুলো ফাংশন থাকে। প্রয়োজন অনুসারে প্রোগ্রামে class বর্ননা করা হয়।

প্রকৃত বিশ্বে, আপনি একই ধরনের অনেক স্বতন্ত্র বস্তু সামজস্য খুঁজে পাবেন। bicyclesএর হাজার হাজার একই রকম তৈরি করা এবং একই মডেলের প্রত্যেক bicycle blueprintsএর একই সেট থেকে নির্মাণ করা হয়েছিল.এবং একই উপাদান দিয়ে। object-oriented শর্তাবলীতে, আমরা জানি  যে আপনার bicycle ,bicycles হিসেবে একই শ্রেনীর । একটি শ্রেনী থেকে blueprint যেটি স্বতন্ত্র বস্তু তৈরি করা হয়। এখানে বলা হয়েছে যে  প্রথমে একটি bicycle তৈরী করে পরবতিতে তা থেকে অনেক গুলো সাইকেল তৈরী করা হয়।  **লেখকের (এম ইয়াকুব)অনুমতি ব্যতিরেকে এই লেখার  আংশিক বা পূর্ণ অংশ কোন ধরনের মিডিয়ায় পুনঃপ্রকাশ করা যাবে না।

জাভায় class ঘোষনার জন্য class keyword র পর ঐ class এর নাম দিতে হয়। class বডিতে class এর মেম্বার ভেরিয়েবলগুলোর ঘোষনা এবং মেম্বার ফাংশনগুলোর বর্ননা থাকে।

নিম্নলিখিত  উদাহরনটি লক্ষ্য করুন এখানে class হল Bicycle :

Bicycle class is one possible implementation of a bicycle:
class Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
void changeCadence(int newValue) {
cadence = newValue;
}
void changeGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
void applyBrakes(int decrement) {
speed = speed - decrement;
}
void printStates() {
System.out.println("cadence:"+cadence+" speed:"+speed+" gear:"+gear);
}
}
The syntax of the Java programming language আপনাকে নতুন করে দেখবে, but the design of this class is based on the previous discussion of bicycle objects. The fields cadence, speed, and gear represent the object's state, and the methods (changeCadence, changeGear, speedUp etc.)
একটি bicycle এর জন্য blueprint মাত্র  একটি,  একটি অ্যাপলিকেশনে but the design of this class is based on the ব্যবহার করা যাবে।
এখানে একটি Bicycle class যা দুইটি আলাদা Bicycle objects and invokes their methods:
class Bicycle {
public static void main(String[] args) {
// Create two different Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
// Invoke methods on those objects
bike1.changeCadence(50);
bike1.speedUp(10);
bike1.changeGear(2);
bike1.printStates();
bike2.changeCadence(50);
bike2.speedUp(10);
bike2.changeGear(2);
bike2.changeCadence(40);
bike2.speedUp(10);
bike2.changeGear(3);
bike2.printStates();
}
}
নিম্নে  output দেখুন  the ending pedal cadence, speed, and gear for the two bicycles:
cadence:50 speed:10 gear:2
cadence:40 speed:20 gear:3
চলবে...............

Lesson 2

Object কি ?

সাধারনভাবে object বলতে বুজায় কোন বস্তু, আপনি real-world এ অনেক উদাহরণ খুঁজে পাবেন: আপনার desk, আপনার টেলিভিশন, আপনার bicycle  একটি অবজেক্ট, বই, কলম, খাতা, কম্পিউটার এগুলো প্রত্যকটিই এক একটি অবজেক্ট। প্রতিটি অবজেক্টের কিছু বৈশিষ্ট থাকে, যেগুলোর জন্য একটি object অন্য একটি object থেকে অলাদা। OOP প্রোগ্রামিং পদ্বতির রান  টাইম এনটিটি হল object। object হল software bundle of related state and behavior।

Objects are key to understanding object-oriented technology। ঠিক আপনার ধারে কাছে দেখুন এবং আপনি real-world বস্তুর অনেক উদাহরণ খুঁজে পাবেন: আপনার পোষা প্রানী, আপনার desk, আপনার টেলিভিশন, আপনার bicycle, গাড়ী ইত্যাদি । Real-world বস্তু দুই গুণাবলিসমূহ ভাগাভাগি করে: state and behavior/অবস্থান এবং আচরণ। পোষা প্রানীর অবস্থান রয়েছে (নাম, রং, breed, ক্ষুধার্ত) এবং আচরণ (barking, আনা হচ্ছে, wagging লিজ)। উদাহরন স্বরূপ Bicycles এর অবস্থান রয়েছে (বর্তমান gear, বর্তমান pedal cadence, বর্তমান গতি) এবং আচরণ (পরিবর্তনশীল gear, পরিবর্তনশীল cadence, applying brakes pedalয়)। অবস্থান সনাক্ত করছে এবং real-world বস্তুর জন্য  state and behavior objects is a great way to begin thinking in terms of object-oriented programming.

আপনি লক্ষ্য করবেন যে real-world  objects vary in complexity আপনার টেবিল ল্যাম্প এর কথাই ধরুন  এটি only two possible states (on and off) and two possible behaviors (turn on, turn off) থাকতে পারে , কিন্তু আপনার ডেস্কটপ রেডিওটির কথা ভাবুন radio টিতে additional states (on, off, current volume, current station) and behavior (turn on, turn off, increase volume, decrease volume, seek, scan, and tune). এই real-world পর্যবেক্ষণগুলিtranslate into the world of object-oriented programming.

প্রত্যেকটি বস্তু লক্ষ্য করুন দেখুন এবং নিজেই দুটি প্রশ্ন করুন: "What possible states can this object be in?" and "What possible behavior can this object perform?".আপনি  পর্যবেক্ষণ করে দেখুন যে আপনার ডেস্কটপে যে লাইটটি অছে তা  only two possible states (on and off) and two possible behaviors (turn on, turn off)থাকতে পারে।কিন্তু আপনার টিভির ক্ষত্রে অতিরিক্ত  states (on, off, current volume, current station) and behavior (turn on, turn off, increase volume, decrease volume, seek, scan, and tune) আপনি ও লক্ষ্য করতে পারেন যে some objects, in turn, will also contain other objects. এই real-world পর্যবেক্ষণগুলি সমস্ত object-oriented প্রোগ্রামিংএ translate করে। নীম্নের চিত্রে একটি সাইকেলের গিয়ার লক্ষ্য করুন- এটা একটা software object এর উদাহরন.

concepts-object

Software objects are conceptually similar to real-world objects: they too consist of state and related behavior. এই পদ্ধতি একটি বস্তুর অভ্যন্তরীণ state পরিচালনা করে এবং object-to-object যোগাযোগের জন্য প্রাথমিক কৌশল হিসেবে সরবরাহ করে। অভ্যন্তরীণ  গোপন করে এবং requiring সমস্ত পারস্পরিক যোগাযোগ object-oriented প্রোগ্রামিংএর ডেটা একটি মৌলিক মূলনীতি হিসেবে একটি object এর  মধ্য দিয়ে কর্ম সম্পাদন করে।

উদাহরণের জন্য একটি bicycle, বিবেচনা করুন:

concepts-bicycleObject

By attributing state (বর্তমান গতি, বর্তমান pedal cadence, এবং বর্তমান gear) সেই state পরিবর্তন করার জন্য এবং providing পদ্ধতিটি, বস্তুটির নিয়ন্ত্রণে থাকে যেমন বাইরে বিশ্ব এটি ব্যবহার করতে অনুমোদন করা হয়। উদাহর স্বরূপ, bicycleএর ৬ gears কেবল রয়েছে, gears পরিবর্তন করতে একটি পদ্ধতি যেকোন মূল্য বাতিল করতে পারে যে ৬এর চেয়ে ১ অথবা বৃহত্তরের চেয়ে কম।

Bundling code into individual software objects provides a number of benefits, including:

১। Modularity: একটি object এর জন্য উৎ‍স কোড লেখা যাবে এবং অন্যান্য বস্তুর জন্য উৎ‍স কোডের রক্ষণাবেক্ষণ করা যাবে স্বাধীনভাবে। Once created, an object can be easily passed around inside the system.

২। Information-hiding: By interacting only with an object's methods এর অভ্যন্তরীণ প্রয়োগের বিশদ বর্ণনা বাইরে বিশ্ব থেকে লুকানো থাকে।

৩। Code re-use: If an object already exists (perhaps written by another software developer), you can use that object in your program. This allows specialists to implement/test/debug complex, task-specific objects, which you can then trust to run in your own code.

৪। Pluggability and debugging ease: If a particular object turns out to be problematicআপনি আপনার অ্যাপলিকেশন থেকে এটি সহজভাবে সরিয়ে দিতে পারেন এবং এর বদলি হিসেবে একটি আলাদা object রিপ্লেস করতে পারেন।এটি আসল বিশ্বে mechanical সমস্যা মেরামতের অনুরূপ। শুধু মেরামত করা হয়  সমগ্র মেশিন প্রতিস্থাপন হয় না।

class কি?

প্রকৃত বিশ্বে, আপনি একই ধরনের অনেক স্বতন্ত্র বস্তু সামজস্য প্রায়শই খুঁজে পাবেন। bicyclesএর হাজার হাজার একই রকম তৈরি করা এবং একই মডেলের প্রত্যেক bicycle blueprintsএর একই সেট থেকে নির্মাণ করা হয়েছিল.