c# - অবজ - জাভা এবং সি#তে কোনও পূর্ণসংখ্যা এবং পূর্ণসংখ্যার মধ্যে পার্থক্য কী?




জাভা ক্লাস কি (18)

"ইনট" হ'ল আদিম ডেটা টাইপ এবং জাভাতে র্যাপার ক্লাসে "পূর্ণসংখ্যা"। "পূর্ণসংখ্যা" কোনও পদ্ধতির আর্গুমেন্ট হিসাবে ব্যবহার করা যেতে পারে যার জন্য কোনও অবজেক্ট প্রয়োজন, যেখানে "ইন্ট" হিসাবে কোনও পদ্ধতির আর্গুমেন্ট হিসাবে ব্যবহার করা যেতে পারে যার জন্য একটি পূর্ণসংখ্যার মান প্রয়োজন, এটি পাটিগণিতের প্রকাশের জন্য ব্যবহার করা যেতে পারে।

আমি জোয়েল স্পোলস্কি যখন জাভা / সি # (অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজস) এর কোনও Integer এবং একটি Integer মধ্যে পার্থক্য জেনে একটি বিশেষ ধরণের প্রোগ্রামার সম্পর্কে কিছু বলছিলাম তখন আমি সফটওয়্যারটিতে আরও জোয়েল পড়ছিলাম।

তাহলে পার্থক্য টা কি?


(জাভা ভার্সন) সরল কথায় ইনট আদিম এবং পূর্ণসংখ্যা হল ইনটারের জন্য র‍্যাপার অবজেক্ট।

একটি উদাহরণ যেখানে পূর্ণসংখ্যার বনাম ইন্টি ব্যবহার করতে হবে, আপনি যখন তুলনা করতে চান এবং ইন্ট ভেরিয়েবল আবার নাল এটি ত্রুটি নিক্ষেপ করবে।

int a;
//assuming a value you are getting from data base which is null
if(a ==null) // this is wrong - cannot compare primitive to null
{
do something...}

Instead you will use,
Integer a;
//assuming a value you are getting from data base which is null
if(a ==null) // this is correct/legal
{ do something...}

আপনি কি এর আগে কখনও প্রোগ্রাম করেছেন (int) আপনার ভেরিয়েবলগুলির জন্য সেট করতে পারেন এমন এক আদিম ধরণের (যেমন চর, ভাসা, ...)।

তবে পূর্ণসংখ্যা হ'ল একটি মোড়কের ক্লাস যা আপনি এটি কোনও int ভেরিয়েবলের উপর কিছু ফাংশন করতে ব্যবহার করতে পারেন (উদাহরণস্বরূপ স্ট্রিং বা ভাইস বিপরীতে রূপান্তর করুন, ...), তবে নোট রাখুন যে মোড়কের ক্লাসগুলির পদ্ধতিগুলি স্থিতিশীল তাই আপনি সেগুলি ব্যবহার করতে পারেন পূর্ণাঙ্গ শ্রেণীর উদাহরণ তৈরি না করে যে কোনও সময়। একটি সংশোধন হিসাবে:

int x;
Integer y; 

x এবং y উভয় টাইপ int এর ভেরিয়েবল তবে y ইন্টিজার ক্লাস দ্বারা আবৃত থাকে এবং আপনি ব্যবহার করেন এমন কয়েকটি পদ্ধতি রয়েছে তবে আমি আপনাকে ইন্টিজার রেপার ক্লাসের কিছু ফাংশন কল করতে হবে যা আপনি এটি সহজভাবে করতে পারেন।

Integer.toString(x);

তবে সচেতন থাকুন যে এক্স এবং y উভয়ই মূল উপাদান তবে আপনি যদি এগুলিকে আদিম ধরণের হিসাবে ব্যবহার করতে চান তবে সাধারণ ফর্মটি (এক্স সংজ্ঞায়িত করার জন্য ব্যবহৃত) ব্যবহার করুন।


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

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

জাভা 5 এর পরে অটো-বক্সিং এবং অটো-আনবক্সিং নামে কিছু রয়েছে যা পর্দার আড়ালে বক্সিং / আনবক্সিং করার অনুমতি দেয়। তুলনা করুন এবং বিপরীতে: জাভা 5 সংস্করণ:

Deque<Integer> queue;

void add(int n) {
    queue.add(n);
}

