ممکن است برای کد خارجی مشتری قابل مشاهده باشد. کلاس برنامه نویسی در اراک در برخی از زبانها، ممکن است در زمان اجرا به یک عضو غیرقابل دسترسی اما قابل مشاهده اشاره شود (مثلاً با اشارهگری که از یک تابع عضو برگردانده میشود)، اما از تلاش برای استفاده از آن با ارجاع به نام عضو از کد مشتری جلوگیری میشود. توسط جستجوگر نوع.[13]
زبان های برنامه نویسی شی گرا مختلف دسترسی و دید اعضا کلاس برنامه نویسی در اراک را به درجات مختلفی اعمال می کنند و بسته به نوع سیستم و سیاست های کامپایل زبان، در زمان کامپایل یا زمان اجرا اعمال می شوند. به عنوان مثال، زبان جاوا اجازه نمی دهد کد مشتری که به داده های خصوصی یک کلاس دسترسی دارد، کامپایل شود.[14] در زبان C++، روشهای خصوصی قابل مشاهده هستند، اما کلاس برنامه نویسی در اراک در رابط قابل دسترسی نیستند. با این حال، ممکن است با اعلان صریح کلاسهای کاملاً انتزاعی که رابطهای کلاس را نشان میدهند، نامرئی شوند.[15]
برخی از زبانها دارای طرحهای دسترسی دیگر هستند:
دسترسی نمونه در مقابل کلاس: روبی به ترتیب به جای کلاس کلاس برنامه نویسی در اراک خصوصی و محافظت شده، از مشخص کننده های دسترسی نمونه-خصوصی و محافظت شده-نمونه پشتیبانی می کند. تفاوت آنها در این است که دسترسی را بر اساس خود نمونه محدود می کنند، نه کلاس نمونه.[16]
Friend: C++ از مکانیزمی پشتیبانی می کند که در آن یک تابع که به صراحت به عنوان تابع دوست کلاس اعلام شده است ممکن است به اعضای تعیین شده به عنوان خصوصی یا محافظت شده دسترسی داشته باشد.[17]
Path-based: جاوا از محدود کردن دسترسی به یک عضو در بسته جاوا پشتیبانی می کند، که مسیر منطقی فایل است. با این حال، زمانی که یک فریم ورک جاوا را گسترش میدهید، برای پیادهسازی کلاسها در بستهبندی مشابه یک کلاس فریمورک برای دسترسی به اعضای محافظتشده، یک روش معمول است. فایل منبع ممکن است در یک مکان کاملا متفاوت وجود داشته باشد، و ممکن است در یک فایل jar متفاوت مستقر شود، اما همچنان آموزش برنامه نویسی کودکان و نوجوانان در کلاس برنامه نویسی در اراک همان مسیر منطقی تا جایی که به JVM مربوط می شود، باشد.[12]
روابط بین طبقاتی
علاوه بر طراحی کلاس های مستقل، زبان های برنامه نویسی ممکن است از طراحی کلاس های پیشرفته تری بر اساس روابط بین کلاس ها پشتیبانی کنند. قابلیت های طراحی روابط بین طبقاتی که معمولاً ارائه می شود ترکیبی و سلسله مراتبی است.
ترکیبی
کلاسها میتوانند از کلاسهای دیگر تشکیل شوند، در نتیجه یک رابطه ترکیبی بین کلاس محصور و کلاسهای تعبیهشده آن ایجاد میشود. رابطه ترکیبی بین کلاسها معمولاً به عنوان رابطه دارای-یک نیز شناخته میشود.[18] به عنوان مثال، یک کلاس "Car" می تواند از یک کلاس "Engine" تشکیل شده و حاوی آن باشد. بنابراین، یک ماشین یک موتور دارد. یکی از جنبه های ترکیب، محصور شدن است، که شامل محصور شدن نمونه های کلاس برنامه نویسی در اراک جزء توسط نمونه ای است که آنها را دارد. اگر یک شی محصور حاوی نمونه های جزء بر اساس مقدار باشد، مؤلفه ها و شی دربرگیرنده آنها طول عمر مشابهی دارند. اگر مؤلفهها با مرجع موجود باشند، ممکن است عمر مشابهی نداشته باشند.[19] به عنوان مثال، در Objective-C 2.0:
@interface Car: NSObject
@property NSString *name;
@property موتور *موتور
@property NSArray *لاستیک;
@پایان
این کلاس Car دارای نمونه ای از NSString (یک شی رشته)، Engine و NSArray (یک شیء آرایه) است.
بر اساس سلسله مراتب
کلاسها را میتوان از یک یا چند کلاس موجو کلاس برنامه نویسی در اراک د مشتق کرد، بنابراین یک رابطه سلسله مراتبی بین کلاسهای مشتقشده (کلاسهای پایه، کلاسهای والد یا سوپرکلاسها) و کلاس مشتقشده (کلاس فرزند یا زیر کلاس) برقرار میکند. رابطه کلاس مشتق شده با کلاس های مشتق شده معمولاً به عنوان رابطه is-a شناخته می شود.[20] به عنوان مثال، یک کلاس 'Button' می تواند از یک کلاس 'Control' مشتق شود. بنابراین، یک دکمه یک کنترل است. اعضای ساختاری و رفتاری طبقات والدین به طبقه فرزند به ارث می رسند. کلاسهای مشتق شده میتوانند اعضای ساختاری اضافی (فیلدهای داده) و اعضای رفتاری (روشها) را علاوه بر آنهایی که به ارث میبرند، تعریف کنند و بنابراین تخصصهای ابر کلاسهایشان هستند. همچنین، اگر زبان اجازه دهد، کلاسهای مشتق شده میتوانند روشهای ارثی را لغو کنند.
همه زبان ها از وراثت چندگانه پشتیبانی نمی کنند. به عنوان مثال، جاوا به یک کلاس اجازه می دهد تا چندین رابط را پیاده سازی کند، اما فقط از یک کلاس به ارث برده شود.[21] اگر وراثت چندگانه مجاز باشد، سلسله مراتب یک گراف غیر چرخه ای جهت دار (یا به اختص کلاس برنامه نویسی در اراک ار DAG) است، در غیر این صورت یک درخت است. سلسله مراتب دارای کلاس هایی به عنوان گره و روابط ارثی به عنوان پیوند است. احتمال ارتباط کلاسهای یک سطح بیشتر از کلاسهای سطوح مختلف است. سطوح این سلسله مراتب را لایه ها Programming class in Arak یا سطوح انتزاع می نامند.