ওওপি ভাষা এবং টাইপ ক্লাস


9

প্রোগ্রামিং ল্যাঙ্গুয়েজ তত্ত্বে, একটি প্রকার হল মানগুলির একটি সেট। যেমন "int" টাইপটি হ'ল সমস্ত সংখ্যার মানগুলির সেট।

ওওপি ভাষায় কোনও শ্রেণি একটি ধরণের, তাই না?

যখন কোনও শ্রেণি একাধিক সদস্যের সাথে সংজ্ঞায়িত হয়, যেমন

class myclass{
    int a; 
    double b;
}

আমরা যখন কোন ক্লাস সম্পর্কে কথা বলি, তখন আমাদের অর্থ কি?

  • " (a,b)যেখানে aকোন int এবং bএকটি ডবল হয়", বা
  • "{ (x,y)| xকোন int, yকোনও ডাবল}"?

একটি উদাহরণ myclassবলতে কি বোঝায়?

  • " (a,b)যেখানে aকোন int এবং bএকটি ডবল হয়", বা
  • একটি বস্তু যা মেমোরির জায়গা দখল করে এবং যা (অগত্যা নয়, খালি থাকতে পারে) স্টোর রাখতে পারে (x,y), xকোন int এবং yকোন দ্বিগুণ?

2
একটি শ্রেণি একটি প্রকার। "{(x, y) | x কোনও অন্তর্নিহিত, y দুটি ডাবল}" " প্রায় সঠিক হবে, দুটি জিনিস বাদে: 1) আপনি একটি টুপল ব্যবহার করেছেন যখন কোনও শ্রেণি ধারণাগতভাবে রেকর্ড - আপনি এটির উল্লেখ করেন নাম, কোনো অবস্থান দ্বারা ক্ষেত্র; এবং 2) ক্ষেত্রের সাথে না যে রেকর্ড aএবং bযে ধরনের সদস্য, হিসাবে Killian ওদিক উল্লেখ Myclass হয়। isomorphic ক্ষেত্রের সাথে রেকর্ড aএবং bধরণ intএবং double- আপনি যে মত একটি রেকর্ড গ্রহণ করা এবং এটি চালু মধ্যে পারে এর একটি দৃষ্টান্ত myclass
Doval

1
প্রবলভাবে টাইপ করা ভাষায়, একটি শ্রেণি একটি প্রকার। দুর্বলভাবে টাইপ করা ভাষায়, এটি একটি প্রকার বা নাও হতে পারে।
shawnhcorey

1
প্রোগ্রামিং ল্যাঙ্গুয়েজ থিওরিতে কোন ধরণের মান একটি সেট? আমার মনে হয় আপনার নিজের জন্য অন্য একটি বই বা অন্য শিক্ষক বা উভয়ই পেতে হবে। একটি 'পরিবর্তনশীল' বা 'ধ্রুবক' এর একটি 'প্রকার' থাকে এবং প্রায়শই তার 'মান' থাকে। শূন্য মানের প্রকার, স্কেলার এবং সংমিশ্রিত মান প্রকার রয়েছে যেখানে ভেরিয়েবল বা ধ্রুবকের মানতে সাব-ভেরিয়েবল / সাব-কনস্ট্যান্ট থাকে।
ব্যবহারকারী1703394

1
@ ব্যবহারকারী1703394 একটি প্রকার হল মানগুলির একটি সেট। একটি 32-বিট পূর্ণসংখ্যা টাইপ 2 ^ 32 স্বতন্ত্র মানের একটি সেট। যদি কোনও অভিব্যক্তি type প্রকারের মানটির মূল্যায়ন করে তবে আপনি জানেন যে মানটি সেটে রয়েছে। গাণিতিক অপারেটরগুলি কেবলমাত্র সেটের মানগুলির উপরে ফাংশন।
ডোভাল

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

উত্তর:


30

আমরাও।

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

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


9
এটি লক্ষ করা উচিত যে কয়েকটি ভাষায় কাঠামোগত সমতুল্য হওয়ায় এক প্রকারের অন্য ধরণের উপ-প্রকার (এবং প্রায়শই বিপরীতে) তৈরি করা যথেষ্ট। এটি যদিও সিদ্ধান্তহীন / অস্বাভাবিক নয়।
টেলাস্টিন

7
@ টিম একটি টাইপিডেফ কোনও প্রকার তৈরি করে না, এটি বিদ্যমান প্রকারটি উল্লেখ করার জন্য ব্যবহৃত নামটিকে উপকরণ দেয়।
ডোভাল

1
@ ডেভসোলার তিনি স্পষ্টভাবে সি উল্লেখ করেছেন এবং সি ++ ব্যতীত অন্য কোনও ভাষাও আমি জানি না যা সেই শব্দটি ব্যবহার করে।
ডোভাল