int remove() {
    return queue.remove();
}

জাভা 1.4 বা তার আগের (কোনও জেনেরিক নেই):

Deque queue;

void add(int n) {
    queue.add(Integer.valueOf(n));
}

int remove() {
    return ((Integer) queue.remove()).intValue();
}

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

আশাকরি এটা সাহায্য করবে!


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


উভয় ভাষায় (জাভা এবং সি #) এর মধ্যে 4-বাইট স্বাক্ষরিত পূর্ণসংখ্যা হয়।

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

সি # হ'ল রেফারেন্স টাইপের সাথে সম্পর্কিত মেমরির একটি অংশ ব্যবহার করে System.Int32 সরবরাহ করে।

java java.lang.Integer যা কোন রেফারেন্স টাইপ on সময় নির্দেশাবলী চালানোর জন্য Integer পদ্ধতিগুলি সরাসরি সংকলন করা যায় না Integer আমরা একে পূর্ণসংখ্যার উদাহরণে রূপান্তর করতে কোনও মান মান বাক্স করি এবং এমন পদ্ধতিগুলি ব্যবহার করি যা কোনও প্রকারের উদাহরণ (যেমন valueOf() parseInt() , valueOf() parseInt() , valueOf() ইত্যাদি)।

সি # ভেরিয়েবল System.Int32.Any বোঝায়। System.Int32.Any মেমরির যে কোনও 4-বাইট মান একটি আদিম int হিসাবে ব্যাখ্যা করা যেতে পারে, এটি সিস্টেমের উদাহরণ দ্বারা ম্যানিপুলেট করা যায় System সম্পর্কিত পদ্ধতি যেমন int.Parse() , int.ToString() ইত্যাদি পূর্ণসংখ্যাটি এফসিএল int.ToString() সংকলিত হয়। int.ToString() int.Parse() , int.ToString() মতো সম্পর্কিত পদ্ধতিগুলি কল করে।


ওয়েল, জাভাতে একটি ইন্ট একটি আদিম যখন একটি পূর্ণসংখ্যা একটি বস্তু। অর্থ, আপনি যদি একটি নতুন পূর্ণসংখ্যা তৈরি করেন:

Integer i = new Integer(6);

আপনি আমাকে কিছু পদ্ধতি কল করতে পারেন:

String s = i.toString();//sets s the string representation of i

যেখানে কোন ইনট সহ:

int i = 6;

আপনি এটিতে কোনও পদ্ধতি কল করতে পারবেন না, কারণ এটি কেবল আদিম। তাই:

String s = i.toString();//will not work!!!

একটি ত্রুটি উত্পাদন করতে পারে, কারণ কোন বস্তু নয়।

জাভা জাতির কয়েকটি প্রাথমিকের মধ্যে একটি (চর এবং কিছু অন্যান্য সহ)। আমি ১০০% নিশ্চিত নই, তবে আমি ভাবছি যে পূর্ণসংখ্যার অবজেক্টটির কম-বেশি কেবল একটি সম্পত্তি রয়েছে এবং সেই সম্পত্তির সাথে ইন্টারঅ্যাক্ট করার জন্য পুরো পদ্ধতি রয়েছে (উদাহরণস্বরূপ টসস্ট্রিং () পদ্ধতির মতো)। সুতরাং পূর্ণসংখ্যা হল একটি ইন্টের সাথে কাজ করার অভিনব উপায় (ঠিক যেমন স্ট্রিং চরগুলির একটি গ্রুপের সাথে কাজ করার অভিনব উপায়)।

আমি জানি যে জাভা সি নয়, তবে যেহেতু আমি কখনই সি তে প্রোগ্রাম করিনি এটিই আমি উত্তরটি কাছে আসতে পারলাম। আশাকরি এটা সাহায্য করবে!

পূর্ণসংখ্যার বস্তু জাভাদোক

পূর্ণসংখ্যার ওজবেক্ট বনাম পূর্ববর্তী তুলনা


কোন int ভেরিয়েবল একটি 32 বিট স্বাক্ষরিত পূর্ণসংখ্যার মান ধারণ করে। একটি পূর্ণসংখ্যা (মূলধন I সহ) এর সাথে (শ্রেণি) টাইপ পূর্ণসংখ্যার অবজেক্টের শূন্য থাকে বা বাতিল হয়।

জাভা স্বয়ংক্রিয়ভাবে দুজনের মধ্যে কাস্ট করে; যখনই পূর্ণসংখ্যার অবজেক্টটি কোনও int অপারেটরের আর্গুমেন্ট হিসাবে উপস্থিত হয় বা কোনও int ভেরিয়েবলের জন্য বরাদ্দ করা হয়, বা কোনও পূর্ণসংখ্যা মানটি একটি পূর্ণসংখ্যা ভেরিয়েবলের জন্য বরাদ্দ করা হয়। এই ingালাইটিকে বক্সিং / আনবক্সিং বলা হয়।

যদি একটি পূর্ণসংখ্যার পরিবর্তনশীল রেফারেন্সিং নালটি বাক্সবিন্যাস করা হয়, সুস্পষ্টভাবে বা স্পষ্টভাবে, একটি নালপয়েন্টার এক্সসেপশন নিক্ষেপ করা হয়।


জাভা এবং সি # তে একটি আন্তঃসংখ্যা এবং পূর্ণসংখ্যা দুটি ভিন্ন পদকে বিভিন্ন জিনিসের প্রতিনিধিত্ব করতে ব্যবহৃত হয়। এটি এমন এক আদিম উপাত্তের মধ্যে যা ভেরিয়েবলকে হস্তান্তর করা যায় যা সঠিকভাবে সঞ্চয় করতে পারে। একবারে এর ঘোষিত প্রকারের একটি মান।

উদাহরণ স্বরূপ:

int number = 7;

যেখানে int হ'ল ভেরিয়েবল সংখ্যাকে ডেটাটাইপ বরাদ্দ করা হয় যা মানটি সাতটি ধারণ করে। সুতরাং একটি int কেবল একটি আদিম নয় একটি বস্তু।

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

উদাহরণ স্বরূপ:

Integer number = new Integer(5);

জাভা এর মতো প্ল্যাটফর্মে, int গুলি আদিম হয় এবং Integer এমন একটি অবজেক্ট যা পূর্ণসংখ্যা ক্ষেত্র ধারণ করে। গুরুত্বপূর্ণ পার্থক্যটি হ'ল আদিমরা সর্বদা মান দ্বারা এবং সংজ্ঞা অনুসারে অদৃশ্য হয়।

কোনও আদিম পরিবর্তনশীল জড়িত যে কোনও ক্রিয়াকলাপ সর্বদা একটি নতুন মান প্রদান করে। অন্যদিকে, বস্তুগুলি রেফারেন্স দিয়ে চারপাশে পাস করা হয়। কেউ তর্ক করতে পারে যে অবজেক্টের বিন্দু (একে একে রেফারেন্স) এছাড়াও মান দ্বারা প্রায় পাশ করা হচ্ছে, তবে বিষয়বস্তুগুলি এটি নয়।


জাভাতে JVM দুটি মূল ধরণের রয়েছে। 1) আদিম প্রকার এবং 2) রেফারেন্স প্রকার। ইন্ট একটি আদিম ধরণ এবং পূর্ণসংখ্যা একটি শ্রেণির ধরণ (যা প্রকারের রেফারেন্স ধরণের)।

