I Have following two classes: Test.java
package com.test.app;
public class Test {
public int a=10;
protected void testFunc() {
// TODO Auto-gen
The Test#testFunc() method is only accessible for sub-classes (like Main) and for classes in the same package (com.test.app).
This is why the statement
main.testFunc();
compiles fine (because Main is a sub-class of Test and it's allowed to call testFunc()).
This statement, however
test.testFunc();
doesn't compile, because the package where the Main class is located is not com.test.app, but com.test.main.
More info: