Java包及访问权限,扫盲贴

当一个大型程序由数个不同的组别或人员开发共同开发时,用到相同的类名称是很有可能的事。如果这种情况发生,还要确保程序可以正确运行,就必须通过package关键字来帮忙了。package是在使用多个类或接口时,为了避免名称重复而采用的一种措施。那么具体应该怎么使用呢?在类或接口的最上面一行加上package的声明就可以了。

package的声明格式:package package名称; 

经过package的声明之后,在同一文件内的接口或类都被纳入相同的package中。程序TestPackage1是使用package的一个范例,如下所示:

package demo.java;

class Person
{
    public String talk()
    {
        return "Person---->>talk()";
    }
}

class TestPackage1
{
    public static void main(String args[])
    {
        System.out.println(new Person().talk());
    }
}

第1行声明了一个demo.java的包,所以就相当于将Person类、TestPackage1类放入了demo.java文件夹之下。现在来看一下上面的程序是如何编译的:

javac -d . TestPackage1.java  注:“-d” 表示生成目录;“.” 表示在当前目录下生成

这样就会在当前目录下生成一个demo的文件夹,在demo文件夹下又会生成一个java文件夹,在此文件夹下会有编译好的Person.class和TestPackage1.class,编译好之后用下面的语法来执行它:

java demo.java.TestPackage1

如果要使用不同包中的类,可以像上面“demo.java.TestPackage1”一样,指明包名加类名,或者可以使用import命令。import可以将某个包中的类或者整个包导入,因此之后使用此包中的类时就不再需要加上包名。注意,某个包中的类要能被访问,必须设置为public。

以下列出JDK中常见的包:

  1. java.lang — 包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。在java.lang包中还有一个子包:java.lang.reflect用于实现java类的反射机制。
  2. java.awt — 包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
  3. javax.swing — 此包用于建立图形用户界面,此包中的组件相对于java.awt包而言是轻量级组件。
  4. java.applet — 包含applet运行所需的一些类。
  5. java.net — 包含执行与网络相关的操作的类。
  6. java.io — 包含能提供多种输入/输出功能的类。
  7. java.util — 包含一些实用工具类,如定义系统特性、与日期日历相关的函数。

以下列出Java类成员的访问控制权限:

原文地址:https://www.cnblogs.com/xiaojihua20/p/4165108.html