1.public class A {
2. private int count;
3. public A() {
4. count = 10;
5.}
6.private int discount() {
7.return count--;
8.}
9.}
10.public class B {
11.
12.public static void main(String []args) {
13. A obj = new A();
14.
 15.    }
16.}
要在14行调用A 类私有的discount() ,怎样调用?

解决方案 »

  1.   

    在A类中写一个public的方法调用私有的discount() 
    B类中调用那个public的方法就可以间接的调用私有的discount()了
    o(∩_∩)o...
      

  2.   

    声明为private的属性的成员,不能在该类以外的任何类代码所访问
      

  3.   

    不可能 这就是类的封装
    私有方法外面类永远不能访问,除了内置类
    要不你就改成public 要不把B设为A的内置类
    再也没有其它方法了.
      

  4.   

     class A {
    private int count; public A() {
    count = 10;
    } private int discount() {
    return count--;
    }

    public void changeDiscount(){
    discount();
    }
    }class B { public static void main(String[] args) {
    A obj = new A();
    obj.changeDiscount();
    }
    }
      

  5.   

    1、Bb类做为Aa的内部类来调用Aa的私有方法。 2、通过反射,来调用Aa的私有方法
      

  6.   

    class A { 
    private int count; public A() { 
    count = 10; 
    } private int discount() { 
    return count--; 
    } public void changeDiscount(){ 
    discount(); 

    } class B { public static void main(String[] args) { 
    A obj = new A(); 
    obj.changeDiscount(); 

    }
    看一下private,public,protected的访问权限的问题
    private 声明的变量或方法,只能在内部调用
    或者把B类定义为A的内部类,不然没有办法调用
      

  7.   

    private 声明的变量或方法,只能在内部调用 
    如果非要调用就做个public方法返回咯!
      

  8.   

    如果让B继承A,然后用A在B中创建个对象,再用这个创建的对象去调用这个私有的方法是不是就可以了呢?
      

  9.   

    可以利用反射来调用
    代码为Method method = clazz.getDeclaredMethod("method",new Class[]{});

    method.setAccessible(true);
    method.invoke(test,new Object[]{});
      

  10.   

    同意楼上的各位高手说的,在A类里面自己再写个public方法,里面调用了discout方法,再在B类里面调用这个共有方法就可以了,建议多学习下private,public,protected的访问权限!例外,多提下,这里你也可以运用下静态工厂法!!
      

  11.   

    在A类中写一个public的方法调用私有的discount() 
    B类中调用那个public的方法就可以间接的调用私有的discount()了 
    o(∩_∩)o... 
    只能这样,private的方法只能在本类中引用