java|Java 修饰符 private、default、protected、public 的应用实例 (属性)

?? 上一期介绍了 修饰符 private、default、protected、public 在方法(Method)中的调用,这一期将介绍在属性(Attribution) 中的调用。这4个属性级别的调用法则和方法调用是一样的。

?? 创建一个 attribution 的包 和 Personal 的 类。 在 Personal 类里,创建 一个 类变量( 静态变量)NAME 和 调用 NAME 的方法 printname() 。 在 Java 中,一般创建类变量的规范写法都是 public static, 为说明接着的调用,暂时先创建一个普通的变量,下一期将介绍变量的3种类型应用。

java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片


?? 对 Personal 类实例化后,调用 printname() 方法。

java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片


?? 当实例直接调用 类变量 NAME 时,会出现报错,原因是创建 类变量 NAME时,设置为 default 级别,不同包中不能直接调用。

java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片


?? 更改 类变量 NAME 为 public
java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片


?? 实例化后,可以直接调用类变量 NAME

![在这里插入图片描述](https://img-blog.csdnimg.cn/85114a1b5acd441d920cd526d933c1ca.png)
?? 更改 类变量 NAME 为 private 后,实例化后,就不能直接调用类变量 NAME,会出现报错,原因是不能在不同包中调用。

java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片


java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片


?? 直接调用 printname() 方法

java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片


?? 更改 类变量 NAME 为 protected 后,通过更改继承 Personal,MainTest 成为 子类 去实例化后,就可以直接调用 NAME

java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片


java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片


?? 一般情况下,属性或者成员变量,都用private修饰,不用其他的,这个是java的约束。以上例子只是为说明这4个级别的区别而已。

?? Java中public class与class的区别:在一个java的文件中,只能有一个public class的声明,有多个public则编译报错,其类名称必须与文件名称完全一致,但是允许有多个class的声明。

java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片

java|Java 修饰符 private、default、protected、public 的应用实例 (属性)
文章图片



【java|Java 修饰符 private、default、protected、public 的应用实例 (属性)】?? 只有public修饰的类,才能在包外部包可见;否则只是包内私有的类,类不能被其他包访问。

    推荐阅读