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

asked 07 Apr, 19:21

Aziz's gravatar image

Aziz
1235

edited 07 Apr, 19:25


মনে করেন আমাদের এই রকম একটা ক্লাস আছে । এবং তার মধ্যে method1 নামে একটি স্ট্যাটিক মেথড ও mothod2 নামে একটি নন-স্ট্যাটিক মেথড আছে ।

public class StaticVsNonStatic {

    public int method1(int a, int b) {
        return a + b;
    }

    public static int method2(int a, int b) {
        return a + b;
    }
}

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

অর্থাৎ আপনি যদি StaticVsNonStatic ক্লাসের method1 কে কল করতে চান তবে আপনাকে অবশই এই ক্লাসের একটা অবজেক্ট ক্রিয়েট করতে হবে । এই ভাবে ...

StaticVsNonStatic ob = new StaticVsNonStatic();

System.out.println(ob.method1(10, 10));

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

System.out.println(StaticVsNonStatic.method2(20, 20));

এখানে আমরা কোন অবজেক্ট ক্রিয়েট না করেই সুধু ক্লাসের নাম দিয়েই method2 কে কল করেছি ।

স্ট্যাটিক ভেরিয়েবলের ক্ষেত্রেও কিন্তু একই ঘটনা ।

ধন্যবাদ :)

permanent link

answered 08 Apr, 08:46

menon's gravatar image

menon
3.9k222

অনেক ধন্যবাদ আপনাকে বিষয়টি ক্লিয়ার করে দেয়ার

Happy Coding!

(08 Apr, 10:21) Aziz

method1 কি স্ট্যা‌টিক না‌কি নন স্ট্যা‌টিক মেথড?

(02 Oct, 04:58) shafik

নন স্ট্যা‌টিক মেথড @shafik

(02 Oct, 17:18) menon

নন স্ট্যাটিক মেথড কল করতে হলে অবজেক্ট ক্রিয়েট করতে হয় তারপর সে অবজেক্ট দিয়ে কল করতে হয়. এখন আপনি যদি এমন কোনো মেথড চান যেটি অবজেক্ট ক্রিয়েট করা ছাড়াই কল করতে পারবেন তখন স্ট্যাটিক মেথড ক্রিয়েট করতে হবে এটি সরাসরি কল করা যায়.

permanent link

answered 14 Apr, 18:52

MD%20Rayhan%20Chowdhury's gravatar image

MD Rayhan Chowdhury
333

ধন্যবাদ :) happy coding!

(15 Apr, 04:37) Aziz
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×62
×2
×1
×1

question asked: 07 Apr, 19:21

question was seen: 407 times

last updated: 02 Oct, 17:18