Home / JAVA

JAVA

জাভা ক্লাস(Class) এবং অবজেক্ট (Object)

জাভা ক্লাস :

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

  1. ফিল্ডস (fields)
  2. মেথডস (methods)
  3. কনস্ট্রাক্টরস (constructors)
  4. ব্লকস (blocks)
  5. নেস্টেড ক্লাস এবং ইন্টারফেস (nested class and interface)

ক্লাস ডিক্লেয়ার করার সিনটেক্সঃ

 
Access Modifier class ClassName {

    fields
    methods
}
public class ExampleClass {
 
}

জাভা ইন্সটেন্স ভেরিয়েবল:

একটি ভেরিয়েবল যা ক্লাসের ভিতর এবং মেথডের বাহিরে তৈরী বা ডিক্লেয়ার করা হয় তাকে ইন্সটেন্স ভেরিয়েবল বলে । ইন্সটেন্স ভেরিয়েবল, কম্পাইল টাইমে মেমরি পাওয়া যায় না । এই মেমোরি পাওয়া যায় রান-টাইমে যখন অবজেক্ট তৈরি করা হয় । এই কারণে একে ইন্সটেন্স ভেরিয়েবল বলে ।
জাভা অবজেক্ট:

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

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

সুতরাং আমরা জানলাম, অবজেক্ট এর দুইটা জিনিস থাকে, স্টেট ( অর্থাৎ নিজের সম্পর্কে ধারণা) এবং মেথড (সে কি কি কাজ করতে পারে)।
একটি অবজেক্টের ৩টি বৈশিষ্ট্য থাকে :

  1. স্টেট
  2. বিহেভিয়ার
  3. আইডেন্টিটি

স্টেট :

স্টেট হল কিছু তথ্য যা দিয়ে অনেকগুলো অবজেক্ট থেকে প্রত্যেককে আলাদা করা যায় । এর বর্তমান অবস্থা জানা যায় । একে ভেরিয়েবলও বলা হয়

বিহেভিয়ার :

একটি অবজেক্ট দিয়ে নির্দিষ্ট কিছু কাজ করানো যায় । এটাই হচ্ছে অবজেক্ট বিহেভিয়ার । একে মেথডও বলা হয় ।
৩ টি উপায়ে অবজেক্ট ইনিশিলায়াইজ করা যায় :

  • রেফারেন্স ভেরিয়াবল দ্বারা
  • মেথড দ্বারা
  • কনস্ট্রাক্টর দ্বারা

জাভা new কিওয়ার্ড :

রান টাইমে মেমোরি বরাদ্দ করার জন্য new কিওয়ার্ড ব্যবহার করা হয় । সব অবজেক্ট এর মেমোরি হ্যাপ মেমরি (Heap Memory ) এলাকা থেকে পাই ।

অবজেক্ট তৈরী করা :

নতুন অবজেক্ট তৈরী করার জন্য জাভাতে new কিওয়ার্ড ব্যবহার করা হয় । একটি ক্লাস থেকে একটি অবজেক্ট তৈরি করার তিনটি ধাপ আছে ঃ

  1. ডিক্লারেশন (Declaration )
  2. ইনস্ট্যান্স (Instantiation )
  3. ইনিশিয়ালিজেশন (Initialization )

ডিক্লারেশন :

A variable declaration with a variable name with an object type.

ইনস্ট্যান্স :

The ‘new’ keyword is used to create the object

ইনিশিয়ালিজেশন:

The ‘new’ keyword is followed by a call to a constructor. This call initializes the new object
সিনট্যাক্স :

 className objectName = new className();
 MyClass object = new MyClass()

বিভিন্ন উপায়ে জাভার অবজেক্ট তৈরী করা যায় :

৪টি উপায়ে জাভার অবজেক্ট তৈরী করা যায়

1. new কিওয়ার্ড ব্যবহার করে
This is the most common way to create an object in java. I read somewhere that almost 99% of objects are created in this way.

MyObject object = new MyObject();

2. Class.forName() ব্যবহার করে
If we know the name of the class & if it has a public default constructor we can create an object in this way.

Employee emp2 = (Employee) Class.forName("org.Employee")
.newInstance();

3. clone() ব্যবহার করে
The clone() can be used to create a copy of an existing object.

Employee emp4 = (Employee) emp3.clone();

4. object deserialization ব্যবহার করে
Object deserialization is nothing but creating an object from its serialized form.

ObjectInputStream inStream = new ObjectInputStream(anInputStream ); 
MyObject object = (MyObject) inStream.readObject();

Now you know how to create an object. But its advised to create objects only when it is necessary to do so.
ক্লাস এবং অবজেক্ট ব্যবহার করে একটি জাভা প্রোগ্রাম :



    public class SimpleClass {

    // this is constructor

    public SimpleClass() { }

    // this is method

    public void printMessage() {

    System.out.println(“Java Object Oriented Programming”);

    }

    public void printState() {

    int n=2;

    System.out.println(n*n);

    }

    public static void main(String[] args) {

    // create object

    SimpleClass object=new SimpleClass();

    object.printMessage();

    object.printState();

    }
    }