java中私有方法的调用

andy920 2008-12-05 08:29:14
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() ,怎样调用?
...全文
571 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
nulang 2008-12-09
  • 打赏
  • 举报
回复
如果让B继承A,然后用A在B中创建个对象,再用这个创建的对象去调用这个私有的方法是不是就可以了呢?
huaihuaihao 2008-12-09
  • 打赏
  • 举报
回复
在A类中写一个public的方法调用私有的discount()
B类中调用那个public的方法就可以间接的调用私有的discount()了
o(∩_∩)o...
只能这样,private的方法只能在本类中引用
zjc_love 2008-12-09
  • 打赏
  • 举报
回复
学习下 访问权限吧
ar7043 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kao331431214 的回复:]
在A类中写一个public的方法调用私有的discount()
B类中调用那个public的方法就可以间接的调用私有的discount()了
o(∩_∩)o...
[/Quote]
顶曲线救国
scott_1987 2008-12-09
  • 打赏
  • 举报
回复
同意楼上的各位高手说的,在A类里面自己再写个public方法,里面调用了discout方法,再在B类里面调用这个共有方法就可以了,建议多学习下private,public,protected的访问权限!例外,多提下,这里你也可以运用下静态工厂法!!
guolimin1118 2008-12-09
  • 打赏
  • 举报
回复
可以利用反射来调用
代码为Method method = clazz.getDeclaredMethod("method",new Class[]{});

method.setAccessible(true);
method.invoke(test,new Object[]{});
NickCheng 2008-12-06
  • 打赏
  • 举报
回复
private 声明的变量或方法,只能在内部调用
如果非要调用就做个public方法返回咯!
hepengqq 2008-12-06
  • 打赏
  • 举报
回复
9楼说得没错
dljthez 2008-12-05
  • 打赏
  • 举报
回复
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的内部类,不然没有办法调用
likgui 2008-12-05
  • 打赏
  • 举报
回复
只能在在本类调用
gongfuliang 2008-12-05
  • 打赏
  • 举报
回复
1、Bb类做为Aa的内部类来调用Aa的私有方法。

2、通过反射,来调用Aa的私有方法
mizukusa 2008-12-05
  • 打赏
  • 举报
回复
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();
}
}
mizukusa 2008-12-05
  • 打赏
  • 举报
回复
或者把他定义为一个内部类
atlight 2008-12-05
  • 打赏
  • 举报
回复
不可能 这就是类的封装
私有方法外面类永远不能访问,除了内置类
要不你就改成public 要不把B设为A的内置类
再也没有其它方法了.

mizukusa 2008-12-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kao331431214 的回复:]
在A类中写一个public的方法调用私有的discount()
B类中调用那个public的方法就可以间接的调用私有的discount()了
o(∩_∩)o...
[/Quote]
正解
wyyl00 2008-12-05
  • 打赏
  • 举报
回复
声明为private的属性的成员,不能在该类以外的任何类代码所访问
kao331431214 2008-12-05
  • 打赏
  • 举报
回复
在A类中写一个public的方法调用私有的discount()
B类中调用那个public的方法就可以间接的调用私有的discount()了
o(∩_∩)o...

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