JAVA-类的权限修饰符

Java中的权限修饰符主要包括private、public和protected,这些修饰 符控制着对类和类的成员变量以及成员方法的访问。如果一个类的成员 变量或成员方法被修饰为private,则该成员变量只能在本类中被使用,在子类中是不可见的,并且对其他包的类也是不可见的。如果将类的成 员变量和成员方法的访问权限设置为public,那么除了可以在本类使用 这些数据之外,还可以在子类和其他包的类中使用。如果一个类的访问 权限被设置为private,这个类将隐藏其内的所有数据,以免用户直接访 问它。如果需要使类中的数据被子类或其他包中的类使用,可以将这个 类设置为public访问权限。如果一个类使用protected修饰符,那么只有 本包内的该类的子类或其他类可以访问此类中的成员变量和成员方法。

这么看来,public和protected修饰的类可以由子类访问,如果子类 和父类不在同一包中,那么只有修饰符为public的类可以被子类进行访 问。如果父类不允许通过继承产生的子类访问它的成员变量,那么必须 使用private声明父类的这个成员变量。表中描述了private、protected 和public修饰符的修饰权限。

Java语言中的修饰符权限
Java语言中的修饰符权限

注意:当声明类时不使用public、protected和private修饰符设置类的权 限,则这个类预设为包存取范围,即只有一个包中的类可以调用这个 类的成员变量或成员方法。

【例】在项目中的com.lzw包下创建AnyClass类,该类使用默认的访问权限。

使用默认的访问权限

在上述代码中,由于类的修饰符为默认修饰符,即只有一个包内的 其他类和子类可以对该类进行访问,而AnyClass类中的doString()方法却又被设置为public访问权限,即使这样,doString()方法的访问权限依然 与AnyClass类的访问权限相同,因为Java语言规定,类的权限设定会约 束类成员的权限设定,所以上述代码等同于例的代码。

【例】本实例等同于上面例子的代码。

本实例等同于上面例子的代码

发表评论