জাভাতে কেন কোনও কনস্ট্যান্ট ফিচার নেই?


140

আমি জাভাতে ধ্রুবকগুলির পিছনে কারণগুলি সনাক্ত করার চেষ্টা করছিলাম আমি জেনেছি যে জাভা আমাদের finalকীওয়ার্ড ব্যবহার করে ধ্রুবকগুলি ঘোষণা করতে দেয় ।

আমার প্রশ্ন হ'ল জাভা কেন কনস্ট্যান্ট ( const) বৈশিষ্ট্যটি প্রবর্তন করে নি । যেহেতু অনেকেই বলে যে এটি সি ++ থেকে এসেছে তাই সি ++ তে আমাদের constকীওয়ার্ড রয়েছে।

আপনার চিন্তা শেয়ার করুন।


2
সেখানে হয় একটি constকীওয়ার্ডটি কিন্তু কোন অন্তর্নিহিত বৈশিষ্ট্য। সেই অনুসারে আপনার শিরোনাম এবং ট্যাগ সংশোধন করেছেন।
লার্নের মারকুইস

উত্তর:


142

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

উইকিপিডিয়া এই বিষয়ে নিম্নলিখিত তথ্য সরবরাহ করে:

মজার বিষয় হচ্ছে, জাভা ভাষার স্পেসিফিকেশন কনস্টার্ডকে একটি সংরক্ষিত কীওয়ার্ড হিসাবে উল্লেখ করে - যেমন, এমন একটি যা ভেরিয়েবল আইডেন্টিফায়ার হিসাবে ব্যবহার করা যায় না - তবে এতে কোনও শব্দার্থবিজ্ঞান বরাদ্দ করা হয় না। মনে করা হয় যে কীওয়ার্ডটির রিজার্ভেশন জাভা ভাষার সম্প্রসারণের জন্য সি ++ - স্টাইলের কনস্ট পদ্ধতি এবং পয়েন্টারটি কনস্ট টাইপের অন্তর্ভুক্ত করার জন্য ঘটেছে। জাভাতে কনস্টিটেস্ট নির্ভুলতা প্রয়োগের জন্য জাভা কমিউনিটি প্রসেসে বর্ধিতকরণের অনুরোধের টিকিটটি ২০০৫ সালে বন্ধ হয়ে গিয়েছিল, যা বোঝায় যে স্থির যথার্থতা সম্ভবত জাভা সরকারী জাভা নির্দিষ্টকরণের পথ খুঁজে পাবে না।


10
জাভা এর finalঅনুরূপ, যদিও।
পুনরায় পোস্টার

62
না এটা না। finalউদাহরণস্বরূপ পদ্ধতি সি ++ constপদ্ধতি থেকে সম্পূর্ণ আলাদা কাজ করে।
dom0

7
@reinierpost বৈশিষ্ট্য বা ভেরিয়েবলেরfinal কীওয়ার্ডটি কেবল নিশ্চিত করে যে কোনও সম্পত্তি বা ভেরিয়েবল কেবল একবারই বরাদ্দ করা হয়েছে । কেউ এখনও এই বস্তুর অবস্থার পরিবর্তন করতে পারে উদাহরণস্বরূপ, পার্শ্ব প্রতিক্রিয়া সহ কিছু পদ্ধতি কল করা। পয়েন্টারের পরিবর্তে কোনও অবজেক্টের রেফারিংয়ের ক্ষেত্রে সি ++ এর বরাদ্দকে কিছুটা সাদৃশ্যযুক্ত, তবে এগুলি সবই। এটি ডম0 ইতিমধ্যে যা বলেছে তা ছাড়াও অবশ্যই। final
টিম

9
finalজাভাতে constমান ধরণের জন্য সি ++ এর মতো কাজ করার মতো মনে হয় , তবে T&রেফারেন্স ধরণের জন্য সি -++ নন-কনস্টের মতো
মার্ক কে কোয়ান

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

82

