0% found this document useful (0 votes)
43 views3 pages

Apex Access Modifier

The document outlines the use of access modifiers in Apex, including private, protected, public, and global, which dictate the visibility of methods and variables within classes. It explains the default visibility, differences in access modifiers compared to Java, and provides syntax examples for each modifier. Additionally, it emphasizes the importance of using the global modifier sparingly due to maintenance challenges in cross-application dependencies.

Uploaded by

Sharif Hasan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views3 pages

Apex Access Modifier

The document outlines the use of access modifiers in Apex, including private, protected, public, and global, which dictate the visibility of methods and variables within classes. It explains the default visibility, differences in access modifiers compared to Java, and provides syntax examples for each modifier. Additionally, it emphasizes the importance of using the global modifier sparingly due to maintenance challenges in cross-application dependencies.

Uploaded by

Sharif Hasan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

4/24/25, 3:08 PM Access Modifiers | Apex Developer Guide | Salesforce Developers

Developers

Access Modifiers
Apex Developer Guide / Writing Apex / Classes, Objects, and Interfaces / Classes / Access Modifiers

Access Modifiers
Apex allows you to use the private , protected , public , and global access modifiers when defining
methods and variables.

While triggers and anonymous blocks can also use these access modifiers, they aren’t as useful in
smaller portions of Apex. For example, declaring a method as global in an anonymous block
doesn’t enable you to call it from outside of that code.

For more information on class access modifiers, see Apex Class Definition.

Note

Methods defined in an interface have the same access modifier as the interface ( public
or global ). For more information, see Interfaces.

By default, a method or variable is visible only to the Apex code within the defining class. Explicitly
specify a method or variable as public in order for it to be available to other classes in the same
application namespace (see Namespace Prefix). You can change the level of visibility by using the
following access modifiers:

private

This access modifier is the default, and means that the method or variable is accessible only
within the Apex class in which it’s defined. If you don’t specify an access modifier, the method or
variable is private .

protected

This means that the method or variable is visible to any inner classes in the defining Apex class,
and to the classes that extend the defining Apex class. You can only use this access modifier for
instance methods and member variables. This setting is strictly more permissive than the default
(private) setting, just like Java.

public

This means that the method or variable is accessible by all Apex within a specific package. For
accessibility by all second-generation (2GP) managed packages that share a namespace, use
public with the @NamespaceAccessible annotation. Using the public access modifier in no-
namespace packages implicitly renders the Apex code as @NamespaceAccessible.

Note

In Apex, the public access modifier isn’t the same as it is in Java. This was done to
discourage joining applications, to keep the code for each application separate. In
Apex, if you want to make something public like it is in Java, you must use the global
access modifier.

For more information on namespace-based visibility, see Namespace-Based Visibility for Apex
Classes in Second-Generation Packages.

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_access_modifiers.htm 1/3
4/24/25, 3:08 PM Access Modifiers | Apex Developer Guide | Salesforce Developers

global

This means the method or variable can be used by any Apex code that has access to the class, not
just the Apex code in the same application. This access modifier must be used for any method
that must be referenced outside of the application, either in SOAP API or by other Apex code. If
you declare a method or variable as global , you must also declare the class that contains it as
global .

Note

We recommend using the global access modifier rarely, if at all. Cross-application


dependencies are difficult to maintain.

To use the private , protected , public , or global access modifiers, use the following syntax:

[(none)|private|protected|public|global] declaration

For example:

// private variable s1
private string s1 = '1';

// public method getsz()


public string getsz() {
...
}

DID THIS ARTICLE SOLVE YOUR ISSUE?


Share your feedback
Let us know so we can improve!

DEVELOPER CENTERS POPULAR RESOUR CES COMMUNITY


Heroku Documentation Trailblazer Community

MuleSoft Component Library Events and Calendar


Tableau APIs Partner Community

Commerce Cloud Trailhead Blog

Lightning Design System Sample Apps Salesforce Admins

Einstein Podcasts Salesforce Architects

Quip AppExchange

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_access_modifiers.htm 2/3
4/24/25, 3:08 PM Access Modifiers | Apex Developer Guide | Salesforce Developers

© Copyright 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce, Inc.
Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States

Privacy Information Terms of Use Legal Use of Cookies Trust Cookie Preferences

Your Privacy Choices Responsible Disclosure Contact

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_access_modifiers.htm 3/3

You might also like