美文网首页
修饰符小谈

修饰符小谈

作者: hddwsz | 来源:发表于2017-04-23 23:51 被阅读0次

    在Java中提供了四种访问权限,使用不同的访问权限时,被修饰的内容会有不同的访问权限,以下表来说明不同权限的访问能力:

                                             public        protected         空的(default)       private

    同一类中                              √                  √                        √                       √

    同一包中(子类与无关类)      √                  √                         √

    不同包的子类                       √                  √

    不同包中的无关类                √

    归纳一下:在日常开发过程中,编写的类、方法、成员变量的访问

           要想仅能在本类中访问使用private修饰;

           要想本包中的类都可以访问不加修饰符即可;

           要想本包中的类与其他包中的子类可以访问使用protected修饰

           要想所有包中的所有类都可以访问使用public修饰。

    这里要注意的是,如果类用public修饰,则类名必须与文件名相同。一个文件中只能有一个public修饰的类。

    这里着重说说受保护权限pretected.有人说它的用法是:受保护,给子类用

    下面代码说明问题:

    package com.fenxiang.protecteddemo;

         public classFu {

                protected void pro(){

                       System.out.println("受保护权限的方法");

                 }

         }

    package com.fenxiang.protecteddemo;

    public class Zi extends Fu{

    }

    package com.fenxiang.demo;

    import com.fenxiang.protecteddemo.Zi;

    public classDemo {

         public static void main(String[]args) {

                  Zi z = new Zi();

                  z.pro(); //无法调用Pro方法

          }

    }

    但是在这里测试类Demo中无法调用Pro方法,所以理解为”给子类用”是有问题的

    下面修改后代码:

    package com.fenxiang.protecteddemo;

    public class Fu {

           protected void pro(){

                  System.out.println("受保护权限的方法");

           }

    }

    package com.fenxiang.protecteddemo;

    public class Zi extends Fu{

           public void show(){   //加入show方法,在show方法中调用pro方法

                  pro();

           }

    }

    package com.fenxiang.demo;

    import com.fenxiang.protecteddemo.Zi;

    public class Demo {

           public static void main(String[]args) {

                   Zi z = new Zi();

                   z.show();     //调用子类中的show方法

            }

    }

    修改后编译成功,程序正常运行,输出:受保护权限的方法

    所以得到结论:

    受保护权限用法:只能在子类中去使用,出去子类,不能使用

    相关文章

      网友评论

          本文标题:修饰符小谈

          本文链接:https://www.haomeiwen.com/subject/qkluzttx.html