Java

স্ট্যাটিক কিওয়ার্ড ইন জাভা

এটি একটি কিওয়ার্ড।

ক্লাসের মাধ্যমে ইন্সটেন্স ভেরিয়েবল এবং মেথোড ডিক্লেয়ার করে অবজেক্ট ক্রিয়েট করার পর এগুলো ব্যবহৃত হয়ে থাকে।

কিন্তু কখনো যদি অবজেক্ট ক্রিয়েট না করেই কোন মেথোড বা ভেরিয়েবল স্বাধীনভাবে যে কোন অবজেক্টের জন্যে বা অবজেক্ট ছাড়াই ব্যবহারের জন্যে দরকার পরে তখন আমরা কি করবো???

এই কাজ আমরা STATIC কিওয়ার্ড ব্যবহার করে করতে পারি। এটি কোন নির্দিষ্ট অবজেক্টের জন্যে নয়, স্ট্যাটিক কিওয়ার্ড দ্বারা মেথোড বা ভেরিয়েবল যাই ডিফাইন করি না কেন, সকল অবজেক্ট তা ব্যবহার করতে পারে।

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

কোডের মাধ্যমে ব্যাখ্যাঃ

public class static_ {

static int a; /* এখানে a এবং b কে ইন্সটেন্স ভেরিয়েবল না বলে স্ট্যাটিক ভেরিয়েবল বলা হয় */

static int b;

static int mul_1(int x) { /* স্ট্যাটিক মেথোড বলা হয়*/

return x*x;

}

}

public class main_ {

public static void main(String[] args) { /* */

static_.a = 3; /* যেহেতু অবজেক্ট ক্রিয়েট করা হয়নি তাই এটাকে ক্লাসের নাম দিয়েই কল করতে হয়। তাই এইভাবে কল করে সেটাতে ৩ এসাইন করে দিলাম */

static_.b = 4;

System.out.printf(“Here is the value of a = %d & the value ob b = %d\n”, static_.a, static_.b);

/* এসাইন করে ভেলু শো করা হল */

System.out.println(“Multiplication of static method is: ” + static_.mul_1(4)); /*স্ট্যাটিক মেথোডে ৪ পাস করে তার প্রাপ্ত রিটার্ন ভেলু প্রিন্ট করা হল */

}

}

আউটপুটঃ

Here is the value of a = 3 & the value ob b = 4

Multiplication of static method is: 16

একটি স্ট্যাটিক মেথোড বা ভেরিয়েবল সব অবজেক্টের জন্য একই। তাই কোন একটি অবজেক্টের জন্যে একবার পরিবর্তন করলে তা অন্য অবজেক্টের জন্যেও একই ভেলু নিয়ে কাজ করে।

public class main_ {

public static void main(String[] args) {

static_.a = 3;

static_.b = 4;

System.out.printf(“Here is the value of a = %d & the value ob b = %d\n”, static_.a, static_.b);

System.out.println(“Multiplication of static method is: ” + static_.mul_1(4));

System.out.println();

static_ ashiq1 = new static_();

static_ ashiq2 = new static_();

static_ ashiq3 = new static_();

System.out.println(ashiq1.get_count()); /* প্রথমে কাউন্টের ভেলু ০ থাকে। প্রথম অবজেক্টের কলের জন্যে এটি বেড়ে ১ হবে, ২য় অবজেক্টের কলের সময় এটি আর ০ না হয়ে শুধু ইঙ্ক্রিমেন্ট হবে */

System.out.println(ashiq2.get_count()); // count= 2

System.out.println(ashiq3.get_count()); // count = 3

}

}

 

public class static_ {

static int a;

static int b;

private satic int count = 0; /* এটি কাউন্ট করার জন্যে। প্রথমে ০ এসাইন করে দিলাম। সব অবজেক্টের জন্যে এটি একই। অবজেক্ট চেইঞ্জ করে কল করে দেখতে পারো*/

static int mul_1(intx) {

return x*x;

}

public static int get_count() {

return count++; /* এটি প্রত্যেকটি অবজেক্টের জন্যে কাউন্টের ভেলু চেইঞ্জ হওয়াটা রিটার্ন করে */

}

আউটপুটঃ

Here is the value of a = 3 & the value ob b = 4

Multiplication of static method is: 16

0

1

2

 

স্ট্যাটিক মেথোডের সীমাবদদ্ধতাঃ

১) তারা শুধু অন্য স্ট্যাটিক মেথোড কেই কল করতে পারে।

২) তারা শুধু স্ট্যাটিক ডাটাকেই এক্সেস করতে পারে।

৩) এরা This এবং Super ব্যবহার করতে পারেনা।

Leave a Reply

Your email address will not be published.

10 + 14 =