অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ে সরকারী, ব্যক্তিগত এবং সুরক্ষিত কী কী?


94

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ে সরকারী, ব্যক্তিগত এবং সুরক্ষিত কী কী?


+1, আমি এই জিনিসগুলির মধ্যে

উত্তর:


153

তারা অ্যাক্সেস মডিফায়ার এবং এনক্যাপসুলেশন (বা তথ্য গোপন করা) বাস্তবায়নে আমাদের সহায়তা করে । ক্ষেত্র বা পদ্ধতিটি সংজ্ঞায়িত করার ক্ষেত্রে কোন অন্যান্য ক্লাসের অ্যাক্সেস থাকা উচিত তা সংকলককে জানান।

private - কেবলমাত্র বর্তমান শ্রেণীর ক্ষেত্রে ক্ষেত্র বা পদ্ধতিতে অ্যাক্সেস থাকবে।

protected - এই বর্গের কেবলমাত্র বর্তমান বর্গ এবং উপশ্রেণীগুলি (এবং কখনও কখনও একই প্যাকেজ ক্লাসগুলিরও) ক্ষেত্র বা পদ্ধতিতে অ্যাক্সেস থাকবে।

public - যে কোনও শ্রেণি ক্ষেত্রটি উল্লেখ করতে পারে বা পদ্ধতিটি কল করতে পারে।

এই ধরে নেওয়া হয় যে এই কীওয়ার্ডগুলি শ্রেণীর সংজ্ঞাতে ক্ষেত্র বা পদ্ধতি ঘোষণার অংশ হিসাবে ব্যবহৃত হয়।


4
নোট করুন যে একই প্যাকেজের জাভা সদস্যরা সুরক্ষিত সদস্যদের অ্যাক্সেস করতে পারে
ল্যান্ডন কুহন

4
হ্যাঁ, এবং জাভাতেও চতুর্থ অ্যাক্সেস মডিফায়ার রয়েছে যা খালি স্ট্রিং। কোনও অ্যাক্সেস মডিফায়ার না দেওয়া কোনও প্যাকেজ-স্তরের শ্রেণি থেকে অ্যাক্সেসের অনুমতি দেবে।
বেন এস

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

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

4
সি # একই-প্যাকেজ-এর-অ্যাক্সেস-রক্ষিত-সদস্য-সদস্যদের অ্যাক্সেসও করে। সংক্ষেপে, সি # হ'ল মাইক্রোসফ্ট জাভা
আইগবানাম

7

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


6

এগুলি আসলে ধারণাগুলি নয় বরং নির্দিষ্ট কীওয়ার্ড যা সি ++ এবং জাভার মতো জনপ্রিয় ভাষায় ঘটে (কিছুটা ভিন্ন শব্দার্থবিজ্ঞান সহ) to

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

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


2

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


1

উপরের মতো, তবে গুণগতভাবে:

private - least access, best encapsulation
protected - some access, moderate encapsulation
public - full access, no encapsulation

অল্প অ্যাক্সেসের মাধ্যমে আপনি কম পরিমাণে প্রয়োগের বিশদটি সরবরাহ করেন যা আপনার অবজেক্ট থেকে ফাঁস হয়। এই ধরণের ফাঁসের কম অর্থ হ'ল বস্তুর ক্লায়েন্টগুলি না ভেঙে কীভাবে কোনও বস্তু কার্যকর করা হয় তা পরিবর্তনের ক্ষেত্রে আরও নমনীয়তা (ওরফে "লুজার কাপলিং")। এটি বোঝার জন্য সত্যই একটি মৌলিক বিষয়।


0

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

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