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”是指仅限于此类,而不限于此对象
请参见为什么不测试并查看您自己?您已经编写了示例。为什么不自己测试一下呢?您已经编写了示例。为什么不自己测试一下呢?您已经编写了示例。为什么不自己测试一下呢?您已经编写了示例。