3
@ টেলাস্টিন - এই ভাষাগুলিকে আগুন দিয়ে হত্যা করা উচিত।
জন গল্প

4
@ জোনস্টেরি স্ট্রাকচারাল সাব টাইপিং মডিউল স্তরে দরকারী; এর অভাব হ'ল যা interfaceযদি আপনি কখনও ইউনিট টেস্টিং করতে চান তবে আপনাকে জাভা এবং সি # তে সমস্ত কিছুতে রূপান্তর করতে বাধ্য করে। আপনি এক টন বয়লারপ্লেট লেখার অবসান ঘটিয়েছেন যাতে আপনার প্রোগ্রামটি যে নির্দিষ্ট ক্লাসটি ব্যবহার করবে তা পরিবর্তন করতে পারে যদিও রানটাইমে এটি পরিবর্তন করার কোনও ইচ্ছা নেই।
ডোভাল

6

প্রকার সেট নয়।

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

সেট থিওরি আপনাকে ফ্লাইতে সাবসেটগুলি তৈরি করতে দেয় , যদি আপনার কোনও নিয়ম থাকে যা সাবসেটের সাথে সম্পর্কিত তা বর্ণনা করে। প্রকারের তত্ত্বটি সাধারণত এটির অনুমতি দেয় না। যদিও বেশির ভাগ ভাষায় একটি আছে Numberটাইপ বা অনুরূপ কিছু, তারা না একটি আছে EvenNumberটাইপ, না এটা একটি তৈরি করতে সহজবোধ্য হবে। আমি বোঝাতে চাইছি, প্রকারটি নিজেই সংজ্ঞায়িত করা যথেষ্ট সহজ, তবে যে বিদ্যমান বিদ্যমান Numberতা যাদুকরীভাবে এস তে রূপান্তরিত হবে না EvenNumber

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

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

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

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

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


"সাব টাইপিং" ধারণাটি "সাবসেট" এর ধারণার চেয়ে সত্যই আলাদা। যদি Xএকটি উপপ্রকার হয় Y, এটা মানে আমরা করতে পারেন প্রতিস্থাপন দৃষ্টান্ত Yদৃষ্টান্ত জন্য Xএবং প্রোগ্রাম লেগে থাকব "কাজ" কিছু অর্থে। এটি কাঠামোগত পরিবর্তে আচরণগত, যদিও কিছু ভাষা (যেমন গো, মরিচা, যুক্তিযুক্ত সি) প্রোগ্রামার বা ভাষা প্রয়োগের ক্ষেত্রে সুবিধার কারণে পরবর্তীগুলি বেছে নিয়েছে।


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
বিশ্ব প্রকৌশলী

4

বীজগণিত সংক্রান্ত ডেটা টাইপগুলি এটির আলোচনার উপায়।

তিন ধরণের মূল উপায় যা আপনি প্রকারগুলি একত্রিত করতে পারেন:

  • প্রোডাক্ট। এটিই মূলত আপনি যা ভাবছেন:

    struct IntXDouble{
      int a; 
      double b;
    }
    

    একটি পণ্য ধরনের; এর মানগুলি হ'ল এক intএবং একের সমস্ত সম্ভাব্য সংমিশ্রণ (অর্থাত্ tuples) double। আপনি যদি সংখ্যার প্রকারকে সেট হিসাবে বিবেচনা করেন তবে পণ্যের ধরণের কার্ডিনালিটি আসলে ক্ষেত্রগুলির কার্ডিনালটির পণ্য।

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

    data IntOrDouble = AnInt Int
                     | ADouble Double
    

    এই ধরণের মানগুলির মধ্যে ফর্ম রয়েছে AnInt 345, বা ADouble 4.23, তবে সর্বদা কেবলমাত্র একটি সংখ্যক জড়িত থাকে (পণ্যের ধরণের থেকে ভিন্ন, যেখানে প্রতিটি মানের দুটি সংখ্যা থাকে)। সুতরাং কার্ডিনালিটি: আপনি প্রথমে সমস্ত Intমান গণনা করুন , প্রতিটি অবশ্যই AnIntকনস্ট্রাক্টরের সাথে একত্রিত করতে হবে । প্লাস , সমস্ত Doubleমান, প্রতিটি একত্রিত ADouble। সুতরাং যোগফল টাইপ

  • Exponentiation 1 । আমি এখানে সে বিষয়ে বিস্তারিত আলোচনা করব না কারণ এর কোনও পরিষ্কার OO চিঠিপত্র নেই।

তাহলে কি ক্লাস সম্পর্কে? আমি ইচ্ছাকৃতভাবে এর structপরিবর্তে কীওয়ার্ডটি classব্যবহার করেছি IntXDouble। জিনিসটি হ'ল, একটি শ্রেণীর হিসাবে একটি শ্রেণি সত্যই তার ক্ষেত্রগুলি দ্বারা চিহ্নিত করা হয় না, সেগুলি কেবল বাস্তবায়নের বিশদ। গুরুত্বপূর্ণ বিষয়টি বরং শ্রেণীর কী কী স্বতন্ত্র মান থাকতে পারে তা হ'ল ।

