এইটা কিভাবে কাজ করে? কোনো রিটার্ন টাইপ ছাড়া ।:

public class Main{
    public static void main(String xyz[]){
        int[] arr = new int[1];
        Foo foo = new Foo();
        foo.changeInt(arr);
        System.out.println(arr[0]);
    }
}

class Foo {
    void changeArr(int[] arr) {
        arr[0] = 5;
    }
}

আউটপুট:

50

উপর এর টা যদি কাজ করে ঠিক তাহলে নিচের এই ভ্যালু এসাইন টা কাজ করে না কেন?

public class Main{
    public static void main(String xyz[]){
        int i = 0;
        Foo foo = new Foo();
        foo.changeInt(i);
        System.out.println(i);
    }
}

class Foo {
    void changeInt(int i) {
        i = 5;
    }
}

আউটপুট:

asked 05 Sep, 07:03

kaisarturan's gravatar image

kaisarturan
536

edited 05 Sep, 07:06


প্রথম ক্ষেত্রে আপনি ভেরিয়েবলের এর রেফারেন্সে pass করছেন । যার ফলে ফাংশনের মধ্যে পরিবর্তিত মান টা পেয়ে যাচ্ছেন ।

২য় ক্ষেত্রে আপনি ভেরিয়েবলের কপি pass করছেন । যার ফলে আপনি পরিবর্তিত মান পাচ্ছেন না।

ধন্যবাদ :)

permanent link

answered 05 Sep, 15:38

menon's gravatar image

menon
3.9k222

প্রথমে ধন্যবাদ জানায় । তাহলে তো Wrapper ক্লাস Integer এর রেপারেন্স দিলে ও কাজ করার কথা । কিন্তু কাজ করে না কেন?

(05 Sep, 16:40) kaisarturan
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:

×198
×60
×50
×5
×2

question asked: 05 Sep, 07:03

question was seen: 159 times

last updated: 05 Sep, 16:41