欢迎来到天天文库
浏览记录
ID:12889181
大小:48.50 KB
页数:7页
时间:2018-07-19
《protected深入理解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Java中的访问控制修饰符有四个级别,但属protected最复杂。如果问大家,protected修饰符作用,大家会说“在子类与同包中可以访问这个成员”,当然在自己类中也是可的,但你真的理解了吗?不信,先看看下面这些实例,看你是否也是这样想的(其中注释掉的是不能编译的):Java代码packagepk1.a;publicclassBase{protectedinti=1;protectedvoidprotect(){System.out.println("Base::protect");}}packagepk1.a;importpk1.b.Sub;publicclassSubSubex
2、tendsSub{voidg(){Subs=newSubSub();//!!s.protect();//规则2.c.iSystem.out.println(s.i);//规则2.c.ii}}packagepk1.b;importpk1.a.Base;publicclassSubextendsBase{privatevoidprt(){}protectedvoidprotect(){System.out.println("Base::protect");}voidf(){//规则2.athis.protect();this.i=2;//规则2.bBasea2=newSub();//!!a
3、2.protect();//!!System.out.println(a2.i);//规则1Subb=newSub();b.protect();b.i=1;b.prt();}}packagepk1.b;publicclassSubSubextendsSub{voidg(){Subs=newSubSub();s.protect();//规则2.c.i//!!System.out.println(s.i);//规则2.c.ii}}packagepk1.c;importpk1.a.Base;importpk1.b.Sub;publicclassSubSubextendsSub{voidg()
4、{this.protect();//规则2.a//规则2.bBaseb=newSubSub();//!!b.protect();//!!System.out.println(b.i);//规则2.bSubs=newSubSub();//!!s.protect();//!!System.out.println(s.i);}}Java代码packagepk2.a;publicclassBase{protectedinti=1;protectedvoidprotect(){System.out.println("Base::protect");}}packagepk2.a;importpk2
5、.b.Sub;publicclassOther{voidg(){//规则3.aBaseb=newSub();b.protect();System.out.println(b.i);//规则3.b.iiSubs=newSub();s.protect();System.out.println(s.i);}}packagepk2.b;importpk2.a.Base;publicclassOther{voidg(){//规则3.aBaseb=newSub();//!!b.protect();//!!System.out.println(b.i);//规则3.b.iiSubs=newSub()
6、;//!!s.protect();//!!System.out.println(s.i);}}packagepk2.b;importpk2.a.Base;publicclassSubextendsBase{}Java代码packagepk3.a;importpk3.b.Sub;publicclassBase{protectedinti=1;protectedvoidprotect(){System.out.println("Base::protect");}staticprotectedinti_s=1;staticprotectedvoidprotect_s(){System.out
7、.println("Static:Base::protect");}voidf(){//!!Sub.i_s=2;//规则3.b.iSub.protect_s();//规则3.b.ii}}packagepk3.a;importpk3.b.Sub;publicclassOther{voidg(){Subs=newSub();//!!s.protect();//规则3.b.iSystem.out.println(s.i);//规则3.b.ii}voi
此文档下载收益归作者所有