জাভা প্রোগ্রামাররা কেন একটি ভেরিয়েবলের নাম দিতে চান "ক্লজ"? [বন্ধ]


156

আমি দেখেছি প্রচুর কোডের ঘোষণাপত্র রয়েছে Class clazz, এটি কোথা থেকে এসেছে? এটি কি কোনও ধরণের সম্মেলন? আমি মনে করি 'ক্লজ' এমনকি একটি ইংরেজি শব্দও নয়, এর কোনও অর্থ নেই, এত প্রোগ্রামাররা কীভাবে কাকতালীয়ভাবে একটি ভুল নাম রাখতে পারেন?



24
@ পিটার: ভালো কথা, এটি ক্লাসিক।
রাষ্ট্রপতি জেমস কে পোলক 21

13
আলেকসি শিপিলিভ বিকল্প হিসাবে сlassসিরিলিকের বানানটি ব্যবহারের প্রস্তাব করেছেন с
স্টুয়ার্ট 4

12
@ স্টুয়ার্টমার্কস আমি সেই প্রস্তাব প্রত্যাখ্যান করছি। আপনাকে স্বাগতম.
গোরান ভাসিক

16
ইংল্যান্ডে আমরা সাধারণত 'ক্লার্স' ব্যবহার করি।
জন গাওয়ার্স

উত্তর:


173

clazzজেডিকে ১.০ এর পর থেকে সংরক্ষিত শব্দ "শ্রেণি" এর জায়গায় জাভা ব্যবহার করা হয়েছে used "শ্রেণি" হ'ল যা আপনি চান তবে সংক্ষিপ্ত বিবরণ বা জাঙ্ক প্রবেশ করানো ("ক", "দি", "_" ইত্যাদি) স্বচ্ছতা হ্রাস করে। clazzশুধু ক্লাস বলে। "আন্তর্জাতিক" ইংলিশ স্পিকার (যারা ব্রিটিশ এবং আমেরিকান উভয় ইংরেজিই পড়েন) 's' এবং 'z' ট্রান্সপোসিংয়ের জন্য ব্যবহৃত হয়।

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


82
"ক্লজ" "" ক্লাস "বা" মাইক্লাস "এর চেয়ে বেশি পরিষ্কার তা স্বীকার করা শক্ত। যদি আমি কোডে "_ক্লাস" দেখতাম তবে অভিপ্রায়টি Google- এ (এবং এই পৃষ্ঠায়) আমাকে প্রেরণকারী একটি অ-শব্দের চেয়ে আরও সুস্পষ্ট হত।
uscjeremy

@ অসেজেমি: ব্যক্তিগতভাবে, আমি শনাক্তকারীদের আন্ডারস্কোর ব্যবহার পছন্দ করি যা কেবলমাত্র ক্ষেত্রে পৃথক। আমি যদি কোনও ভাষা ডিজাইন করতাম তবে আমার কাছে এটি কেস-সংবেদনশীল এবং নন-কেস-সংবেদনশীল নিয়মের সংকর হতে পারে: যে কোনও সনাক্তকারী কেবলমাত্র মূল কেসিংয়ে ব্যবহার করতে পারত , তবে কোনও সনাক্তকারীকে ঘোষণা কোনও পূর্ব-বিদ্যমান সনাক্তকারীকে লুকিয়ে রাখত শুধুমাত্র কেসিং মধ্যে পৃথক। রয়ে Fooবর্গ সুযোগ এবং সংজ্ঞায়িত fooস্থানীয় পরিবর্তনশীল সুযোগ এ আইনগত হওয়া উচিত, কিন্তু স্থানীয় সুযোগ মধ্যে শ্রেণী-স্কোপ পরিবর্তনশীল সব রেফারেন্স প্রয়োজন, this.Foo। এই ধরনের একটি নিয়ম would ...
supercat

@ আসক্রেমি: ... আমার মতে কেস-সংবেদনশীল এবং অ-ক্ষেত্রে সংবেদনশীল ভাষার সুবিধা একত্রিত করা হয়েছে। কেস-সংবেদনশীল ভাষাগুলির সুবিধা রয়েছে যে "foo" শনাক্তকারী নামটির ফোনেটিক রিডিংগুলি "বড় হাতের ফু" বা "ছোট হাতের ফু" না বলেই দ্ব্যর্থহীন হবে তবে someThingকিছু জায়গায় শনাক্তকারীকে বানানের অনুমতি দেওয়ার কোনও সত্য কারণ নেই এবং sOmEtHiNgঅন্যদের মধ্যে
সুপারহ্যাট

