জাভা সংশোধক (বিমূর্ত, চূড়ান্ত, পাবলিক, স্ট্যাটিক ইত্যাদি) এর যুক্তিসঙ্গত আদেশ কী?


114

জাভা সংশোধকগুলির একটি যুক্তিসঙ্গত আদেশ কী?

  • বিমূর্ত
  • চূড়ান্ত
  • স্থানীয়
  • ব্যক্তিগত
  • রক্ষিত
  • প্রকাশ্য
  • স্থির
  • strictfp
  • সিঙ্ক্রোনাইজ
  • অস্থায়ী
  • উদ্বায়ী

হালনাগাদ

আদেশটি সুপারিশ করা হয়েছে কিনা তা আলোচনা স্থির করার জন্য আমি শব্দটির প্রস্তাবিত থেকে যুক্তিযুক্ত পরিবর্তন করেছি have


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

9
আমি ভাবছি কেন এটি "গঠনমূলক নয়" প্রশ্ন হওয়া উচিত (নিকট অনুরোধগুলি)। আপনি স্পেসিফিকেশনটিতে সুপারিশটি পেতে পারেন (আমার উত্তর দেখুন) এবং এই সুপারিশটি অনুসরণ করে কোডের পঠনযোগ্যতা উন্নত করবে। স্ট্যাটিক কোড বিশ্লেষক (যেমন সোনার) আপনি যদি অন্য কোনও অর্ডার ব্যবহার করেন তবে অভিযোগ করবে।
ফ্রিভাবে

আমি ওরাকল / সান জাভা কোড কনভেনশনগুলিতে আরেকবার নজর রেখেছি । এমনকি আপনার যেখানে দেখা উচিত সেই এক জায়গায় এবং যেখানে আপনি এটি প্রত্যাশা করবেন এমন এক জায়গায় বিষয়টি উল্লেখ করা হয়নি।
লার্নের মারকুইস

@ ইজেবি কোড কনভেনশনগুলি ১৯৯৯ সালের এবং তীব্রভাবে আপডেট করা দরকার need আমি আশা করি তারা এই বিষয়টিকে অন্তর্ভুক্ত করেছে যদি তারা কখনও এই সম্মেলনগুলিকে আবার স্পর্শ করে তবে এটি সত্যই ভাল জায়গা!
ফ্রভবা

1
Eclipse স্বয়ংক্রিয়ভাবে পরিবর্তক বাছাই করতে পারেন? বা নিরপেক্ষ থাকলে কমপক্ষে কোনও সতর্কতা দিন?
রোল্যান্ড

উত্তর:


126

গতানুগতিক সংশোধনকারীদের ব্যবহার অনুক্রমে উল্লেখ করা হয় জাভা ল্যাঙ্গুয়েজ স্পেসিফিকেশন (এবং জাভা ভার্চুয়াল মেশিন নির্দিষ্টকরণ) জন্য যেমন বর্গ সংশোধনকারীদের আপনি নিম্নলিখিত ডেফিনেশনে (নির্যাস) পাবেন:

ClassModifiers:
    ClassModifier
    ClassModifiers ClassModifier

ClassModifier: one of
    Annotation public protected private
    abstract static final strictfp

[....]

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

আপনি এই বাক্যটি অন্যান্য বেশ কয়েকটি স্থানে পাবেন যেখানে সংশোধনকারীদের ব্যবহার নির্দিষ্ট করা হয়েছে, যেমন এখানে ফিল্ড সংশোধকগুলির জন্য।

আপডেট : আমি এটিকে গ্রহণযোগ্য উত্তর দেওয়ার জন্য "প্রথাগত" দিয়ে "নির্দিষ্ট / প্রস্তাবিত" প্রতিস্থাপন করেছি। যদি আপনি মন্তব্য পড়তে একাউন্টে এই নিতে ;-) (ধন্যবাদ এই স্পষ্ট করতে @EJP) - তা সত্ত্বেও আমি চাই সুপারিশ ব্যবহার করতে গতানুগতিক অর্ডার।

গুগল জাভা স্পেসে উল্লিখিত প্রথাগত আদেশটি ব্যবহার করারও পরামর্শ দেয়।

public / protected / private 
abstract 
static 
final 
transient 
volatile 
synchronized 
native 
strictfp

আপডেট :ওপেনজেডিকে সম্প্রদায়ের প্রকল্পগুলির জন্যএকটি নতুন " জাভা স্টাইল গাইডলাইনস " উদ্যোগ রয়েছে। এটিতে একটি সংশোধক আদেশের জন্য একটি সুপারিশওরয়েছে এবং এতেজাভা 8 এরনতুন ডিফল্ট সংশোধকও রয়েছে।

public / private / protected
abstract
static
final
transient
volatile
**default**
synchronized
native
strictfp

1
প্রশ্নটি ছিল "জাভা সংশোধকগুলির প্রস্তাবিত আদেশটি কী?" এবং এই প্রশ্নের উত্তর ভাষা নির্দিষ্টকরণে দেওয়া হয় (এবং যাতে আদেশের প্রয়োজন হয় না তাই আমি বলব যে এটি স্পেসিফিকেশনে প্রস্তাবিত)। জেভিএম স্পেসিফিকেশন ক্লাস ফাইল ফর্ম্যাট সম্পর্কে এবং জাভা উত্স কোড নয়। - সত্যই অর্ডারটি গুরুত্বপূর্ণ নয় তবে আপনি যদি একটি সুপারিশ অনুসরণ করেন তবে আপনার কোড অন্যের কাছে আরও পঠনযোগ্য হবে। সুতরাং আমি মনে করি এটি একটি যুক্তিসঙ্গত প্রশ্ন যেখানে একটি সুনির্দিষ্ট উত্তর দেওয়া যেতে পারে। উপায় দ্বারা - স্ট্যাটিক কোড বিশ্লেষক (উদাঃ SONAR) ভুল অর্ডার সম্পর্কে অভিযোগ করবে।
ফ্রভবা

