کلاس های Apex و کلاس های جاوا به روش های مشابهی کار می کنند، اما تفاوت های قابل توجهی وجود دارد.
اینها تفاوت های عمده بین کلاس های Apex و کلاس های جاوا هستند:
کلاسهای داخلی و رابطها را فقط میتوان یک سطح در عمق یک کلاس بیرونی اعلام کرد.
متدها و متغیرهای استاتیک را فقط میتوان در تعریف کلاس سطح بالا اعلام کرد، نه در کلاس داخلی.
یک کلاس داخلی مانند یک کلاس داخلی جاوا استاتیک عمل می کند، اما به کلمه کلیدی استاتیک نیاز ندارد. یک کلاس داخلی می تواند متغیرهای عضو نمونه مانند یک کلاس خارجی داشته باشد، اما هیچ اشاره گر ضمنی به نمونه ای از کلاس خارجی (با استفاده از کلمه کلیدی this) وجود ندارد.
اصلاح کننده دسترسی خصوصی پیش فرض است و به این معنی است که متد یا متغیر فقط در کلاس Apex که در آن تعریف شده است قابل دسترسی است. اگر اصلاح کننده دسترسی را مشخص نکنید، روش یا متغیر خصوصی است.
تعیین هیچ تغییر دهنده دسترسی برای یک متد یا متغیر و اصلاح کننده دسترسی خصوصی مترادف هستند.
اصلاح کننده دسترسی عمومی به این معنی است که روش یا متغیر می تواند توسط هر Apex در این برنامه یا فضای نام استفاده شود.
تعدیل کننده دسترسی جهانی به این معنی است که روش یا متغیر را می توان توسط هر کد Apex که به کلاس دسترسی دارد استفاده کرد، نه فقط کد Apex در همان برنامه. این اصلاح کننده دسترسی باید برای هر روشی که باید در خارج از برنامه ارجاع داده شود، چه در SOAP API یا توسط سایر کدهای Apex استفاده شود. اگر متد یا متغیری را به عنوان global اعلام کنید، باید کلاس حاوی آن را نیز به عنوان global اعلام کنید.
متدها و کلاس ها به طور پیش فرض نهایی هستند.
اصلاح کننده تعریف مجازی اجازه گسترش و لغو را می دهد.
کلمه کلیدی override باید به صراحت در روش هایی استفاده شود که روش های کلاس پایه را نادیده می گیرند.
متدهای واسط هیچ اصلاح کننده ای ندارند - آنها همیشه جهانی هستند.
کلاس های استثنا باید یک استثنا یا یک استثنا تعریف شده توسط کاربر را گسترش دهند.
نام آنها باید با کلمه استثنا ختم شود.
کلاس های استثنا دارای چهار سازنده ضمنی هستند که داخلی هستند، اگرچه می توانید سایرین را اضافه کنید.
کلاس ها و رابط ها را می توان در تریگرها و بلوک های ناشناس تعریف کرد، اما فقط به صورت محلی.