1
@ সুপের্যাট ইউনিকোড জেনারেল ক্যাটাগরির বিরামচিহ্ন হ'ল আমি কী জন্য মাছ ধরছিলাম। unicode.org/faq/punctuation_symbols.html / আমি সি # ডিজাইন করব না। জাভাতে, আপনি কোনও পদ্ধতি , মূলধন বা আজেবাজে কথা ছাড়াই ডাকা একটি পদ্ধতি fnordএবং একটি ক্ষেত্র বলে পালিয়ে যান fnord। আমি মনে করি এটি একটি পাল্টা উদাহরণ হিসাবে যথেষ্ট হবে।
টম হাটিন - 21

3
@ অস্জেরেমি এটি একমত যে "_ ক্লাস" বা "মাই ক্লাস" - সত্য থেকে "ক্লজ" আরও স্পষ্ট agree তবে, "_ক্লাস" ব্যবহার করা কোনও বিকল্প হবে না, কারণ এটি জাভা নামকরণের কনভেনশনগুলির সাথে স্পষ্টভাবে বিরোধী ।
এমসি সম্রাট

73

কারণ তারা যে শব্দটি ব্যবহার করতে চান তা ব্যবহার করতে পারবেন না class। এটি সংরক্ষিত


2
হ্যাঁ, আমি জানি, তবে আমি মনে করি একটি পরিবর্তনশীল ডান বানান আরও অর্থবোধক হবে।
সোয়েয়ার

22
@ টনি - আপনি কীভাবে "জানেন" এবং একই মন্তব্যে ভেরিয়েবলের নাম বানান করার দাবি করতে পারেন? তারা পারস্পরিক একচেটিয়া।
ডাফাইমো

3
@ টনি, আপনি কেবল একটি পরিবর্তনশীল "শ্রেণি" এর নাম রাখতে পারবেন না, এটি একটি সংরক্ষিত শব্দ।
স্টিভ কুও

6
@ ডিফাইমো: এটি মজাদার know এটাকে কি 'ক্লাস' বলতে হবে?
সোয়ায়ার

13
আমি অনুমান করছি যে টনি কেবলমাত্র "শ্রেণি" এর চেয়ে আরও বেশি বর্ণনামূলক কিছু নামকরণ করতে চায়। উদাহরণস্বরূপ, "x" টি সঠিকভাবে বানান হিসাবে বলা যেতে পারে, তবে এটি "নাম্বার অফ কমেন্টস" এর মতো বেশি নয়
পিটার রিকোর

17

এটি কেবল কারণ 'শ্রেণি' একটি সংরক্ষিত কীওয়ার্ড, তাই Class classঅনুমোদিত নয়। অতএব আপনি দেখতে পাবেন Class clazzবা Class cls


7
ক্লাসের নামকরণের কারণ আমি ভাবতে পারি না Classযেহেতু যে কোনও প্রকল্পে অনেক ক্লাস রয়েছে যে ক্লাসটিকে ডেকে আনা অর্থহীন বলে মনে হয়। আমি class
কোনও ভারিএবল

8
আপনি কোনও শ্রেণীর ক্লাসের নাম রাখেন নি, এটি জাভা এপিআই।
সাওয়ের

3
@ ব্লিনডি: জাভা.লাং.ক্লাস সম্পর্কে কী? আপনার খুব পছন্দ নেই সেখানে।
ড্যান ডায়ার

14
@ ব্লিনডি: ক্লাস নামে একটি ক্লাস ইতিমধ্যে রয়েছে, যা কোনও অবজেক্টের ক্লাসকে বোঝায়। 'শ্রেণি' নামে পরিচিত একটি ভেরিয়েবল হওয়ার সঠিক কারণটি হ'ল আপনি যখন কোনও বস্তুর শ্রেণীর সাথে কাজ করছেন (যেমন: কোন বস্তুটি কী তা নির্ধারণ করা)
রেভারেন্ড গঞ্জো

3
আমি তথ্যপূর্ণ বিবেচনা করবে ClassInformationবা, ClassMetadataবা অনুরূপ কিছু। প্রতিটি শ্রেণি একটি শ্রেণি, তবে আপনি তাদের সকলের নাম রাখেন না Class, আপনি তাদের প্রধান ফাংশন অনুসারে তাদের নাম দিন।
অন্ধ