কি হয় প্রাসঙ্গিক যদিও, একটি বর্গ মান হতে পারে মান কোনো এটা উপশ্রেণী এর ! সুতরাং একটি শ্রেণি আসলে একটি পণ্যের ধরণের চেয়ে একটি যোগ টাইপ: যদি Aএবং Bউভয় থেকেই উদ্ভূত myClassহয় myClassতবে মূলত যোগফল হবে Aএবং B। প্রকৃত বাস্তবায়ন নির্বিশেষে


1 এটি ফাংশন ( গাণিতিক অর্থে! ); একটি ফাংশন প্রকার Int -> Doubleঘনিষ্ঠ দ্বারা প্রতিনিধিত্ব করা হয় DoubleInt। আপনার ভাষার যথাযথ কার্যকারিতা না থাকলে খারাপ ...


2
দুঃখিত, তবে আমি মনে করি এটি খুব খারাপ উত্তর। কার্যাবলী না একটি পরিষ্কার OO যেমন পণ্য অ্যানালগ, যথা পদ্ধতি (এবং একক পদ্ধতি ইন্টারফেস ধরনের)। কোনও বস্তুর মূল সংজ্ঞাটি এটির উভয় রাষ্ট্র (ক্ষেত্র / ডেটা সদস্য) এবং আচরণ (পদ্ধতি / সদস্য ফাংশন) থাকে; আপনার উত্তর উত্তরটিকে উপেক্ষা করে।
রুখ

@রুখ: না আপনি অবশ্যই ওওতে ফাংশনগুলি বাস্তবায়ন করতে পারেন, তবে সাধারণভাবে, পদ্ধতিগুলি ফাংশন হয় না ( কারণ তারা রাষ্ট্র পরিবর্তন করে)। তবুও প্রক্রিয়াগত ভাষার ফাংশনগুলিতে "ফাংশন" হয় না that প্রকৃতপক্ষে, একক-স্ট্যাটিক-পদ্ধতি ইন্টারফেসগুলি ফাংশন / এক্সফোনেনশিয়াল-প্রকারের নিকটে আসে তবে আমি এই আলোচনাটি এড়াতে আশা করি কারণ এটির এই প্রশ্নের কোনও প্রাসঙ্গিকতা নেই।
22:38

... আরও গুরুত্বপূর্ণ হল, আমার আনোয়ার করে আচরণ বিবেচনা করুন। প্রকৃতপক্ষে আচরণটি সাধারণত আপনি উত্তরাধিকার ব্যবহার করার কারণ এবং বিভিন্ন সম্ভাব্য আচরণের একীকরণ অবিকলভাবে OO শ্রেণির যোগফলের দিকটি ধারণ করে।
বাম দিকের বাইরে

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

@ ডোভাল ১) আপনি আফাইকের চারপাশে পদ্ধতিগুলি পাস করতে পারেন, সুতরাং এগুলি প্রথম শ্রেণীর মান; 2) সাম্যের জন্য ফাংশনগুলির তুলনা করা অর্থবোধ করে না, জেএস লোকেরা সর্বদা এটি করে।
ডেন

2

দুঃখিত তবে আমি "কাঁচা" তত্ত্ব সম্পর্কে জানি না। আমি কেবল একটি ব্যবহারিক পদ্ধতির সরবরাহ করতে পারি। আমি আশা করি এটি প্রোগ্রামারগুলিতে গ্রহণযোগ্য acceptable আমি এখানে শিষ্টাচারের সাথে পরিচিত নই।


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

এই একটি corrolary যে বর্গ যা সুনিশ্চিত করে যে অভ্যন্তরীণ উপস্থাপনা "বৈধ" অবশেষ জন্য দায়ী। আসুন এমন একটি শ্রেণি ধরে নেওয়া যাক যা দুটি সংখ্যায় একটি (সরল) ফোন নম্বর সঞ্চয় করে:

    int areacode;
    int number;

এগুলি ক্লাসের ডেটা সদস্য । তবে ক্লাসটি সম্ভবত তার ডেটা সদস্যদের চেয়ে অনেক বেশি হবে এবং এটি অবশ্যই "ইন্ট এক্স এর সমস্ত সম্ভাব্য মানগুলির সেট" হিসাবে নিশ্চিত নয়। আপনার ডেটা সদস্যদের সরাসরি অ্যাক্সেস থাকা উচিত নয়।

