কোটলিনে কোনও স্থির কীওয়ার্ড নেই কেন?


29

কোটলিন মূলত জাভার জন্য ড্রপ-ইন প্রতিস্থাপন হিসাবে পরিচিত, তবে এটি একটি সুপরিচিত জাভা কনস্ট্রাক্ট: staticকীওয়ার্ড থেকে মুক্তি পেয়েছে । পরিবর্তে, সেই শ্রেণি-স্তরের কার্যকারিতা মূলত সহচর অবজেক্ট দ্বারা সরবরাহ করা হয়।

স্থির পদ্ধতি এবং ক্ষেত্রগুলির মধ্যে কী ভুল যা সঙ্গী অবজেক্টগুলির আরও ভাল বিকল্প সরবরাহ করে? আমি যুক্তি সম্পর্কে বিভ্রান্ত, এবং নথিতে কোনও ব্যাখ্যা খুঁজে পাইনি।


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

স্থিতিশীল পদ্ধতিগুলি এবং কী সঙ্গী অবজেক্টগুলির তুলনায় কোনও উল্লেখযোগ্য সুবিধা নেই?
ট্যানার সুইট

এটি কারণ নয়, আরও একটি পর্যবেক্ষণ, তবে আমি দেখেছি যে staticজাভাতে (পরম) প্রাথমিক প্রোগ্রামাররা কীওয়ার্ডটি আবিষ্কার করার সাথে সাথে এটি তত্ক্ষণাত প্রোগ্রামের সমস্ত কোণে প্রচার করে কারণ তাদের এখনও অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং শেখানো হয়নি have ।
স্কোর_উন্ডারে

উত্তর:


30

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


2
এটা একটা ভাল দিক. এবং আমি সবসময়ই অদ্ভুতভাবে ভেবেছিলাম যে সেখানে সিঙ্গলটেন এবং স্ট্যাটিকস রয়েছে যা খুব একই রকম আচরণ করে তবে সহচর বস্তুগুলি ছাড়া কিছুই না, এটি ধারণাগত অদ্ভুততার সাথে দূরে থাকে।
ব্যবহারকারী 1446

1
এবং ঠিক এই কারণেই জাভাতে আমি স্থিতিশীল পদ্ধতিগুলি সংজ্ঞায়নের চেয়ে স্থিতিশীলভাবে নির্মিত স্টেটলেস অবজেক্টের পদ্ধতি নির্ধারণ করতে পছন্দ করি।
candied_orange

13

কোটলিন রেফারেন্স ডক্স থেকে উদ্ধৃত :

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

কোটলিন ডিজাইনাররা এটিকে জাভাটির স্থিতিশীল সদস্যদের চেয়ে একটি সুবিধা হিসাবে দেখেন বলে আমার কাছে খুব মনে হচ্ছে।

তদুপরি, জাভা আন্তঃক্রিয়াশীলতা এবং স্থিতিশীল সদস্যদের অংশটি ব্যাখ্যা করে যে কীভাবে সহযোগী অবজেক্টগুলি সদস্য তৈরি করতে ব্যবহার করা যেতে পারে যা স্থির সদস্যদের মতো কার্যকরভাবে আচরণ করে যখন এর সাথে মন্তব্য করা হয় @JvmStatic


6

কোটলিন একটি বস্তু-কেন্দ্রিক ভাষা ien কোনও অবজেক্ট-ওরিয়েন্টেড ভাষায়, কোনও জিনিস অবজেক্ট না হওয়া অত্যন্ত পঙ্গু হওয়া বাধা। শ্রেণিগুলি বস্তু নয়, তবে বস্তুগুলি বস্তু (দুহ!), সুতরাং বরং প্রশ্নটি হওয়া উচিত: কেন কোনও ভাষা সহচর বস্তু ব্যবহার করবে না ?

আর একটি দিক সরলতা: দুটি জিনিস কেন, উদাহরণস্বরূপ সদস্যদের সাথে বস্তু এবং স্থির সদস্যদের সাথে ক্লাস যখন আপনি কেবল উদাহরণ সদস্যদের সাথে বস্তু রাখতে পারেন?

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


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

1
আমার মনে হয় এটা অন্তত বিতর্কিত যে জাভা নেই (কিছুটা) যে প্যাটার্ন বাস্তবায়ন। উদাহরণস্বরূপ, আপনার যদি MyStaticClassকিছু staticসদস্যের সাথে থাকে তবে আপনি এই শ্রেণীর জন্য উদাহরণ MyStaticClass.classপেতে পারেন Class। তারপরে আপনি আপনার staticসদস্যদের অ্যাক্সেস করতে / অনুরোধ করতে প্রতিবিম্বটি ব্যবহার করতে পারেন । এটি এখনও সত্য যে staticসদস্যরা আসলে কোনও বস্তুর উদাহরণের সাথে সংযুক্ত নেই (অন্তত ধারণামূলকভাবে; জাভা আসলে কভারগুলির আওতায় আসলে কী করে তা নিশ্চিত নয়)। তবে এর অর্থ এই যে গ্রহণযোগ্য উত্তরে উত্থাপিত কমপক্ষে কিছু সীমা কঠোরভাবে প্রযোজ্য নয়।
আরথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.