除了在当前类,同包下其它类, 有没有可用的方法来调用 用private修饰的方法?

来源:7-3 Java 中的访问修饰符

Bad__Guy

2015-07-05 13:25

 

//Telphone类

public class Telphone {

           //定义一个private方法messages:
    private void messages(){
     System.out.println("电话可以发短信  :");
    }
}


//Initial类

public class Initiail {

    public static void main(String[] args) {
  // TODO Auto-generated method stub
    Telphone a=new Telphone();        //实例化对象a
    a.messages();                //这里是错的!不可直接调用
     }
}

 

写回答 关注

3回答

  • 犁牛
    2015-07-05 14:43:27
    已采纳

    使用Java的反射机制,得到messages()方法的字节码,调用class.accessable()方法使其可以访问,然后就可以使用class.method()方法对其进行操作了。

    犁牛 回复Bad__G...

    大家都是初学,我也是偶然学到的,加油吧

    2015-07-06 01:59:48

    共 2 条回复 >

  • long1226230
    2015-07-05 19:57:59

     //Telphone类

     public class Telphone {

      void use(){
       messages();
      }

                //定义一个private方法messages:
         private void messages(){
          System.out.println("电话可以发短信  :");
         }
     }

    public class Initiail {
        public static void main(String[] args) {
      // TODO Auto-generated method stub
         Telphone a=new Telphone();        //实例化对象a
         a.use();                //这里是错的!不可直接调用
         }
    }


  • long1226230
    2015-07-05 15:48:58

    是否可以在与private修饰的同一个类中对外提供一个方法的调用方法呢?

    Bad__G...

    不行,试着像对属性那样运用set/get方法没成功!

    2015-07-05 16:15:35

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530644 学习 · 6091 问题

查看课程

相似问题