Как обычно (например, доступ из Test.java):
public class Test {
public static void main(String... args) {
A a = new A();
a.foo();
B b = new B();
b.bar();
}
}
Правило здесь состоит в том, что в исходном файле не может быть более одного открытого класса. Если он у вас есть, имя файла должно совпадать с именем этого открытого класса. В противном случае (ваш случай), вы можете назвать свой файл по своему желанию. Другие непубличные классы будут видны для пакетов, и вы сможете обращаться к ним как обычно.