Java包和类访问修饰符

面向对象编程的两个重要概念是根据实体的功能或逻辑来分离实体,并在类中隐藏数据和行为(封装)。为此,我们可以使用类来定义具有属性和行为(其方法)的实体。在更高的层次上,为了更好地组织应用程序模块,我们可以使用包来分离不同程序员的工作,或者根据其逻辑或实用程序在模块中聚合类。

包非常重要,因为它允许不同的程序员独立地命名它们的类。例如,每个程序员可以定义自己的 Utility类,而不会生成冲突编译器错误(编译器不知道要实例化哪个 Utility类 ): 重复类

软件包的推荐命名约定是反向域名,并添加分区和项目名。例如,我可以为这样的聊天应用程序命名一个包

package com.onitroad.chat.client;

有关SCJP认证所需的软件包的其他重要规则:

包声明必须是文件中的第一行(导入声明之前)
如果要使用其他包中的类,必须使用导入声明指定包名称
导入声明是在包声明(如果有)和第一类声明之间定义的
如果只想从另一个包使用某一个类,可以这样定义导入

`import packageName.className;`

如果要使用另一个包中的所有类,那么向厦门这样定义导入:

import packageName.*;

其中TestClass.java文件:

package com.onitroad.test;

public class TestClass {
    int attribute;
}

Main.java文件:

package com.onitroad.main;

import com.onitroad.test.*;

public class Main {
    public static void main(String[] args) {
        TestClass tc = new TestClass();
    }
}

什么是类访问

Java平台通过字节码验证器、类加载器和安全管理器实现严密的安全性。在源代码级别实现安全性的一种方法是控制类访问,这意味着:

  • 该类在其他包中可见;
  • 可以使用该类从同一个/其他包在其他类中创建实例;
  • 可以在同一/其他包中扩展一个新的类;
  • 可以从同一个/其他包的其他类中访问该类的属性或方法(这里还必须考虑属性和方法访问修饰符);

什么是类访问修饰符

类修饰符是:

  1. defalut(不使用任何东西时);相当于包级访问,因为在任何源文件中,同一包内的类只能看到该类;
  2. public表示该类在任何地方(在任何包中,在任何源文件中)都可见;
package p1;

//使用public访问权限
public class Class1
{}

//使用默认访问权限
class Class2
{}

日期:2019-04-29 03:17:57 来源:oir作者:oir