在Java文件中拥有多个类的目的是什么?我是Java新手.
编辑: 这可以通过在公共类中创建内部类来实现,对吧?
我希望能够在我的包中有两个"受保护"类.也就是说,我不希望我的包外的文件看到它们是可见的 - 它们仅供包内部使用.
我怎样才能做到这一点?
请看样品:
private package com.xm.aws;
import static com.xml.aws.PcgTest.test;
public class PackageTest {
public static void main(String[] args) {
test(args);
}
}
Run Code Online (Sandbox Code Playgroud)
什么是private告诉我的包?
我写了以下代码
class Hello //Note the class is not public
{
public static void main(String args[]) {
System.out.println("Hello");
}
}
因此,当我运行它时,它运行正常并打印输出"Hello".
但是,如果JVM规范要求主要方法应该是公开的,因为"它不能看到主要的",那么它不应该也适用于类吗?如果JVM"未能看到"Hello.main(),当它未被声明为public时,它如何能够看到A类本身.
除了"因为规范是这样说的"之外,还有其他解释吗?
如果JVM能够看到所有类和方法,因为它本身就是"安全/可见性执行器",那么为什么需要将main方法声明为public.
是否可以只在同一个包和子包中访问接口?
我已经使用默认修饰符定义了一个接口:
package com.mycompany.myapp.dao;
import java.io.Serializable;
interface BaseDao<T, Id extends Serializable> {
public void create(T t);
public T readById(Id id);
public void update(T t);
public void delete(T t);
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个子包,我想在其中定义一个实现的类BaseDao.所以我写了这段代码:
package com.mycompany.myapp.dao.jpa;
import java.io.Serializable;
public class BaseDaoJpa<T, Id extends Serializable> implements BaseDao<T, Id> {
...
}
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
BaseDao无法解析为某种类型
那么这是Java对接口的限制,还是我做错了?
谢谢