Java 可以从新对象的类定义中的方法内部访问该对象的私有成员吗?

Java 可以从新对象的类定义中的方法内部访问该对象的私有成员吗?,java,inheritance,private,Java,Inheritance,Private,我的类定义是这样的: public class ArrayBag implements Bag { /** * The array used to store the items in the bag. */ private Object[] items; /** * The number of items in the bag. */ private int numItems; 。。。等等 这是类定义中的一个方法,

我的类定义是这样的:

public class ArrayBag implements Bag {
    /** 
     * The array used to store the items in the bag.
     */
    private Object[] items;

    /** 
     * The number of items in the bag.
     */
    private int numItems;
。。。等等

这是类定义中的一个方法,在该方法中创建该类的新对象:

 //creates and returns an Arraybag that is the union of the called Arraybag and the parameter bag
 public bag unionWith(Bag other) {

     if (other == null)
           throw new IllegalArgumentException(); 

     int cap = this.capacity() + other.capacity();

     //new object created here      
     ArrayBag newbag = new ArrayBag(cap);

     for (int i = 0; i < numItems; i++) {

           if (other.contains(items[i])) 

                 newbag.add(items[i]);

     }

     for (int i = 0; i < newbag.numItems(); i++)

        //Can I use "newbag.items[i]"?
        if (numOccur(newbag.items[i]))


 }
//创建并返回一个Arraybag,该Arraybag是被调用的Arraybag和参数bag的并集
公共包(其他包){
如果(其他==null)
抛出新的IllegalArgumentException();
int cap=this.capacity()+other.capacity();
//在此创建的新对象
ArrayBag-newbag=新的ArrayBag(cap);
对于(int i=0;i
我的问题是,我可以从这个方法定义中访问newbag对象的Object[]项吗?如下所示:newbag.items[i]

您可以访问它

可以这样做:

public class AClass {
    private int privateInteger;
    public AClass() {
        privateInteger = 5;
    }
    // First way 
    public void accessFromLocalInstance() {
        AClass localInstanceOfClass = new AClass()
        int valueOfLocalInstance = localInstanceOfClass.privateInteger;
    }
    // Second way
    public void accessFromInstance(AClass instance) {
        int valueOfInstance = instance.privateInteger;
    }
}
因为

“private”是指仅限于此类,而不限于此对象

请参见,您可以访问它

可以这样做:

public class AClass {
    private int privateInteger;
    public AClass() {
        privateInteger = 5;
    }
    // First way 
    public void accessFromLocalInstance() {
        AClass localInstanceOfClass = new AClass()
        int valueOfLocalInstance = localInstanceOfClass.privateInteger;
    }
    // Second way
    public void accessFromInstance(AClass instance) {
        int valueOfInstance = instance.privateInteger;
    }
}
因为

“private”是指仅限于此类,而不限于此对象

请参见,您可以访问它

可以这样做:

public class AClass {
    private int privateInteger;
    public AClass() {
        privateInteger = 5;
    }
    // First way 
    public void accessFromLocalInstance() {
        AClass localInstanceOfClass = new AClass()
        int valueOfLocalInstance = localInstanceOfClass.privateInteger;
    }
    // Second way
    public void accessFromInstance(AClass instance) {
        int valueOfInstance = instance.privateInteger;
    }
}
因为

“private”是指仅限于此类,而不限于此对象

请参见,您可以访问它

可以这样做:

public class AClass {
    private int privateInteger;
    public AClass() {
        privateInteger = 5;
    }
    // First way 
    public void accessFromLocalInstance() {
        AClass localInstanceOfClass = new AClass()
        int valueOfLocalInstance = localInstanceOfClass.privateInteger;
    }
    // Second way
    public void accessFromInstance(AClass instance) {
        int valueOfInstance = instance.privateInteger;
    }
}
因为

“private”是指仅限于此类,而不限于此对象


请参见

为什么不测试并查看您自己?您已经编写了示例。为什么不自己测试一下呢?您已经编写了示例。为什么不自己测试一下呢?您已经编写了示例。为什么不自己测试一下呢?您已经编写了示例。