What is equivalent of internal
access modifier available in C# for method in Java?
(I know default
i.e. methods, variables without any scope are having package
access but I am looking for keyword equivalent)
How can we achieve methods with protected internal
scope in Java?
There's no equivalent of an assembly in Java, so there can't be an equivalent of an access modifier which makes a member available within an assembly.
The closest you can get to
internal
is the default accessibility which is similar but based on package.The closest you can get to
protected internal
isprotected
(but again based on package). Note thatprotected
in Java also gives access to the package automatically - there's nothing in Java which is as restrictive as C#'sprotected
(in terms of only being available within subclasses).From JLS 6.6.2 (emphasis mine):
In other words, within the package in which it is declared, it's accessible to all code.