7

এটি প্রকৃত সংকলক এবং তার প্রসঙ্গে টোকেনের অর্থ কী তা বোঝার ক্ষমতাতে নেমে আসে। যাইহোক, এই বিশেষ ক্ষেত্রে, টোকেনটি অন্য একটি প্রসঙ্গে কী বোঝায় তা পার্থক্য করতে সংকলকটির অক্ষমতাclass । এটি একটি কঠোর এবং দ্রুত নিয়ম class, এর প্রসঙ্গ নির্বিশেষে, কোনও শ্রেণির ঘোষণাকে বোঝাতে ব্যবহৃত হয় এবং এটি একটি সংরক্ষিত শব্দ। এটি যতটা সহজ এবং নিম্ন স্তরের এটি পায় ততটাই।

আপনি যদি বাধ্য মনে করেন তবে আপনি নিজের জাভা সংকলককে একটি প্রাসঙ্গিক বিধি অন্তর্ভুক্ত করতে লিখতে পারেন যা আপনাকে classপরিবর্তনশীল নাম হিসাবে ব্যবহার করতে দেয় । যদিও আমি মনে করি এটি কেবলমাত্র আপনার সময় ব্যবহারের চেয়ে আরও ভাল ব্যবহার হবে clazzবা klass- এটি সম্ভবত আপনার স্বাস্থ্যের পক্ষেও ভাল।


3
অক্ষমতা সম্পর্কে একটি শব্দ : জাভা একটি সংরক্ষিত শব্দের ভাষা হিসাবে নকশা করা হয়েছিল । অ রিজার্ভ করা শব্দ ভাষায় সফলভাবে কম্পাইল করতে পারেন এবং যেমন সিনট্যাক্স-হাইলাইট বিবৃতি যদি তারপর তারপর অন্য আর থাকা সত্ত্বেও (UN) পাঠযোগ্যতা। সুতরাং
সংকলকটি

4

এ কোথা থেকে এসেছে?

আমি জোশ ব্লচের পাজলারে এটি প্রথম দেখেছি। তবে আমি নিশ্চিত যে এটি অন্যান্য বিকাশকারীদের দ্বারা অনেক আগে ব্যবহৃত হয়েছিল। জোশ ব্লচ সবেমাত্র এটি আরও বিখ্যাত করে তুলেছে।


4

জাভাতে এমন কোনও বৈশিষ্ট্য নেই যা আপনাকে পূর্বশব্দের সাথে সি # এর বিপরীতে কোনও কীওয়ার্ডকে সনাক্তকারী হিসাবে ব্যবহার করতে দেয় @(যেমন @classএকটি বৈধ শনাক্তকারী)


2
এটি একটি পৃথক শনাক্তকারী। classএবং $classউভয়ই JVM- এ বৈধ (তবে ভিন্ন) শনাক্তকারী। "class"ভিএম- তে অনুবাদ করে এমন কোনও জাভা উত্স ফাইলে আপনি লিখতে পারেন এমন কোনও শনাক্তকারী নেই ।
ফিনউইউ

2

লোকদের বোঝাতে যে এটি একটি শ্রেণি। এবং এটি কোডের পঠনযোগ্যতা প্রায় বাড়ানোর জন্য

এর সাথে বড় কোন যুক্তি যুক্ত নয়


2

ঘোষণা Class clazzজাভা বিশ্বে জনপ্রিয়, তবে এটি আগন্তুক এবং বানান চেককারীদের কাছে বিশ্রী হতে পারে। আমি কিছু লোককে বলতে শুনেছি যে এটি কমপক্ষে বিস্ময়ের নীতি অনুসারে এড়ানো উচিত ।

যেহেতু এটি বলা সম্ভব যে কোনও Classবস্তু একটি প্রকারের প্রতিনিধিত্ব করে , আমি ব্যক্তিগতভাবে যেমন ভেরিয়েবলগুলি ঘোষণা করতে পছন্দ করি Class type


0

আমরা ক্লাজ ব্যবহার করি কারণ শ্রেণিটি টাইপ শিরোনাম। উদাহরণস্বরূপ, আপনি এখানে ক্লাস ব্যবহার করেন:

public class HelloWorld {

এবং এখানে:

Object.class.getName();

দুর্ভাগ্যক্রমে, আমাদের ক্লাজের মতো বিকল্প নাম ব্যবহার করতে হবে।


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