public class:
class:
如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致。
在一个文件中可以申明多个class类,但是在编译的时候会生成多个.class文件。
在同一个包中public class与class的权限也有不同。
Java使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
- 把功能相似或相关的类型组织在一起,即一个包中。包中的文件,存储在相同的目录层次中,C++没有对应的功能。注:类型指的是:类<class>、接口<interface>、枚举<enum>、注解<annotation>。枚举及注解在java中,是一种特别的类型或接口。
- 包方便类型的查找和使用。一行import语句(import comm.animals.*),就可以使用包中所有对外开放的类型。
- 包能避免名字冲突,一个包就是一个独立的名字空间,只要包内不重名就可以,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。比C++的 namesapce爽多了。
- 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类,包中非public类,是包类私有的类,外部不可访问,C++提供不了类类型的访问限制,只能限止类内的成员函数或数据成员。
具体的可以查看:http://blog.csdn.net/maowenl/article/details/52709881