উদাহরণস্বরূপ নির্মাণ কোনও নেতিবাচক সংখ্যা অস্বীকার করতে পারে। সম্ভবত নির্মাণটি কোনও উপায়ে অ্যারাকোডকে স্বাভাবিক করবে, এমনকি পুরো সংখ্যাটি যাচাইও করবে। আপনি এইভাবে আপনার খুব কাছাকাছি পৌঁছে যাবেন "(a,b) where a is an int and b is a double", কারণ এটি অবশ্যই কোনও শ্রেণীর মধ্যে কোনও দুটি অন্তর্ভুক্ত নয় ।

তবে ক্লাসের যতটুকু বিষয় এটি সত্যই গুরুত্বপূর্ণ নয়। এটি ডেটা সদস্যদের ধরণ নয়, না ক্লাস সংজ্ঞায়িত করে তাদের সম্ভাব্য মানগুলির ব্যাপ্তি , এটি এর জন্য সংজ্ঞায়িত পদ্ধতিগুলি

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


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


1
It is neither the type of the data members, nor the range of their possible values that defines the class, it's the methods that are defined for it.আপনি যখন আড়াল করেন তখন ডেটা সদস্যরা কোনও শ্রেণি নির্ধারণ করে না। এটি সবচেয়ে সাধারণ ক্ষেত্রে হতে পারে, তবে এটি অবশ্যই বলা যায় না যে এটি সমস্ত শ্রেণির ক্ষেত্রে সত্য। এমনকি একটি ক্ষেত্রও যদি সর্বজনীন হয় তবে এটি তার পদ্ধতির মতোই গুরুত্বপূর্ণ।
ডোভাল

1
আপনি জাভাতে কোডিং না দিলে, যেখানে আপনার কোনও পছন্দ নেই এবং এমনকি আপনার বোবা নন-আচরণের ভুল-রেকর্ডগুলি অবশ্যই classএসএস হওয়া উচিত । (এগুলিকে চিহ্নিত করে finalপয়েন্টটি পেরিয়ে যেতে সহায়তা করে তবে এখনও)। protectedসদস্যদের সাথে আপনার এখনও সমস্যা রয়েছে , যা উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে এবং এইভাবে সাবক্লাসগুলির বাস্তবায়নকারীদের জন্য দ্বিতীয় এপিআইয়ের অংশ তৈরি করে।
ডোভাল

1
@ ডোভাল: আমি এটিকে একটি "তত্ত্ব" প্রশ্ন হিসাবে বুঝতে পেরেছিলাম, এ কারণেই আমি যতটা সম্ভব ভাষা সম্পর্কিত সমস্যা সম্পর্কে পরিষ্কার ছিলাম। (ঠিক যেমন আমি জাভা সম্পর্কে স্পষ্ট এবং protectedযতটা সম্ভব অনুশীলনে
থাকি

3
সমস্যাটি হ'ল classএকটি ভাষা-নির্ভর কাঠামো। যতদূর আমি জানি classটাইপ থিওরির মতো কোনও জিনিস নেই ।
ডোভাল

1
@Doval হায় মানে যে টাইপ তত্ত্ব না কোনটাই শ্রেণীর প্রযোজ্য নয়, তারা যে তত্ত্ব এর সুযোগ থেকে একটি কনস্ট্রাক্ট হয়?
দেবসোলার

2
  • একটি প্রকারের মান / বিভাগের মান, যৌগিক কাঠামোগুলি বা আপনার কাছে যা আছে তার একটি বিভাগ / এর বর্ণনা। ওওপওয়াই, এটি একটি "ইন্টারফেস" এর অনুরূপ। (ভাষা অ্যাগনোস্টিক অর্থে। ভাষা-নির্দিষ্ট ইন্দ্রিয়, না, তাই অনেক। জাভা, উদাহরণস্বরূপ, intএকটি হল টাইপ , কিন্তু একটি কোনও সম্পর্ক নেই interface। পাবলিক / সংরক্ষিত ক্ষেত্র বিশেষ উল্লেখ, পাশাপাশি, কোনো অংশ interface, তবে এটি একটি "ইন্টারফেস" বা টাইপের অংশ )

    মূল বিষয় হচ্ছে এটি একটি কংক্রিটের চেয়ে অনেক বেশি অর্থবোধক সংজ্ঞা। উদ্ভাসিত ক্ষেত্র / আচরণ এবং তাদের নির্ধারিত উদ্দেশ্যগুলি সারিবদ্ধ করার কারণে কেবল কাঠামোগত কাঠামোগতই নয় । আপনার যদি উভয় না থাকে তবে আপনার কাছে ধরণের সামঞ্জস্য নেই।

  • একটি শ্রেণি হ'ল একটি প্রকারের উপলব্ধি। এটি একটি টেম্পলেট যা প্রকৃতপক্ষে অভ্যন্তরীণ কাঠামো, সংযুক্ত আচরণ ইত্যাদি সংজ্ঞায়িত করে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.