আদিম মানগুলি অন্যান্য আদিম মানগুলির সাথে রাষ্ট্র ভাগ করে না। একটি পরিবর্তনশীল যার প্রকার একটি আদিম ধরণের সর্বদা সেই ধরণের একটি আদিম মান ধরে।

int aNumber = 4;
int anotherNum = aNumber;
aNumber += 6;
System.out.println(anotherNum); // Prints 4

একটি বস্তু একটি গতিশীলভাবে তৈরি শ্রেণীর উদাহরণ বা একটি অ্যারে। রেফারেন্স মান (প্রায়শই কেবল রেফারেন্স) হ'ল এই অবজেক্টের পয়েন্টার এবং একটি বিশেষ নাল রেফারেন্স, যা কোনও বস্তুকে বোঝায় না। একই অবজেক্টের অনেকগুলি রেফারেন্স থাকতে পারে।

Integer aNumber = Integer.valueOf(4);
Integer anotherNumber = aNumber; // anotherNumber references the 
                                 // same object as aNumber

এছাড়াও জাভাতে সমস্ত কিছু মান দ্বারা পাস হয়। অবজেক্টের সাথে যে মানটি পাস হয় তা হ'ল অবজেক্টের রেফারেন্স। সুতরাং জাভাতে int এবং পূর্ণসংখ্যার মধ্যে আরেকটি পার্থক্য হ'ল কীভাবে তারা পদ্ধতি কলগুলিতে পাস হয়। উদাহরণস্বরূপ ইন

