Skip to main content

Access Modifiers Permissions level and their scope

 


Access modifiers in Java determine the visibility and accessibility of classes, methods, and fields within your code. Here's a brief overview of each access modifier:

  1. Private:

    • Scope: Limited to the same class.
    • Permission:
      • Accessible within the class where it is declared.
      • Not accessible outside the class, including subclasses.
    • Example:
    • private int privateField;

  2. Default (Package-Private):

    • Scope: Limited to the same package.
    • Permission:
      • Accessible within the class where it is declared.
      • Accessible within any class in the same package.
      • Not accessible outside the package, including subclasses in other packages.
    • Example:
    • int packagePrivateField;

  3. Protected:

    • Scope: Limited to the same package and subclasses (including those in different packages).
    • Permission:
      • Accessible within the class where it is declared.
      • Accessible within any class in the same package.
      • Accessible by subclasses, even if they are in different packages.
      • Not accessible outside the package (except by subclasses).
    • Example:
    • protected int protectedField;

  4. Public:

    • Scope: Accessible from anywhere.
    • Permission:
      • Accessible within the class where it is declared.
      • Accessible within any class, regardless of the package.
      • Accessible by subclasses, regardless of the package.
    • Example:
    • public int publicField;


These access modifiers help you control the visibility of your code, providing a mechanism for encapsulation and information hiding. By choosing the appropriate access level, you can design classes and APIs that expose only what is necessary and hide implementation details. This promotes modularity, maintainability, and helps prevent unintended misuse of your code.

Within class

Within Package

Outside Package by subclass

Outside Package

Yes

No

No

No

Yes

Yes

No

No

Yes

Yes

Yes

No

Yes

Yes

Yes

Yes

See You soon.

Comments

Popular posts from this blog

Had you to design test cases for a complex feature. What factors did Tester consider, and how did prioritize test scenarios?

  Take an instance as new application has integrated into existing applications(i,e., Running on real time )Customer want to integrate their application into third party vendors in order to let the customer order their needs through our created app itself. Factors Consisdered : Error Handling , Functional Requirements , Edge cases , Non-Functional Parameters . Transaction Flow Flow1: Customer Land on third party vendors app and start picking their items. Flow2 : Picked Items has to go Cart Page and can see number of items added by visually. Flow3: Once click to checkout , it will allow the user to input their card details and processing transaction. Flow4:Once Transactions done, newly created app show the details of the order and online tracking number . Prioritize scenerios based on the Business Emergency and needs ,well in briefly communicate to team members to identify the Critical paths and prioritize the that test suite first and Start  the execution based on what need to...

Static and Non-Static

  What is the purpose of the static keyword in Java? The static keyword is used to declare class-level variables and methods . They belong to the class rather than instances of the class and can be accessed using the class name. can we use the static keyword for package level access? In Java, the static keyword is not used for controlling access levels. The static keyword is primarily used to define class-level members, such as variables and methods, that are associated with the class itself rather than with instances of the class. The concept of access levels, on the other hand, is controlled by access modifiers. public class MyClass {     public static int publicStaticVariable = 10;     static int packagePrivateStaticVariable = 20; // package-private by default     private static int privateStaticVariable = 30; } To summarize, while static is used to define class-level members, access modifiers (public, protected,...

Headed Vs Headless Operation

  Headless Mode: Purpose: Headless mode refers to running the browser without a visible GUI. The browser operates in the background, and there is no actual browser window displayed. Benefits: Faster execution : Headless mode often performs faster than headed mode because it doesn't need to render the graphical user interface. This can be advantageous when running a large number of automated tests. Resource efficiency : Since there is no need to render the UI, headless mode typically consumes fewer system resources, making it more efficient, especially for running tests in environments with limited resources. Server-side and continuous integration : Headless mode is commonly used in server environments, continuous integration (CI) systems, or when running tests on servers where a graphical environment is not available. Headed Mode: Purpose: Headed mode refers to running the browser with a visible graphical user interface (GUI). You can see the browser window opening and performing a...