public  clas  bbs
{
 public void addxml
 
 {....
  int bd = getval();
 ...}private int getval()
{}}bbs kd=new bbs()
kd.addxml()
当调用 addxml时候,可以调用getval()吗?
我是菜鸟,求助各位高手,并告诉我为什么? 非常感谢

解决方案 »

  1.   

    为什么可以乐??不是getval()的修饰符是private吗??
      

  2.   

    看你的入口函数写在哪里如果非 bbs 类 内部 那么无法访问
      

  3.   

    要解释为什么的话呢,可以这样来理解。
    成员的可见性定义相信你应该在所接触的,public是在类以外可以访问,private是在类本身以内才可以访问。以你的这个代码为例:public  clas  bbs 

    public void addxml {.... 
      int bd = getval(); 
    ... } private int getval() 
    {} } 你这个地方忽略了一个很重要的问题,如果加上这个你就好理解多了。public class AAs
    {
        public void AASMethod()
        {
            bbs kd=new bbs() 
            kd.addxml() 
        }
    }很明显用上面的例子来分析:
    方法AASMethod位于类AAs中,AAs类显然是位于bbs类以外的。那么AAs类中的成员就只能访问bbs类的公共成员。所以通过kd可以访问它的公共成员addxml()。
    同样的,通过kd则不能直接访问它的getval()方法。为什么通过addxml可以访问中呢?这就很好理解了,因为addxml是bbs类内部的成员,它当然可以访问任何成员。
      

  4.   

    private 修饰是指对外私有,只要是类自身内部的,private并不能限制引用。