public int add(int a, int b) {
    return a + b;
}
final int two = 2;
int sum = add(1, two);

ভেরিয়েবল দুটি আদিম পূর্ণসংখ্যা টাইপ 2 হিসাবে পাস হয়

public int add(Integer a, Integer b) {
    return a.intValue() + b.intValue();
}
final Integer two = Integer.valueOf(2);
int sum = add(Integer.valueOf(1), two);

ভেরিয়েবল দুটিটি একটি অবজেক্টের রেফারেন্স হিসাবে পাস হয় যা পূর্ণসংখ্যার মান 2 রাখে।

@ ওল্ফম্যানড্রাগন: রেফারেন্স দিয়ে পাস করা এইভাবে কাজ করবে:

public void increment(int x) {
  x = x + 1;
}
int a = 1;
increment(a);
// a is now 2

যখন বৃদ্ধি বলা হয় তখন এটি ভেরিয়েবল এ একটি রেফারেন্স (পয়েন্টার) পাস করে passes এবং ইনক্রিমেন্ট ফাংশন সরাসরি পরিবর্তনশীল এ।

এবং অবজেক্টের ধরণের জন্য এটি নিম্নলিখিত হিসাবে কাজ করবে:

public void increment(Integer x) {
  x = Integer.valueOf(x.intValue() + 1);
}
Integer a = Integer.valueOf(1);
increment(a);
// a is now 2

পার্থক্যটা কি এখন দেখছেন?


জাভাতে আমার জ্ঞান অনুসারে আপনি যদি শিখেন তবে আপনি যখন int লিখবেন; তারপরে জাভা জেনেরিক এ এটি Integer a = new Integer() মতো কোডটি সংকলন করবে। সুতরাং, জেনারিক অনুযায়ী Integer ব্যবহার করা হয় না তবে int ব্যবহার হয়। সুতরাং সেখানে এত পার্থক্য আছে।


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

একটি জাভা প্রোগ্রামে স্ট্রিং লিটারালগুলি হিপ মেমরির পৃথক অংশে সংরক্ষণ করা হয়, কেবল উদাহরণের জন্য উদাহরণ, সেই উদাহরণগুলিকে পুনরায় ব্যবহার করে স্মৃতি সংরক্ষণ করতে পারে


মোড়ক ক্লাস ব্যবহার করার অনেক কারণ রয়েছে:

  1. আমরা অতিরিক্ত আচরণ পাই (উদাহরণস্বরূপ আমরা পদ্ধতি ব্যবহার করতে পারি)
  2. আমরা নাল মান সংরক্ষণ করতে পারি যেখানে আদিমগুলিতে আমরা পারি না
  3. সংগ্রহগুলি আদিমগুলিকে নয় বরং বস্তুগুলি সংরক্ষণের পক্ষে সহায়তা করে।

সিটি লাইব্রেরি ফাংশন সি # তে পূর্বনির্ধারিত তবে জাভাতে আমরা Integer অবজেক্ট তৈরি করতে পারি


01. পূর্ণসংখ্যা শূন্য হতে পারে। কিন্তু int নাল হতে পারে না।

Integer value1 = null; //OK

int value2 = null      //Error

02. কেবল কোনও সংগ্রহ ক্লাসে র্যাপার ক্লাসের ধরণের মানগুলি পাস করতে পারে।

(মোড়ক ক্লাস - বুলিয়ান, চরিত্র, বাইট, সংক্ষিপ্ত, পূর্ণসংখ্যার, দীর্ঘ, ভাসমান, ডাবল)

List<Integer> element = new ArrayList<>();
int valueInt = 10;
Integer  valueInteger = new Integer(value);
element.add(valueInteger);

তবে সাধারণত আমরা সংগ্রহ শ্রেণিতে আদিম মানগুলি যুক্ত করি? 02 পয়েন্ট সঠিক?

List<Integer> element = new ArrayList<>();
element.add(5);

হ্যাঁ 02 সঠিক, বিকাউস autoboxing.

