成员方法的修辞符及其被访问权限
1、step1:新建包 本例包名【package myFiles_012】,接着在该包内添加1个类,本例类名:pub造婷用痃lic class fatherDemo1 {}内容如下:package myFiles_012;/*** 探究:修辞符的访问权限* 条件: 本类内有4个不同修辞符的方法*/public class fatherDemo1 { //用private修辞的方法 private void show1() { System.out.println("this is private void show1()"); } //用默读修辞的方法 void show2() { System.out.println("this is void show2()"); } //用protected修辞的方法 protected void show3() { System.out.println("this is protected void show3()"); } //用public 修辞的方法 public void show4() { System.out.println("this is public void show4()"); } public static void main(String[] args) { fatherDemo1 mydemo = new fatherDemo1(); mydemo.show1(); mydemo.show2(); mydemo.show3(); mydemo.show4(); }}/*运行结果: this is private void show1() this is void show2() this is protected void show3() this is public void show4() 实验记录: 在本类内声明4个不同修辞符的方法,在本类内调用,结果全部能访问。 实验结论: 不管用什么修辞符修辞的成员方法,本类内的所有成员方法都能访问到。**/
2、step2:在包名【package myFiles_012】下再添加1个类,本例类名:public class sonDemo1{ } ,将它继承fatherDemo1 内容如下:package myFiles_012;/*** 本类sonDemo1,继承于fatherDemo1 这两个类是同包的* 探究:子类访问父类方法的权限*/public class sonDemo1 extends fatherDemo1 { public static void main(String[] args) { fatherDemo1 yy = new fatherDemo1(); //yy.show1(); yy.show2(); yy.show3(); yy.show4(); }}/*运行结果: this is void show2() this is protected void show3() this is public void show4() 实验记录: 在同一包名下,子类去调用父类的成员方法,父类中的private修辞的成员方法是无法访问的。 实验结论: 同包内,子类不能访问父类的私有成员方法(即用private 修辞的方法)。**/
3、step3:在包名【package myFiles_012】下再添加1个类,本例类名:public class sonDemo2 {} , 内容如下:package myFiles_012;/*** 本类sonDemo2,与fatherDemo1无继承关系 这两个类是同包的* 探究:sonDemo2类访问fatherDemo1方法的权限*/public class sonDemo2 { public static void main(String[] args) { fatherDemo1 my = new fatherDemo1(); // my.show1(); my.show2(); my.show3(); my.show4(); }}/*运行结果: this is void show2() this is protected void show3() this is public void show4() 实验记录: 在同一包名下,A类去调用B类的成员方法,B类中的private修辞的成员方法是无法访问的。 实验结论: 同包内,被调用的类中私有成员方法(即用private 修辞的方法)是不能被访问的。**/
4、step4:新建包 本例包名【package myFiles_013】,接着在该包内添加1个类,本例类名:pub造婷用痃lic class mysonDemo2 {} 将它继承fatherDemo1.内容如下:package myFiles_013;import myFiles_012.fatherDemo1;/*** 本类mysonDemo1 继承于不同包名下的fatherDemo1*/public class mysonDemo2 extends fatherDemo1 { public static void main(String[] args) { fatherDemo1 you = new fatherDemo1(); /* you.show1(); you.show2(); you.show3();*/ you.show4(); }}/*运行结果: this is public void show4() 实验记录: 在不同包名下,子类去调用父类的成员方法,父类中只有公有的方法(即用public修辞的成员方法)才能被访问到。 实验结论: 在不同包名下,子类去调用父类的成员方法,父类中只有公有的方法(即用public修辞的成员方法)才能被访问到。**/
5、step5:在包名【package myFiles_013】下再添加1个类,本例类名:public class mysonDemo1 {} , 内容如下:package myFiles_013;import myFiles_012.fatherDemo1;/*** 本类mysonDemo1与fatherDemo1不同包,不存在继承关系* 探究:在这种情况下的访问权限*/public class mysonDemo1 { //在本类内调用fatherDemo1中的成员方法 public static void main(String[] args) { fatherDemo1 pig = new fatherDemo1(); /*pig.show1(); pig.show2(); pig.show3();*/ pig.show4(); }}/*运行结果: this is public void show4() 实验记录: 在不同包名下,A类去调用B类的成员方法,B类中只有公有的方法(即用public修辞的成员方法)才能被访问到。 实验结论: 在不同包名下,被访问类中只有公有的方法(即用public修辞的成员方法)才能被调用到。**/
6、step6:/*最后总结:1、在本类内声明的成员方法,不管用什么修辞符修辞,本类内都能访问到。 2、私有(即用private 修辞)的成员方法只有在本类内访问到。 3、共有(即用public修辞)的成员方法,在任务包名下的任何类内都能访问到。 4、受保护(即protected修辞)和默认(无修辞符)的成员方法,不能在其它包名下访问到。 */