成员方法的修辞符及其被访问权限

2025-10-22 07:06:20

1、step1:新建包  本例包名【package  myFiles_012】,接着在该包内添加1个类,本例类名:public 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个类,本例类名:public 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修辞)和默认(无修辞符)的成员方法,不能在其它包名下访问到。

*/

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