একটি দৃষ্টান্ত এবং একটি অবজেক্টের মধ্যে পার্থক্য কী? পার্থক্য আছে কি না?
একটি দৃষ্টান্ত এবং একটি অবজেক্টের মধ্যে পার্থক্য কী? পার্থক্য আছে কি না?
উত্তর:
দৃষ্টান্ত এবং অবজেক্টটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং থেকে ।
কিছু প্রোগ্রামিং ভাষার জন্য জাভা, সি ++, এবং স্মার্টটালকের মতো কোড বর্ণনা করা এবং বোঝা গুরুত্বপূর্ণ। স্ট্রাকচার্ড প্রোগ্রামিংয়ে ব্যবহৃত অন্যান্য ভাষায়, এই ধারণার অস্তিত্ব নেই।
এটি স্ট্রাকচারাল প্রোগ্রামিংয়ের একটি দৃশ্য। সত্যিকারের উল্লেখযোগ্য পার্থক্য নেই যা আপনার খুব বেশি সময় ব্যয় করে। কিছু অভিনব ভাষা থাকতে পারে যা সম্পর্কে লোকেরা লিখতে অনেক জায়গা নিতে পারে, তবে দিনের শেষে, কোডার, বিকাশকারী, প্রোগ্রামার, স্থপতি হিসাবে সম্পর্কিত, শ্রেণীর উদাহরণ এবং উদাহরণ অবজেক্ট একই জিনিস বোঝায় এবং প্রায়শই পরস্পরের পরিবর্তে ব্যবহার করা যেতে পারে । আমি আমার কেরিয়ারে এমন কারও সাথেই দেখা পাই নি যে পিক হবে এবং পার্থক্য তুলে ধরার চেষ্টা করতে আধ ঘন্টা ব্যয় করবে কারণ সত্যিকার অর্থে কিছুই নেই। সময় উন্নয়নের অন্যান্য প্রচেষ্টাতে আরও ভালভাবে ব্যয় করা যায়।
আপডেট সুইফটের সাথে সম্পর্কিত, এটিই অ্যাপল যিনি সুইফট আবিষ্কার করেছেন তার পছন্দ:
শ্রেণীর উদাহরণ একটি বিষয় হিসাবে traditionতিহ্যগতভাবে পরিচিত। যাইহোক, সুইফ্ট ক্লাস এবং কাঠামো অন্যান্য ভাষার তুলনায় কার্যকারিতার চেয়ে অনেক কাছাকাছি এবং এই অধ্যায়ে বেশিরভাগ কার্যকারিতা বর্ণনা করে যা কোনও শ্রেণি বা কাঠামোর ধরণের ক্ষেত্রে প্রয়োগ করতে পারে। এই কারণে, আরও সাধারণ শব্দ উদাহরণ ব্যবহার করা হয়।
দুর্দান্ত প্রশ্ন।
আমি এটি সহজতম পদ্ধতিতে ব্যাখ্যা করব: বলুন আপনার ঝুড়িতে 5 টি আপেল রয়েছে। এই আপেলগুলির প্রতিটি হ'ল অ্যাপল টাইপের একটি অবজেক্ট, যার কিছু বৈশিষ্ট্য রয়েছে (যেমন বড়, বৃত্তাকার, গাছে বেড়ে ওঠে)।
প্রোগ্রামিংয়ের ভাষায়, আপনার কাছে অ্যাপল নামে একটি শ্রেণি থাকতে পারে, যার ভেরিয়েবল আকার রয়েছে: বড়, আকৃতি: বৃত্তাকার, আবাসস্থল: গাছে বেড়ে ওঠে। আপনার ঝুড়িতে 5 টি আপেল রাখতে আপনার 5 টি আপেল ইনস্ট্যান্ট করতে হবে । Apple apple1, Apple apple2, Apple apple3 etc...
।
বিকল্পভাবে: অবজেক্টগুলি কোনও কিছুর সংজ্ঞা, উদাহরণগুলি হ'ল দৈহিক জিনিস।
এটা কোনো কিছু হলো?
উদাহরণ: উদাহরণস্বরূপ কেবল একটি রেফারেন্স তৈরি করা (অনুলিপি)।
অবজেক্ট: এর অর্থ যখন নতুন অপারেটর ব্যবহার করে মেমরির অবস্থানটি বস্তুর সাথে (শ্রেণীর একটি রান-টাইম সত্তা) যুক্ত হয়।
সরল কথায়, ইনস্ট্যান্স নির্দিষ্ট সময়ে অবজেক্টের অনুলিপি বোঝায় যেখানে বস্তু শ্রেণীর মেমরির ঠিকানা বোঝায়।
ধরা যাক আপনি কিছু চেয়ার তৈরি করছেন।
ডায়াগ্রাম যা দেখায় যে কীভাবে একটি চেয়ার তৈরি করতে হবে এবং এটি একসাথে রাখা যায় তা একটি সফ্টওয়্যার শ্রেণীর সাথে সম্পর্কিত।
ধরা যাক আপনি সেই চিত্রের প্যাটার্ন অনুসারে পাঁচটি চেয়ার বানাচ্ছেন। তেমনি, আপনি ক্লাসে প্যাটার্ন অনুযায়ী পাঁচটি সফ্টওয়্যার অবজেক্ট তৈরি করতে পারেন।
প্রতিটি চেয়ারের প্রতিটি নির্দিষ্ট চেয়ার শনাক্ত করতে সিটের নীচে আগুনে দেওয়া একটি অনন্য নম্বর রয়েছে। চেয়ার 3 চেয়ার প্যাটার্নের একটি উদাহরণ is একইভাবে, মেমরি অবস্থান 3 এ একটি সফ্টওয়্যার প্যাটার্নের একটি উদাহরণ থাকতে পারে।
সুতরাং, একটি উদাহরণ (চেয়ার 3) একটি চেয়ার প্যাটার্নের একক অনন্য, নির্দিষ্ট প্রকাশ।
অবজেক্ট :
এটি একটি জেনারিজ শব্দটি মূলত এটি একটি সফ্টওয়্যার বান্ডিল যা রাষ্ট্র (পরিবর্তনশীল) এবং আচরণ (পদ্ধতি)
শ্রেণি :
কোনও বস্তুর উদাহরণের জন্য একটি নীল মুদ্রণ (টেমপ্লেট) - এটি একটি অনন্য বস্তুর জিনিস উদাহরণস্বরূপ আপনি দুটি বার কোনও বস্তু তৈরি করেন তার অর্থ কী আপনি দুটি উদাহরণ তৈরি করেছেন
আমাকে একটি উদাহরণ দিতে দাও
Class student()
{
private string firstName;
public student(string fname)
{
firstName=fname;
}
Public string GetFirstName()
{
return firstName;
}
}
বস্তুর উদাহরণ :
শিক্ষার্থী এস 1 = নতুন শিক্ষার্থী ("মার্টিন"); শিক্ষার্থী এস 2 = নতুন শিক্ষার্থী ("কুমার");
S1, s2 এর ক্লাস স্টুডেন্টের অবজেক্ট রয়েছে
দৃষ্টান্ত :
s1 এবং s2 হ'ল অবজেক্ট স্টুডেন্টের উদাহরণ দুটিই অনন্য ।
এটি রেফারেন্স হিসাবেও বলা যেতে পারে ।
মূলত এস 1 এবং এস 2 হ'ল ভেরিয়েবল যা কোনও বস্তু নির্ধারিত হয়
বস্তু এবং দৃষ্টান্তগুলি বেশিরভাগ ক্ষেত্রে একই; তবে একটি খুব ছোট পার্থক্য আছে। যদি Car
শ্রেণি হয়, 3 Car
টি 3 টি পৃথক বস্তু। এই সমস্ত বস্তু উদাহরণস্বরূপ। সুতরাং এই 3 টি গাড়ি Car
শ্রেণীর উদাহরণ থেকে পাওয়া বস্তু ।
তবে "উদাহরণ" শব্দের অর্থ "কাঠামোর উদাহরণ "ও হতে পারে। তবে অবজেক্টটি কেবল ক্লাসের জন্য।
সমস্ত বস্তু উদাহরণস্বরূপ। সমস্ত দৃষ্টান্ত অবশ্যই অবজেক্ট নয় be উদাহরণগুলি "কাঠামোগত উদাহরণ" বা "অবজেক্ট" হতে পারে। আমি আশা করি এটি আপনার পক্ষে পার্থক্য পরিষ্কার করে দেবে।
একটি অবজেক্ট হ'ল একটি কনস্ট্রাক্ট, কিছু স্ট্যাটিক যার নির্দিষ্ট বৈশিষ্ট্য এবং বৈশিষ্ট্য রয়েছে যেমন বৈশিষ্ট্য এবং পদ্ধতিগুলি, এটি যে কোনও কিছু হতে পারে (স্ট্রিং, একটি ইউজার কনট্রোল ইত্যাদি)
উদাহরণস্বরূপ হ'ল সেই অবজেক্টের অনন্য অনুলিপি যা আপনি ব্যবহার করতে এবং জিনিসগুলি করতে পারেন।
কম্পিউটারের মতো পণ্য কল্পনা করুন।
এক্সডব্লিউ 6400 ওয়ার্কস্টেশন একটি অবজেক্ট
আপনার xw6400 ওয়ার্কস্টেশন, (বা আপনার স্তরের xw6400 ওয়ার্কস্টেশন) xw6400 ওয়ার্কস্টেশন অবজেক্টের উদাহরণ
এই উত্তরটি ট্রাইট হিসাবে দেখা যেতে পারে তবে উদাহরণ এবং অবজেক্টের মধ্যে পার্থক্য সম্পর্কে চিন্তিত হওয়া ইতিমধ্যে ট্রাইটি সিটি।
আমি মনে করি জাভাস্ক্রিপ্টে এর সেরা চিত্রিত হয়েছে:
let obj= {"poo":1}
// "obj" is an object
আয়াত
Class Trash {
constructor(){this.poo = 1;}
}
let i = new Trash();
// "i" is an instance
যদি আমরা অবজেক্ট এবং ইনস্ট্যান্স অবজেক্টের সংজ্ঞা দেখতে পাই -
রান সময়ে ক্লাসের সদস্যের জন্য বরাদ্দকৃত স্মৃতিটিকে অবজেক্ট বা অবজেক্ট বলা হয় শ্রেণীর উদাহরণ।
আসুন উদাহরণের সংজ্ঞাটি দেখুন -
রান সময় সময়ে যেকোনোটির জন্য বরাদ্দকৃত মেমোরিটিকে উদাহরণ ভেরিয়েবল বলা হয়।
এখন ম্যালোক, কলোক, রিলোক এর মাধ্যমে সি তে যে কোনও রান টাইম মেমরি বরাদ্দের অর্থ বুঝুন:
struct p
{
}
p *t1
t1=(p) malloc(sizeof(p))
সুতরাং এখানেও আমরা রান টাইম মেমরি বরাদ্দ করছি কিন্তু এখানে আমরা উদাহরণ হিসাবে কল করি তাই টি 1 উদাহরণ হিসাবে এখানে আমরা টি 1 অবজেক্ট হিসাবে বলতে পারি না তাই প্রতিটি বস্তু শ্রেণীর উদাহরণ কিন্তু প্রতিটি ইনস্ট্যান্স অবজেক্ট নয়।
অবজেক্ট - এমন কোনও শ্রেণীর উদাহরণ যা তার নিজস্ব রাষ্ট্র এবং শ্রেণীর দ্বারা সংজ্ঞায়িত সমস্ত আচরণের অ্যাক্সেস।
দৃষ্টান্ত - নির্দিষ্ট শ্রেণীর জন্য একটি স্মৃতি ক্ষেত্রের রেফারেন্স।
আমি বিশ্বাস করতে পারছি না, এই লোকটি ব্যাখ্যা করার জন্য একটি লোক ছাড়া কেউই কোড ব্যবহার করেনি, আমাকে এটিরও একটা শট দিন!
// Design Class
class HumanClass {
var name:String
init(name:String) {
self.name = name
}
}
var humanClassObject1 = HumanClass(name: "Rehan")
এখন বাম পাশ অর্থাৎ: "হিউম্যান ক্লাসওবজেক্ট 1" হ'ল অবজেক্ট এবং ডান দিকটি: হিউম্যানক্লাস (নাম: "রেহান") এই বস্তুর উদাহরণ।
var humanClassObject2 = HumanClass(name: "Ahmad") // again object on left and it's instance on the right.
সুতরাং মূলত, উদাহরণটিতে সেই অবজেক্টের জন্য নির্দিষ্ট মান রয়েছে এবং বস্তুগুলিতে মেমরির অবস্থান থাকে (রান-টাইমে)।
বিখ্যাত স্টেটমেন্টটি মনে রাখবেন "অবজেক্টের রেফারেন্স কোনও জিনিসের উদাহরণে সেট করা নেই", এর অর্থ হ'ল অ-আরম্ভ করা অবজেক্টগুলির কোনও উদাহরণ নেই। কিছু প্রোগ্রামিং ভাষায় সুইফ্টের মতো সংকলক আপনাকে এমন একটি ক্লাসও ডিজাইন করতে দেয় না যা এর সদস্যদের সূচনা করার কোনও উপায় রাখে না (পরিবর্তনশীল যেমন: নাম, বয়স ইত্যাদি), তবে কিছু ভাষায় আপনাকে এটি করার অনুমতি দেওয়া হয়েছে:
// Design Class
class HumanClass {
var name:String // See we don't have any way to initialise name property.
}
এবং ত্রুটিটি কেবল রান সময় প্রদর্শিত হবে যখন আপনি এরকম কিছু করার চেষ্টা করবেন:
var myClass = HumanClass()
print(myClass.name) // will give, object reference not set to an instance of the object.
এই ত্রুটিটি ইঙ্গিত করে যে, নির্দিষ্ট মানগুলি (ভেরিয়েবল \ সম্পত্তির জন্য) হ'ল "INSTANCE" হিসাবে আমি উপরের বিষয়টি ব্যাখ্যা করার চেষ্টা করেছি! এবং অবজেক্টটি যেমন: "মাই ক্লাস" এর মধ্যে মেমরির অবস্থান রয়েছে (রান-টাইমে)।
যখন কোনও ভেরিয়েবলটি একটি পছন্দসই ধরণের (শ্রেণি) হিসাবে ঘোষণা করা হয়, কেবলমাত্র একটি রেফারেন্স তৈরি করা হয়, যাকে একটি অবজেক্ট বলা হয়। এই পর্যায়ে, এই বস্তুর জন্য কোনও মেমরি বরাদ্দ করা হয় না । এটি ঠিক পয়েন্টার হিসাবে কাজ করে (যেখানে অবস্থানটি ভবিষ্যতে সংরক্ষণ করা হবে) to এই প্রক্রিয়াটিকে 'ঘোষণা' বলা হয়।
Employee e; // e is an object
অন্যদিকে, যখন new
অপারেটরটি ব্যবহার করে কাস্টম প্রকারের একটি পরিবর্তনশীল ঘোষণা করা হয় , যা এই বস্তুটির জন্য গাদা হয়ে মেমরি বরাদ্দ করে এবং বরাদ্দকৃত মেমোরিটির রেফারেন্স প্রদান করে। এই অবজেক্ট যা এখন উদাহরণ হিসাবে অভিহিত করা হয় । এই প্রক্রিয়াটিকে বলা হয় 'ইনস্ট্যান্টিয়েশন'।
Employee e = new Employee(); // e is an instance
অন্যদিকে, জাভা হিসাবে কয়েকটি ভাষায়, কোনও বস্তু উদাহরণের সমান, জাভা সম্পর্কে ওরাকলের ডকুমেন্টেশনে লিখিত লাইন থেকে স্পষ্ট :
দ্রষ্টব্য: "একটি শ্রেণি তাত্ক্ষণিক করে" শব্দটির অর্থ "একটি বস্তু তৈরি করা" হিসাবে একই জিনিস। আপনি যখন কোনও অবজেক্ট তৈরি করেন, আপনি কোনও শ্রেণীর একটি "উদাহরণ" তৈরি করছেন, সুতরাং কোনও শ্রেণিকে "তাত্ক্ষণিকভাবে" চালাচ্ছেন।
প্রতিটি বস্তু তার শ্রেণীর উদাহরণ বলেছিল তবে শ্রেণীর প্রতিটি উদাহরণের প্রতিটি বৈশিষ্ট্যের জন্য নিজস্ব মূল্য রয়েছে বৈশিষ্ট্যের নাম এবং ক্রিয়াকলাপটি তাদের শ্রেণীর অনুক্রমের সাথে ভাগ করে দেয় তবে কোনও বস্তু তার শ্রেণীর উপর একটি অন্তর্নিহিত রেফারেন্স ধারণ করে
শ্রেণি: একটি শ্রেণি একটি নীল প্রিন্ট। অবজেক্ট: এটি ক্লাসের অনুলিপি। দৃষ্টান্ত: এটি একটি পরিবর্তনশীল যা অবজেক্টটির মেমরি ঠিকানা রাখতে ব্যবহৃত হয়।
একটি খুব বেসিক বিশ্লেষণমূলক উদাহরণ
ক্লাস হাউস -> বাড়ির ব্লুপ্রিন্ট। তবে আপনি নীল প্রিন্টে থাকতে পারবেন না। আপনার একটি ফিজিকাল হাউস দরকার যা ক্লাসের জীবনযাপনের দৃষ্টান্ত, উদাহরণগুলি বস্তুর প্রতিনিধিত্ব করে।
একবার আপনি কোনও ক্লাস ইনস্ট্যান্ট করলেন (নতুন ব্যবহার করে), তাত্ক্ষণিক জিনিসটি একটি বস্তুতে পরিণত হয়। একটি অবজেক্ট এমন একটি জিনিস যা এনক্যাপসুলেশন, পলিমারফিজম, অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের বিমূর্ত নীতিগুলি এবং ক্লাসে সংজ্ঞায়িত দৃষ্টান্তের সদস্যদের গ্রাস করার জন্য একটি প্রোগ্রামের সাথে আন্তঃব্যক্তিক বাস্তব জিনিসটি মেনে চলতে পারে। অবজেক্টে উদাহরণস্বরূপ সদস্য রয়েছে (অ স্থিতিশীল সদস্য)।
সুতরাং একটি শ্রেণীর উদাহরণ একটি বস্তু। 'উদাহরণস্বরূপ' শব্দটি ব্যবহৃত হয় যখন আপনি যেখানে জন্মগ্রহণ করেছেন সেখানকার উত্সটির উল্লেখ করছেন, এটি যদি আপনি 'শ্রেণীর উদাহরণ' বলেন তবে 'শ্রেণীর অবজেক্টের' তুলনায় 'ক্লাসের উদাহরণ' বললে এটি আরও পরিষ্কার হয় (যদিও পরবর্তীটি ব্যবহৃত হতে পারে)।
নেস্টেড ক্লাসগুলিতে এই জাভা ডকুমেন্টের 'অভ্যন্তরীণ ক্লাস' বিভাগটি পড়তে পারেন - https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
জাভা হ'ল একটি অবজেক্ট ভিত্তিক প্রোগ্রামিং ল্যাঙ্গুয়েজ (ওওপি)। এর অর্থ, জাভাতে আদিম প্রকারগুলি বাদে সমস্ত কিছুই একটি বস্তু।
এখন, জাভা অবজেক্টগুলি রিয়েল-ওয়ার্ল্ড অবজেক্টগুলির মতো। উদাহরণস্বরূপ আমরা জাভাতে একটি গাড়ী অবজেক্ট তৈরি করতে পারি, এতে বর্তমান গতি এবং রঙের মতো বৈশিষ্ট্য থাকবে; এবং আচরণ যেমন: ত্বরণ এবং পার্ক park
এটা অবজেক্ট ।
অন্যদিকে দৃষ্টান্তটি হ'ল সেই অবজেক্টের অনন্য এক আরম্ভিত অনুলিপি Car car = new Car()
।
জাভা ক্লাস এবং অবজেক্ট সম্পর্কে আরও জানতে এটি পরীক্ষা করে দেখুন
দ্রুত এবং সরল উত্তর
একটি object
এবং একটি মধ্যে পার্থক্য সম্পর্কে instance
, আমি কোন মতামত আছে বলে মনে করি না।
আমার কাছে দেখে মনে হচ্ছে লোকে কাগজপত্র, ব্লগ পোস্ট, বই বা কথোপকথনে এটিকে একে অপরের মত বদলে যায়।
আমার জন্য, আমি এটা দেখুন, একটি বস্তুর মেমরি একটি জেনেরিক এবং জীবিত সত্তা, ভাষা এটা ব্যবহার করা হয় দ্বারা নির্দিষ্ট শুধু ভালো হয়। Object
ক্লাস Java
। আমরা এর ধরণটি, বা এর সাথে যুক্ত অন্য যে কোনও বিষয় সেটিকে ধারক দ্বারা পরিচালিত হয় বা না সে বিষয়ে খুব বেশি যত্ন করি না।
একটি instance
হ'ল object
তবে একটি প্রকারের সাথে সম্পর্কিত, যেমন this method accepts Foo instances
, বা হিসাবে you can not put Animal instances in an instance of
a List of Vehicles
।
object
উদাহরণস্বরূপ s এর locks
সাথে যুক্ত instance
হয়েছে, গুলি নয় , অন্যদিকে instance
এর পদ্ধতি রয়েছে। objects
আবর্জনা সংগ্রহ করা হয়, না instance
।
তবে যেমনটি আমি বলেছি, এটি কেবল এটিই আমি দেখছি এবং আমি মনে করি না যে আমরা তাদের মধ্যে একটি মানক সংজ্ঞা দেওয়ার জন্য উল্লেখ করতে পারি এমন কোনও সংস্থা রয়েছে এবং প্রত্যেকেরই কিছুটা আলাদা বোঝাপড়া / সংজ্ঞা থাকবে (অবশ্যই সীমাবদ্ধতার মধ্যে) ।
একটি বস্তু একটি জেনেরিক জিনিস, উদাহরণস্বরূপ, গণিতে একটি লিনিয়ার ফাংশন নিন
ax + b একটি অবজেক্ট, যদিও 3x + 2 object বস্তুর একটি উদাহরণ
অবজেক্ট <<< দৃষ্টান্ত
সাধারণ <<< নির্দিষ্ট
এর আর কিছু নেই
কোনও বস্তু একটি শ্রেণি হতে পারে, বলুন আপনার কাছে বাস্কেটবল নামে একটি ক্লাস রয়েছে।
তবে আপনি একাধিক বাস্কেটবল রাখতে চান যাতে আপনার কোডে আপনি 1 টিরও বেশি বাস্কেটবল তৈরি করেন
বাস্কেটবল1 এবং বাস্কেটবল 2 বলুন। তারপরে আপনি আপনার অ্যাপ্লিকেশনটি চালান। আপনার কাছে এখন অবজেক্ট বাস্কেটবলের 2 টি উদাহরণ রয়েছে।
অবজেক্টটি ক্লাসকে বোঝায় এবং উদাহরণটি কোনও অবজেক্টকে বোঝায় other অন্য কথায় উদাহরণস্বরূপ এটিতে নির্দিষ্ট মান সহ কোনও বস্তুর অনুলিপি থাকে।