প্রথমটির constঅর্থ কী
, বুঝুন যে "কনস্ট" শব্দটির মূল শব্দটি বিভিন্ন ব্যক্তির কাছে বিভিন্ন জিনিস বোঝায়:

  • কেবলমাত্র পঠনযোগ্য রেফারেন্স - জাভা finalশব্দার্থবিদ্যা - রেফারেন্স ভেরিয়েবল নিজেই অন্য কোনও উদাহরণে (স্মৃতি অবস্থান) উল্লেখ করার জন্য পুনরায় নিয়োগ করা যাবে না, তবে উদাহরণটি নিজেই পরিবর্তনযোগ্য
  • কেবল পঠনযোগ্য রেফারেন্স - সি constপয়েন্টার / রেফারেন্স শব্দার্থবিজ্ঞান - এর অর্থ এই রেফারেন্সটি উদাহরণটি সংশোধন করতে ব্যবহার করা যাবে না (উদাহরণস্বরূপ ভেরিয়েবলগুলিকে বরাদ্দ করতে পারে না, পরিবর্তনীয় পদ্ধতিগুলি আহ্বান করতে পারে না) - কেবলমাত্র রেফারেন্স ভেরিয়েবলকে প্রভাবিত করে, সুতরাং একটি অ-স্থির রেফারেন্স নির্দেশ করে একই উদাহরণটি উদাহরণটি পরিবর্তন করতে পারে
  • অপরিবর্তনীয় বস্তু - এর অর্থ উদাহরণটি নিজেই সংশোধন করা যায় না - উদাহরণটিতে প্রযোজ্য, সুতরাং কোনও অ-নিরপেক্ষ রেফারেন্স অনুমোদিত হবে না বা উদাহরণটি সংশোধন করতে ব্যবহার করা যাবে না
  • উপরের কিছু সংমিশ্রণ ?
  • অন্যদের ?

কেন বা কেনconst
দ্বিতীয় নয় , যদি আপনি সত্যিই কিছু "প্রো" বনাম "কন" যুক্তিগুলি খনন করতে চান তবে উন্নয়নের জন্য এই অনুরোধটির অধীনে আলোচনাটি দেখুন (আরএফই) "বাগ"। এই আরএফই একটি "পঠনযোগ্য-কেবলমাত্র রেফারেন্স" -প্রকার "কনস্ট" বৈশিষ্ট্যটির জন্য অনুরোধ করে। 1999 সালে খোলা এবং পরে 2005 সালে সনের দ্বারা বন্ধ / প্রত্যাখ্যানিত, "কনস্ট" বিষয়টি জোরালোভাবে বিতর্কিত হয়েছিল:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4211070

যদিও উভয় পক্ষেই প্রচুর ভাল যুক্তি রয়েছে, তবে কয়েকটি উল্লিখিত (তবে প্রয়োজনীয়ভাবে বাধ্য করা বা পরিষ্কারভাবে কাটানোর প্রয়োজন নেই) এর constমধ্যে অন্তর্ভুক্ত রয়েছে:

  • বিভ্রান্তিকর শব্দার্থবিজ্ঞান থাকতে পারে যা অপব্যবহার এবং / বা আপত্তিজনক হতে পারে ( উপরে কী constবোঝায় তা দেখুন )
  • সদৃশ দক্ষতা অন্যথায় উপলব্ধ করতে পারে (যেমন একটি অপরিবর্তনীয় ইন্টারফেস ব্যবহার করে একটি অপরিবর্তনীয় বর্গ ডিজাইন)
  • বৈশিষ্ট্য ক্রাইপ হতে পারে, যা অন্যান্য শব্দার্থক পরিবর্তনের প্রয়োজন যেমন মান দিয়ে অবজেক্টগুলিকে পাশ করার জন্য সমর্থন হিসাবে বাড়ে

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


2
আপনার উত্তরের দ্বিতীয় অংশের জন্যই +1 করুন। অনেকগুলি কীওয়ার্ডের অ-তুচ্ছ শব্দার্থক শব্দ রয়েছে। volatileবুঝতে কি এত সহজ? নাকি final? সাধরণ।
einpoklum

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

7

const সি ++ এর অর্থ এই নয় যে কোনও মান একটি ধ্রুবক।

const সি ++ এ বোঝায় যে কোনও চুক্তির ক্লায়েন্ট তার মান পরিবর্তন না করে।

constআপনি যদি এমন পরিবেশে থাকেন যা থ্রেড ভিত্তিক সম্মতি সমর্থন করে তবে কোনও অভিব্যক্তির মান পরিবর্তিত হবে কিনা তা আরও স্পষ্ট হয়ে ওঠে।

যেহেতু জাভা শুরু থেকে থ্রেড এবং লক সমঝোতা সমর্থন করার জন্য ডিজাইন করা হয়েছিল, তাই এটি শব্দার্থবিজ্ঞানের শব্দটি ওভারলোড করে বিভ্রান্তি বাড়ায় নি final

উদাহরণ:

#include <iostream>

int main ()
{
    volatile const int x = 42;

    std::cout << x << std::endl;

    *const_cast<int*>(&x) = 7;

    std::cout << x << std::endl;

    return 0;
}