3
বাক্যটি যদি দুটি বা ততোধিক (স্বতন্ত্র) শ্রেণি সংশোধনকারী শ্রেণীর ঘোষণায় উপস্থিত হয়, তবে এটি প্রথাগত, যদিও প্রয়োজন হয় না, তারা ক্লাসমোডিফায়ারের জন্য উত্পাদনের উপরে উল্লিখিত ক্রমের সাথে সামঞ্জস্য হয়। স্পেসিফিকেশন অংশ!
ফ্রিভাবে

1
এক্ষেত্রে আমি চিৎকার করতে চেয়েছিলাম তবে আমি ইতিমধ্যে শান্ত হয়েছি - সে সম্পর্কে দুঃখিত; ;) - আমিও স্থানীয় নই - সুতরাং আপনি সম্ভবত ভাষার ব্যাখ্যায় সঠিক আছেন। আমি আমার উত্তর দিয়ে যা বলতে চেয়েছিলাম তা হ'ল একটি খুব সরকারী জায়গা রয়েছে যেখানে জাভা সোর্স কোডে সংশোধনকারীগুলির ক্রম পরিচালিত হয় - এবং আমি যখন আমার কাছে একই প্রশ্নটি জিজ্ঞাসা করি তখন এটি খুঁজে পাওয়ার জন্য আমি ভাগ্যবান। আইএমএইচও জাভা ল্যাঙ্গুয়েজ স্পেসিফিকেশনের চেয়ে উত্তর খুঁজে পাওয়ার জন্য এর চেয়ে ভাল জায়গা আর নেই।
ফ্রভবা


1
@EJP আপনার এই বিষয়ে দৃ strong় মতামত রয়েছে (recommended কোনও প্রস্তাবিত আদেশ নেই)। আপনি কি উত্তর হিসাবে এটি প্রদান করতে সদয় হতে হবে? আমি ভোটদান সম্পর্কে আগ্রহী।
ফ্রভবা

28

জাভা ভার্চুয়াল মেশিনের স্পেসিফিকেশন, সারণী ৪.৪ অনুসারে অর্ডারটি ব্যবহার করা যুক্তিসঙ্গত

  • প্রকাশ্য
  • রক্ষিত
  • ব্যক্তিগত
  • বিমূর্ত
  • ডিফল্ট
  • স্থির
  • চূড়ান্ত
  • অস্থায়ী
  • উদ্বায়ী
  • সিঙ্ক্রোনাইজ
  • স্থানীয়
  • strictfp

8
+1 টি আপনি প্রায়ই দেখুন: "পাবলিক বিমূর্ত", "ব্যক্তিগত স্ট্যাটিক চূড়ান্ত" ইত্যাদি কিছু IDEs (যেমন NetBeans) এমনকি কিছু শর্টকাট, যেমন "psf" বা "Psf" have
তাম্রাভ

1
আপনি জাভা ল্যাঙ্গুয়েজ স্পেসিফিকেশন (এবং জাভা ভার্চুয়াল মেশিন স্পেসিফিকেশন নয়!) এ প্রস্তাবিত আদেশটি পেতে পারেন । আমার উত্তর দেখুন।
ফ্রভবা

1
@ ফ্রভবা আপনি এই জাতীয় কোনও জিনিস খুঁজে পেতে পারেন না find ভাষার ব্যাকরণগুলিকে স্টাইলের সুপারিশ দিয়ে বিভ্রান্ত করবেন না।
লার্নের মারকুইস

@ পুস: কিছু আইডিই (যেমন ইন্টেলিজ আইডিইএ) এমনকি সংশোধনকারীকে সঠিকভাবে বাছাই করতে পারে।
মোট

5

তাদের int মানগুলির উপর ভিত্তি করে।

সংশোধক (জাভা প্ল্যাটফর্ম এসই 8)

  • 1: পাবলিক
  • 2: ব্যক্তিগত
  • 4: সুরক্ষিত
  • 8: অচল
  • 16: ফাইনাল
  • 32: সিঙ্ক্রোনাইজড
  • 64: উদ্বায়ী
  • 128: ক্ষণস্থায়ী
  • 256: নেটিভ
  • 512: ইন্টারফেস
  • 1024: বিমূর্ত
  • 2048: কড়া

1
এই উত্তরে মূল শব্দটি "ডিফল্ট" অন্তর্ভুক্ত নয়
সেরো

1
এটির সাথে তাদের অন্তর্নিহিত মানগুলি কী করবে?
লার্নের মারকুইস

0

আমি পরিবর্তনকারী ক্রমটি মনে রাখার জন্য দুটি নিয়ম ব্যবহার করি, তবে স্ট্রাইকফপি অন্তর্ভুক্ত করে না, কারণ এটি কখনও আমার দ্বারা ব্যবহৃত হয় না। অবগতির জন্য।

  1. সিঙ্ক্রোনাইজড নেটিভ হ'ল কম অগ্রাধিকারের লোক।

  2. পিপিপি AS এফটিভি: পিপিপি {শব্দ শব্দ sound এএস {দেখছে} এফটিভি {ফ্রান্স টিভি}

:)

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