অটোবক্সিং হ'ল স্বয়ংক্রিয় রূপান্তর যা জাভা সংকলক আদিম ধরণের এবং তাদের সংশ্লিষ্ট র‌্যাপার শ্রেণির মধ্যে তৈরি করে।

তারপরে 5 অটোবক্সিং দ্বারা পূর্ণসংখ্যার মান হিসাবে রূপান্তর করুন।


জাভা:

int , double , long , byte , float , double , short , boolean , char - আদিম। ভাষা দ্বারা সমর্থিত বুনিয়াদি ডেটা ধরণের জন্য ব্যবহৃত হয়। আদিম প্রকারগুলি বস্তুর শ্রেণিবিন্যাসের অংশ নয়, এবং তারা অবজেক্টের উত্তরাধিকার সূত্রে পায় না। এটি কোনও পদ্ধতির রেফারেন্স দিয়ে পাস করতে পারে না।

Double , Float , Long , Integer , Short , Byte , Character এবং Boolean , টাইপ র‍্যাপারস, java.lang প্যাকেজড। সমস্ত সংখ্যার প্রকারের মোড়কগুলি এমন নির্মাতাকে সংজ্ঞায়িত করে যা কোনও নির্দিষ্ট মান থেকে কোনও অবজেক্টকে নির্মাণের অনুমতি দেয় বা সেই মানটির একটি স্ট্রিং প্রতিনিধিত্ব করে। অবজেক্টগুলি ব্যবহার করা এমনকি গণনার সবচেয়ে সহজতম ক্ষেত্রেও ওভারহেড যুক্ত করতে পারে।

জেডিকে ৫ দিয়ে শুরু করে, জাভা দুটি অত্যন্ত সহায়ক বৈশিষ্ট্য অন্তর্ভুক্ত করেছে: অটোবক্সিং এবং স্বতঃবক্সিং। অটোবক্সিং / আনবক্সিং কোডকে ব্যাপকভাবে সরল করে এবং প্রবাহিত করে যে আদিম প্রকারগুলিকে অবজেক্টে রূপান্তর করতে হবে এবং তদ্বিপরীত।

নির্মাণকারীর উদাহরণ:

Integer(int num)
Integer(String str) throws NumberFormatException
Double(double num)
Double(String str) throws NumberFormatException

বক্সিং / আনবক্সিংয়ের উদাহরণ:

class ManualBoxing {
        public static void main(String args[]) {
        Integer objInt = new Integer(20);  // Manually box the value 20.
        int i = objInt.intValue();  // Manually unbox the value 20
        System.out.println(i + " " + iOb); // displays 20 20
    }
}

অটোবক্সিং / স্বতঃবাক্সিংয়ের উদাহরণ:

class AutoBoxing {
    public static void main(String args[]) {
        Integer objInt = 40; // autobox an int
        int i = objInt ; // auto-unbox
        System.out.println(i + " " + iOb); // displays 40 40
    }
}

পিএস হারবার্ট শিল্ডের বইটি একটি রেফারেন্স হিসাবে নেওয়া হয়েছিল।


জাভাতে, 'ইন্ট' টাইপটি একটি আদিম, যেখানে 'পূর্ণসংখ্যা' টাইপটি একটি অবজেক্ট।

সি # তে, 'ইন্ট' টাইপটি System.Int32 এবং এটি একটি মান ধরণের (যেমন আরও জাভা 'ইনট' এর মতো)। একটি পূর্ণসংখ্যা (অন্য কোনও মানের ধরণের মতো) boxed ("মোড়ানো") কোনও বস্তুতে করা যায়।

বস্তু এবং আদিমতার মধ্যে পার্থক্য এই প্রশ্নের ক্ষেত্রের বাইরে কিছুটা হলেও সংক্ষেপে:

পলিমারফিজমের সুবিধাগুলি সরবরাহকারী অবজেক্টগুলি রেফারেন্স দ্বারা পাস করা হয় (বা আরও সঠিকভাবে রেফারেন্সগুলি মান দ্বারা প্রেরণ করা হয়), এবং heap থেকে বরাদ্দ করা হয়। বিপরীতে, আদিমগুলি হ'ল অপরিবর্তনীয় প্রকার যা মান দ্বারা পাস হয় এবং প্রায়শই stack থেকে বরাদ্দ করা হয়।






int