আউটপুট 42 তারপর 7।

যদিও একটি নন-কনস্ট্যান্ট ওরফে তৈরি করা হয়েছে হিসাবে xচিহ্নিত হিসাবে এটি একটি ধ্রুবক নয়। প্রতিটি সংকলককে এই আচরণের জন্য প্রয়োজন হয় না (যদিও প্রতিটি সংকলককে ধ্রুবককে ইনলাইন করার অনুমতি দেওয়া হয়)constxvolatile

আরও জটিল সিস্টেমে আপনি ব্যবহার ছাড়াই কনস্ট / নন-কনস্ট্যান্ট এলিয়াস const_castপেয়ে যান, সুতরাং কনস্টের মানে এমন যে কোনও কিছু পরিবর্তন হয় না এমনটি অভ্যাসে প্রবেশ করা আরও বিপজ্জনক হয়ে ওঠে। constনিছক অর্থ হ'ল আপনার কোডটি castালাই ছাড়াই এটি পরিবর্তন করতে পারে না, মান স্থির নয়।


3
কনট ইনট এক্স = 42; - এক্স একটি ধ্রুবক

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

1
কনস্ট-যথার্থতা প্রোগ্রামারকে কী করা উচিত তা নয়, তারা কী করতে পারে তা নয় । আমার মনে হয় আপনারা সবাই এই পয়েন্টটি পেয়ে গেছেন। কার্যকারক পাঠকের পক্ষে আগ্রহী হতে পারে এমন কয়েকটি সেন্ট যুক্ত করতে চেয়েছিলেন: জাভাতে কনস্টিমেট নকল করার মতো নকশা নকশাগুলি immutable interfaceএবং immutable objectএটি অন্য উপায় (castালাই এবং প্রতিবিম্ব সহ প্রহারযোগ্য) is "ট্রু" কনস্টেন্টটি সিলডবজেক্ট দিয়ে করা যেতে পারে , হায় আফসোস এটি আমাদের অবজেক্টের ব্যবহারের ক্ষেত্রে ধ্বংস করে দেয়।
মার্টিন অ্যান্ডারসন

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

1
জন্মগত থেকে ধ্রুবক মানটি সংশোধন করা অনির্ধারিত আচরণ। আপনার ডিস্কটি ইতিমধ্যে ফর্ম্যাট করা যেতে পারে।
ঝে ইয়াং

5

এটি কিছুটা পুরানো প্রশ্ন, তবে আমি ভেবেছিলাম যে আজ এই কথোপকথনে এই থ্রেডটি আসার পরে আমি আমার 2 সেন্ট অবদান রাখব।

এটি ঠিক উত্তর দেয় না কেন সেখানে কোনও কনস্টেন্ট নেই? তবে কীভাবে আপনার ক্লাসগুলি অপরিবর্তনীয় করে তোলা যায়। (দুর্ভাগ্যক্রমে আমি এখনও গ্রহণযোগ্য উত্তরের মন্তব্য হিসাবে পোস্ট করতে যথেষ্ট খ্যাতি পাইনি)

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

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

আইটেম 15 ব্লচ পরামর্শ দেয় যে আপনি ক্লাসের পরিবর্তনকে সীমাবদ্ধ করা উচিত যাতে অবজেক্টের অবস্থা নিশ্চিত হয়।

বইটি সরাসরি উদ্ধৃত করতে:

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

ব্লচ তারপরে 5 টি সাধারণ নিয়ম অনুসরণ করে কীভাবে আপনার ক্লাসগুলিকে অপরিবর্তনীয় করে তুলবেন তা বর্ণনা করে:

  1. এমন কোনও পদ্ধতি সরবরাহ করবেন না যা অবজেক্টের অবস্থা সংশোধন করবে (যেমন, সেটার, ওরফে মিউটর )
  2. নিশ্চিত করুন যে শ্রেণিটি বাড়ানো যাবে না (এর অর্থ শ্রেণিটি নিজেই ঘোষণা করা final)।
  3. সমস্ত ক্ষেত্র তৈরি করুন final
  4. সমস্ত ক্ষেত্র তৈরি করুন private
  5. কোনও পরিবর্তনীয় উপাদানগুলিতে একচেটিয়া অ্যাক্সেস নিশ্চিত করুন। (বস্তুর প্রতিরক্ষামূলক অনুলিপি তৈরি করে)

আরও তথ্যের জন্য আমি বইটির একটি অনুলিপি বাছাই করার জন্য সুপারিশ করছি।


