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() ,怎样调用?
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() ,怎样调用?
B类中调用那个public的方法就可以间接的调用私有的discount()了
o(∩_∩)o...
私有方法外面类永远不能访问,除了内置类
要不你就改成public 要不把B设为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 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的内部类,不然没有办法调用
如果非要调用就做个public方法返回咯!
代码为Method method = clazz.getDeclaredMethod("method",new Class[]{});
method.setAccessible(true);
method.invoke(test,new Object[]{});
B类中调用那个public的方法就可以间接的调用私有的discount()了
o(∩_∩)o...
只能这样,private的方法只能在本类中引用