জাভাতে কোন শ্রেণি, একটি অবজেক্ট এবং উদাহরণ কী?
উত্তর:
জাভা (এবং অন্য কোনও প্রোগ্রামিং ল্যাঙ্গুয়েজ) প্রকার এবং মানগুলির ক্ষেত্রে মডেল করা হয় । তাত্ত্বিক স্তরে, মান হ'ল কিছু পরিমাণের তথ্যের জন্য একটি প্রতিনিধিত্ব, এবং একটি প্রকার হল মানগুলির একটি সেট। যখন আমরা বলি এক্স মান হ'ল ধরণের ওয়াইয়ের উদাহরণ , আমরা কেবলই বলে যাচ্ছি যে এক্স মানের মানগুলির সেটটির সদস্য is
সুতরাং "উদাহরণস্বরূপ" শব্দটির অর্থ এটিই হ'ল: এটি একটি সম্পর্ককে কোনও জিনিস নয় বলে বর্ণনা করে।
জাভা প্রোগ্রামিং ভাষার টাইপ সিস্টেম দুটি ধরণের, আদিম ধরণের এবং রেফারেন্স প্রকারকে সমর্থন করে । রেফারেন্স প্রকারগুলি আরও ক্লাস এবং অ্যারের ধরণের মধ্যে বিভক্ত হয় । একটি জাভা অবজেক্ট একটি রেফারেন্স টাইপের উদাহরণ।
একটি বস্তু একটি শ্রেণীর উদাহরণ বা একটি অ্যারে। ( জেএলএস ৪.৩.১ )
এটাই ধরণের তাত্ত্বিক দৃষ্টিভঙ্গি।
অনুশীলনে, বেশিরভাগ জাভা বিকাশকারী "উদাহরণ" এবং "অবজেক্ট" শব্দটিকে প্রতিশব্দ হিসাবে বিবেচনা করে। (এবং এটি আমাকে অন্তর্ভুক্ত করে তারপরে আমি দ্রুত কিছু ব্যাখ্যা করার চেষ্টা করছি)) এবং বেশিরভাগ বিকাশকারীরা আদিম ধরণের উদাহরণকে বোঝাতে "উদাহরণ" না দিয়ে "মান" শব্দটি ব্যবহার করেন।
user2390183
। আপনি ভেরিয়েবলগুলি "নাম" হিসাবে চিকিত্সা করছেন। তারা না. চলকগুলি হ'ল "রেফারেন্স ধারক" যা অবজেক্টের রেফারেন্স ধারণ করে। বস্তুর অভ্যন্তরীণ নাম নেই। উল্লেখগুলি হ'ল নিকটবর্তী জিনিস যা কোনও জিনিসের জন্য "নাম" রয়েছে, এ ছাড়া তাদের স্থির প্রতিনিধিত্ব নেই। (জিসি কোনও বস্তুকে সরিয়ে ফেলতে পারে যা রেফারেন্স উপস্থাপনের জন্য ব্যবহৃত বিট প্যাটার্নকে পরিবর্তন করে))
একটি শ্রেণি হ'ল একটি নীলনকশা যা আপনি অবজেক্ট তৈরি করতে ব্যবহার করেন । একটি বস্তু একটি শ্রেণীর উদাহরণ - এটি একটি কংক্রিট 'জিনিস' যা আপনি একটি নির্দিষ্ট শ্রেণীর ব্যবহার করে তৈরি করেছিলেন। সুতরাং, 'অবজেক্ট' এবং 'উদাহরণ' একই জিনিস, তবে 'উদাহরণ' শব্দটি তার শ্রেণীর সাথে কোনও বস্তুর সম্পর্ককে নির্দেশ করে।
এটি উদাহরণ সহকারে দেখলে বোঝা সহজ। উদাহরণস্বরূপ, ধরুন আপনার একটি ক্লাস রয়েছে House
। আপনার নিজের বাড়ি একটি জিনিস এবং শ্রেণীর উদাহরণ House
। আপনার বোনের বাড়ি অন্য জিনিস (শ্রেণীর অন্য উদাহরণ House
)।
// Class House describes what a house is
class House {
// ...
}
// You can use class House to create objects (instances of class House)
House myHouse = new House();
House sistersHouse = new House();
শ্রেণি House
একটি বাড়ি কী তা সম্পর্কে ধারণাটি বর্ণনা করে এবং নির্দিষ্ট, কংক্রিট বাড়িগুলি যা শ্রেণীর অবজেক্ট এবং দৃষ্টান্ত House
।
দ্রষ্টব্য: জাভাতে সমস্ত অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষার মতোই এটি একই।
class House {
// blue print for House Objects
}
class Car {
// blue print for Instances of Class Car
}
House myHouse = House new();
Car myCar = Car new();
একটি শ্রেণি মূলত একটি সংজ্ঞা এবং এতে অবজেক্টের কোড থাকে। একটি বস্তু একটি শ্রেণীর উদাহরণ
উদাহরণস্বরূপ যদি আপনি বলেন
String word = new String();
ক্লাসটি স্ট্রিং ক্লাস, যা বস্তুর (উদাহরণ) শব্দটি বর্ণনা করে।
যখন কোনও ক্লাস ঘোষণা করা হয়, কোনও মেমরি বরাদ্দ করা হয় না তাই শ্রেণিটি কেবল একটি টেম্পলেট।
শ্রেণীর অবজেক্টটি ঘোষিত হলে মেমরি বরাদ্দ করা হয়।
static
শ্রেণীর ভেরিয়েবলগুলি উপস্থাপন করে । (এবং অন্যান্য বিষয়গুলির জন্যও যা শ্রেণীর ধরণের পরিচয়ের সাথে সম্পর্কিত))
আমি জেস্পারের ব্যাখ্যা সাধারণ লোকের দিক থেকে পছন্দ করি
জেস্পারের উত্তর থেকে উদাহরণগুলি তৈরি করে,
class House {
// blue print for House Objects
}
class Car {
// blue print for Instances of Class Car
}
House myHouse = new House();
Car myCar = new Car();
মাইহাউস এবং মাইকার বস্তু
মাইহাউস হল বাড়ির উদাহরণ (বস্তু-মাইহাউসটি তার শ্রেণি-গৃহের সাথে সম্পর্কিত) মাইকারটি গাড়ীর উদাহরণ
সংক্ষেপে
"Myhouse একটি হল উদাহরণস্বরূপ এর ক্লাস যা বলছে হিসাবে একই হাউস" "Myhouse একটি হল অবজেক্ট এর টাইপ হাউস"
শ্রেণি হ'ল ডেটা টাইপ, আপনি এই ধরণের জিনিসটি তৈরি করতে ব্যবহার করেন।
দৃষ্টিকোণটি যৌক্তিক তবে বস্তুটি শারীরিক অর্থ কিছু স্মৃতি ধারণ করে।
আমরা বিমূর্ত শ্রেণীর পাশাপাশি ইন্টারফেসের জন্য একটি উদাহরণ তৈরি করতে পারি, তবে আমরা
তাদের জন্য কোনও বস্তু তৈরি করতে পারি না ।
অবজেক্টটি ক্লাসের উদাহরণ এবং উদাহরণের অর্থ শ্রেণীর প্রতিনিধি অর্থাৎ বস্তুর object
তাত্পর্য একটি অবজেক্টের রেফারেন্সকে বোঝায়।
অবজেক্ট আসলে সেই উদাহরণটির মেমরি ঠিকানার দিকে ইঙ্গিত করছে।
আপনি স্তরগুলির উপর দিয়ে উদাহরণটি পাস করতে পারবেন না তবে আপনি স্তরটি দিয়ে বস্তুটি পাস করতে পারেন
আপনি উদাহরণ সংরক্ষণ করতে পারবেন না তবে আপনি কোনও বস্তু সঞ্চয় করতে পারেন
একটি একক বস্তুর একাধিক উদাহরণ থাকতে পারে।
দৃষ্টান্তের উভয় শ্রেণীর সংজ্ঞা এবং অবজেক্ট সংজ্ঞা উভয়ই থাকবে যেখানে বস্তু হিসাবে এটিতে কেবলমাত্র বস্তুর সংজ্ঞা থাকবে।
অবজেক্টের সিনট্যাক্স:
Classname var=new Classname();
তবে উদাহরণস্বরূপ সৃষ্টির জন্য এটি কোনও পয়েন্টারকে কেবলমাত্র একটি অবজেক্টকে রেফারিং করে, সিনট্যাক্সটি হ'ল:
Classname varname;
জাভাতে, অবজেক্টগুলি হিপ মেমোরিতে তৈরি হয়। এগুলির জন্য আমাদের অ্যাপ্লিকেশনটিতে নির্দেশিত এবং ব্যবহৃত হওয়া দরকার। রেফারেন্সটিতে অবজেক্টের মেমরির অবস্থান রয়েছে যা দিয়ে আমরা আমাদের অ্যাপ্লিকেশনটিতে অবজেক্টগুলি ব্যবহার করতে পারি। সংক্ষেপে একটি রেফারেন্স হল ভেরিয়েবলের নাম ছাড়া আর কিছুই নয় যা কোনও স্মৃতি অবস্থানের উপর ইনস্ট্যান্ট করা অবজেক্টের ঠিকানা সঞ্চয় করে।
একটি instance
হল একটি সাধারণ শব্দ object
। এফওয়াইআই, Object
একটি ক্লাস।
উদাহরণ স্বরূপ,
Class A{
}
A ref = new A();
উপরের কোড স্নিপেটের জন্য রেফ হ'ল উত্পাদিত ক্লাস এ এর একটি সামগ্রীর জন্য রেফারেন্স।
সত্যই, আমি আলফ্রেড ব্লগ সংজ্ঞায় আরও স্বাচ্ছন্দ্য বোধ করছি :
অবজেক্ট : রিয়েল ওয়ার্ল্ড অবজেক্টস 2 টি প্রধান বৈশিষ্ট্য, রাষ্ট্র এবং আচরণ ভাগ করে নেয়। মানুষের রাষ্ট্র (নাম, বয়স) এবং আচরণ (চলমান, ঘুমন্ত) রয়েছে। গাড়ির স্টেট (বর্তমান গতি, বর্তমান গিয়ার) এবং আচরণ (ব্রেক প্রয়োগ, গিয়ার পরিবর্তন করা) রয়েছে। সফ্টওয়্যার অবজেক্টগুলি ধারণাগতভাবে রিয়েল-ওয়ার্ল্ড অবজেক্টগুলির মতো: এগুলিও রাষ্ট্র এবং সম্পর্কিত আচরণের সমন্বয়ে গঠিত। কোনও বস্তু তার রাজ্য ক্ষেত্রগুলিতে সঞ্চয় করে এবং পদ্ধতির মাধ্যমে তার আচরণটি প্রকাশ করে।
শ্রেণি : একটি "টেম্পলেট" / "ব্লুপ্রিন্ট" যা অবজেক্ট তৈরি করতে ব্যবহৃত হয়। মূলত, একটি শ্রেণিতে ক্ষেত্র, স্ট্যাটিক ক্ষেত্র, পদ্ধতি, স্ট্যাটিক পদ্ধতি এবং নির্মাতা থাকে। ক্ষেত্রটি শ্রেণীর স্থিতি ধরে রাখতে ব্যবহৃত হয় (যেমন: শিক্ষার্থী অবজেক্টের নাম)। ক্লাসের আচরণের প্রতিনিধিত্ব করতে পদ্ধতি ব্যবহার করা হয় (উদাহরণস্বরূপ: একজন শিক্ষার্থী কীভাবে দাঁড়াতে চলেছে)। কনস্ট্রাক্টর ক্লাসের একটি নতুন ইনস্ট্যান্স তৈরি করতে ব্যবহৃত হয়।
উদাহরণ : কোনও উদাহরণ কোনও শ্রেণীর অনন্য অনুলিপি যা কোনও অবজেক্টকে প্রতিনিধিত্ব করে। যখন কোনও শ্রেণীর একটি নতুন উদাহরণ তৈরি করা হয়, জেভিএম সেই শ্রেণীর উদাহরণের জন্য মেমরির একটি কক্ষ বরাদ্দ করবে।
পরবর্তী উদাহরণ দেওয়া:
public class Person {
private int id;
private String name;
private int age;
public Person (int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (id != other.id)
return false;
return true;
}
public static void main(String[] args) {
//case 1
Person p1 = new Person(1, "Carlos", 20);
Person p2 = new Person(1, "Carlos", 20);
//case 2
Person p3 = new Person(2, "John", 15);
Person p4 = new Person(3, "Mary", 17);
}
}
কেস 1 এর জন্য, শ্রেনী ব্যক্তির দুটি উদাহরণ রয়েছে, তবে উভয় দৃষ্টান্ত একই বস্তুর প্রতিনিধিত্ব করে।
কেস 2 এর জন্য, শ্রেণি ব্যক্তিটির দুটি উদাহরণ রয়েছে, তবে প্রতিটি উদাহরণ পৃথক বস্তুর প্রতিনিধিত্ব করে।
সুতরাং শ্রেণি, অবজেক্ট এবং উদাহরণ পৃথক জিনিস। সঠিক উত্তর হিসাবে নির্বাচিত উত্তরে প্রস্তাবিত হিসাবে বস্তু এবং উদাহরণটি প্রতিশব্দ নয়।
আপনার যদি এমন কোনও প্রোগ্রাম থাকে যা গাড়িগুলির মডেল করে গাড়িগুলির প্রতিনিধিত্ব করার জন্য আপনার একটি ক্লাস থাকে, সুতরাং কোডে আপনি বলতে পারেন:
Car someCar = new Car();
someCar এখন ক্লাস কার একটি উদাহরণ। প্রোগ্রামটি যদি কোনও মেরামত কেন্দ্রে ব্যবহার করা হয় এবং কিছুCar তাদের গাড়িটিকে তাদের সিস্টেমে উপস্থাপন করে, তবে আপনার গাড়ীটি হ'ল।
সুতরাং গাড়ি এমন এক শ্রেণি যা কোনও বাস্তব বিশ্বের গাড়িকে উপস্থাপন করতে পারে কার কার কার শ্রেণির উদাহরণ এবং কিছু কেয়ার একটি বাস্তব জীবনের বস্তুর প্রতিনিধিত্ব করে (আপনার গাড়ী)
কোডিং নিয়ে আলোচনার ক্ষেত্রে উদাহরণস্বরূপ এবং অবজেক্টটি প্রায়শই আন্তঃব্যবহারযোগ্যভাবে ব্যবহৃত হয়
someCar
কোনও গাড়ীর উদাহরণের উল্লেখ। দৃষ্টান্তটির নিজস্ব কোনও নাম নেই।
আপনার কম্পিউটারের স্টোর এবং প্রসেসগুলি যে কোনও ধরণের ডেটা এর সর্বাধিক প্রাথমিক উপস্থাপনায় বিটগুলির এক সারি। এই বিটগুলি যেভাবে ব্যাখ্যা করা হয় তা ডেটা ধরণের মাধ্যমে করা হয়। ডেটা প্রকারগুলি আদিম বা জটিল হতে পারে। আদিম ডাটা টাইপগুলি - উদাহরণস্বরূপ - ইনট বা ডাবল। তাদের একটি নির্দিষ্ট দৈর্ঘ্য এবং ব্যাখ্যা করার একটি নির্দিষ্ট উপায় রয়েছে। একটি পূর্ণসংখ্যার ক্ষেত্রে, সাধারণত প্রথম বিটটি চিহ্নটির জন্য ব্যবহৃত হয়, অন্যগুলি মানটির জন্য ব্যবহৃত হয়।
জটিল তথ্য প্রকারগুলি আদিম এবং অন্যান্য জটিল তথ্য প্রকারের সংমিশ্রণ হতে পারে এবং এটিকে জাভাতে "শ্রেণি" বলা হয়।
প্রথম এবং শেষ নাম হিসাবে পরিচিত দুটি স্ট্রিং নিয়ে গঠিত জটিল ডাটা টাইপ পিপলনামের সংজ্ঞা দিতে পারেন। জাভাতে প্রতিটি স্ট্রিং অন্য জটিল ডেটা টাইপ। বিনিময়ে স্ট্রিংগুলি (সম্ভবত) আদিম ডেটা টাইপ চর ব্যবহার করে প্রয়োগ করা হয় যার জন্য জাভা জানে যে তারা কতগুলি বিট সংরক্ষণ করে এবং কীভাবে তা ব্যাখ্যা করতে পারে knows
আপনি যখন কোনও ডেটা টাইপের উদাহরণ তৈরি করেন, আপনি কোনও বস্তু পান এবং আপনার কম্পিউটারগুলি এর জন্য কিছু স্মৃতি সঞ্চয় করে এবং এর অবস্থান এবং সেই উদাহরণটির নাম মনে রাখে। মেমরিতে পিপলনামের একটি উদাহরণ দুটি স্ট্রিং ভেরিয়েবলের স্থান এবং বুককিপিংয়ের জন্য আরও কিছুটা গ্রহণ করবে। একটি পূর্ণসংখ্যা জাভাতে 32 বিট নেয়।
জটিল তথ্য টাইপগুলিতে তাদের নির্ধারিত পদ্ধতি থাকতে পারে। পদ্ধতিগুলি তাদের তর্কগুলিতে বা যে ধরণের ডেটা টাইপ থেকে আপনি এই পদ্ধতিটি কল করেছেন সেগুলির উপর ক্রিয়া সম্পাদন করতে পারে। আপনার যদি পি 1 এবং পি 2 নামে পিপলনামের দুটি দৃষ্টান্ত থাকে এবং আপনি কোনও পদ্ধতি p1.getFrstName () কল করেন তবে এটি সাধারণত প্রথম ব্যক্তির প্রথম নামটি দেয় তবে দ্বিতীয় ব্যক্তির নয়।
ক্লাস এবং অবজেক্টের পিছনে ধারণাটি হ'ল যুক্তিকে একক প্রোগ্রামিং ইউনিটে আবদ্ধ করা। ক্লাসগুলি হ'ল ব্লুপ্রিন্ট যা কোন বস্তু তৈরি হয়।
এখানে একটি শ্রেণীর কারের প্রতিনিধিত্বের একটি উদাহরণ:
public class Car {
int currentSpeed;
String name;
public void accelerate() {
}
public void park() {
}
public void printCurrentSpeed() {
}
}
আপনি তৈরি করতে পারেন দৃষ্টান্ত এর অবজেক্ট ভালো কার:
Car audi = new Car();
Car toyota = new Car();
আমি এই টিউটোরিয়াল থেকে উদাহরণ গ্রহণ করেছি
এর যৌক্তিক অস্তিত্ব রয়েছে, অর্থাৎ এটি তৈরির সময় কোনও মেমরির স্থান বরাদ্দ করা হয় না।
এটি বস্তুর একটি সেট।
কোনও শ্রেণিকে অবজেক্ট তৈরির জন্য নীলনকশা হিসাবে বিবেচনা করা যেতে পারে।
এটি ক্লাস কীওয়ার্ড ব্যবহার করে তৈরি করা হয়েছে
একটি শ্রেণি পদ্ধতিগুলি এবং ডেটা সদস্যদের সংজ্ঞায়িত করে যা অবজেক্টদের দ্বারা গ্রহণ করা হবে।
এটির দৈহিক অস্তিত্ব রয়েছে, অর্থাত্ স্মৃতি স্থানটি বরাদ্দ করা হয় যখন এটি তৈরি করা হয়।
এটি একটি শ্রেণীর উদাহরণ।
একটি অবজেক্ট একটি অনন্য সত্তা যা ডেও সদস্য এবং সদস্য ফাংশন একসাথে OOP ভাষায় থাকে।
এটি নতুন কীওয়ার্ড ব্যবহার করে তৈরি করা হয়েছে
কোনও অবজেক্ট ক্লাসে ডেটা সদস্যদের দ্বারা প্রাপ্ত পদ্ধতিগুলি এবং মানগুলির প্রয়োগগুলি নির্দিষ্ট করে।
একটি শ্রেণি হ'ল একটি নীলনকাগুলি যা কোনও বস্তু তৈরি করার জন্য প্রয়োজন (= উদাহরণ)।
একটি বস্তু এবং উদাহরণের মধ্যে পার্থক্য হ'ল একটি বস্তু একটি জিনিস এবং উদাহরণ একটি সম্পর্ক।
অন্য কথায়, উদাহরণটি শ্রেণীর সাথে কোনও বস্তুর সম্পর্ককে বর্ণনা করে যা বস্তুটি তৈরি হয়েছিল।
সংজ্ঞা "অবজেক্ট একটি শ্রেণীর উদাহরণ", ধারণাটি ভুল, তবে প্রয়োগ হিসাবে সঠিক। প্রোগ্রামার মন আরও কম থেকে কম ফোকাস করার জন্য বস্তুগত দিকনির্দেশক বৈশিষ্ট্যগুলি বাস্তব জীবন থেকে নেওয়া হয়। বাস্তব জীবনে ক্লাসগুলি ডিজাইন করা হয়েছে অবজেক্টটি পরিচালনা করার জন্য eg উদাহরণস্বরূপ- আমাদের মানুষের একটি বর্ণ, ধর্ম, জাতীয়তা এবং আরও অনেক কিছু রয়েছে। এই বর্ণ, ধর্ম, জাতীয়তা শ্রেণি এবং মানব ছাড়া তাদের কোন অস্তিত্ব নেই। কিন্তু বাস্তবায়নে শ্রেণিবিহীন বস্তুর অস্তিত্ব নেই। অবজেক্ট- অবজেক্ট একটি স্বতন্ত্র সত্তা যা কিছু ভাল সংজ্ঞাযুক্ত বৈশিষ্ট্যযুক্ত। এখানে স্বতন্ত্র অর্থ এমন কিছু যা একে অন্যের থেকে আলাদা করে তোলে। ভাল সংজ্ঞায়িত বৈশিষ্ট্য কিছু প্রসঙ্গে বিবেচনা করে। শ্রেণি- কিছু সাধারণ আচরণ বা কিছু সাধারণ ধরণের অবজেক্টের শ্রেণিবিন্যাস।
উপরের উত্তরগুলি সঠিক হলেও ক্লাস এবং অবজেক্ট সম্পর্কে চিন্তা করার আরেকটি উপায় আসল বিশ্বের উদাহরণগুলি ব্যবহার করা হবে: প্রাণী নামের একটি শ্রেণিতে বিড়াল, কুকুর বা ফিশের মতো জিনিস থাকতে পারে। বাইবেলের শিরোনামযুক্ত একটি বস্তু ক্লাস বুকের হতে পারে ইত্যাদি etc. আমি যখন জাভা শিখছিলাম তখন এই চিন্তার উদাহরণটি আমাকে সহায়তা করেছিল।
Animal
কোনও শ্রেণি হয় এবং Cat
উদাহরণস্বরূপ, আমার পোষা বিড়াল বিড়াল "ফ্লফি" কী?
ক্লাস একটি টেম্পলেট বা প্রকার। একটি বস্তু শ্রেণীর উদাহরণ।
উদাহরণ স্বরূপ:
public class Tweet {
}
Tweet newTweet = new Tweet();
টুইট একটি শ্রেণি এবং নিউটুইট শ্রেণীর একটি বিষয়।