3
সি ++ এ কনস্টিটেড সম্পূর্ণ-স্কেল অপরিবর্তনীয়তার চেয়ে অনেক বেশি নমনীয়। এক অর্থে, 'কনস্ট'কে' এই নির্দিষ্ট প্রসঙ্গে 'অপরিবর্তনীয়' হিসাবে দেখা যেতে পারে। উদাহরণ: আমার একটি ক্লাস রয়েছে যা অপরিবর্তনীয় নয়, তবে আমি নিশ্চিত করতে চাই যে এটি কোনও নির্দিষ্ট পাবলিক এপিআইয়ের মাধ্যমে সংশোধিত হয়নি। গানসলিংগার 47 এর পরামর্শ অনুসারে একটি ইন্টারফেস তৈরি করা (এবং এটি সর্বজনীন এপিআই এর জন্য ফিরিয়ে দেওয়া) জাভাতে একই জিনিস অর্জন করে, তবে ছেলে - এটি কুরুচিপূর্ণ (এবং তাই - এটি জাভা বিকাশকারীদের বেশিরভাগ দ্বারা উপেক্ষা করা হয়, যার ফলে উল্লেখযোগ্য অপ্রয়োজনীয় গোলযোগ সৃষ্টি হয়) .. ।
No-Bugs Hare

3

এর সি ++ শব্দার্থবিদ্যা constজাভা থেকে খুব ভিন্ন final। ডিজাইনাররা যদি এটি ব্যবহার constকরে থাকেন তবে এটি অযথা বিভ্রান্তিকর হবে।

constসংরক্ষিত শব্দটি হ'ল এই প্রস্তাবটি দেয় যে ডিজাইনারদের প্রয়োগের জন্য ধারণা ছিল const, তবে তারা এর বিরুদ্ধে সিদ্ধান্ত নিয়েছে; দেখতে এই বদ্ধ বাগ । বর্ণিত কারণগুলির মধ্যে অন্তর্ভুক্ত রয়েছে যে সি ++ স্টাইলের জন্য সমর্থন যুক্ত করা constসামঞ্জস্যতার সমস্যার কারণ হতে পারে।


-1

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


আপনি কি এর কিছু উদাহরণ দিতে পারেন, দয়া করে?
NO_NAME

ক্লাস এমওয়াইস্ট্রিং গেটস্ট্রিং {প্রাইভেট ফাইনাল স্ট্রিং আআআআআ প্রয়োগ করে; পাবলিক স্ট্রিং getString (); } ক্লাস মিউটেবল স্ট্রিং গেটস্ট্রিং {প্রাইভেট স্ট্রিং এএএএ 2 প্রয়োগ করে; পাবলিক স্ট্রিং getString (); পাবলিক স্ট্রিং সেটস্ট্রিং ()}
user1122069

-2

ধ্রুবককে সংজ্ঞায়িত করার জন্য দুটি উপায় থাকবে - constএবং static finalঠিক একই শব্দার্থবিজ্ঞানের সাথে। এর static finalচেয়ে আরও ভাল আচরণের বর্ণনা দেয়const


@ বোজো, আপনি কনস্টের চেয়ে ভাল আচরণ বলেছিলেন, এটি কীভাবে? আপনি যে কোনও উদাহরণ ভাগ করতে পারেন
gmhk

ভাল, পরিবর্তনশীল static(বিশেষ উদাহরণের সাথে সম্পর্কিত নয়) এবং final- পরিবর্তন করা যায় না।
বোঝো

-2

কনস্টের মতো কাজ করে এমন কিছু তৈরি করতে আপনি স্ট্যাটিক ফাইনাল ব্যবহার করতে পারেন, আমি অতীতেও এটি ব্যবহার করেছি।

protected static final int cOTHER = 0;
protected static final int cRPM = 1;
protected static final int cSPEED = 2;
protected static final int cTPS = 3;
protected int DataItemEnum = 0;

public static final int INVALID_PIN = -1;
public static final int LED_PIN = 0;

গুজব-ভিত্তিক অপ্টিমাইজেশনের জন্য বঞ্চিত কারণ আমি একটি গুজব শুনেছি যে এটি একটি অকার্যকর কৌশল।
আফারলে

আমি গুঞ্জনটি উত্তর থেকে সরিয়েছি। কনস্ট স্টাইল কোড তৈরি করতে আপনি এখনও স্ট্যাটিক ফাইনাল ইনট ব্যবহার করতে পারেন।
হামিশ

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

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