Как уже говорили другие, вы можете получить доступ только к статическим переменным и методам. Еще одна вещь, на которую, я думаю, стоит обратить внимание, это то, что это относится и к таким вещам, как внутренние классы (это может быть не сразу очевидно, по крайней мере, это застало меня врасплох, когда я впервые попытался это сделать):
public class OuterClass
{
private class InnerClass {}
private static void staticMethod()
{
// Compile-time error!
InnerClass inner = new InnerClass();
}
}
Дает ошибку времени компиляции:
Нет включающего экземпляра типа OuterClass. Необходимо квалифицировать выделение с включающим экземпляром типа OuterClass (например, x.new A (), где x - это экземпляр OuterClass).
Но это действительно так:
public class OuterClass
{
private static class InnerClass {}
private static void staticMethod()
{
// Compiles fine
InnerClass inner = new InnerClass();
}
}