I know that class members with default access control can be accessible at package level but i'm confused about what does package level access actually mean. If default members can be accessed at package level then shouldn't i be visible in class Test2 in following example? class 1-
package pkg1;
public class Test {
int i=0;
}
class 2-
import pkg1.Test;
public class Test2 {
void get(){
Test t = new Test();
t.i=0;
}
}
Please help me getting this concept. Thanks in advance.
Package level access means that only classes that are defined in the same package can access the package level variable. If you have to import Test
, then I'm assuming that Test
is in a different package and therefore it can't access i
.
For Test2
to access i
, define it in the same package as Test1
.
You forget to write
package pkg1;
for Test2 class.
It should work now
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.