Java 如何从同一类中的其他方法访问ArrayList而不传递参数?
我试图让我的方法“add”访问在方法“Friends”中创建的ArrayList的内容,但是Java对我所做的不满意(范围问题?)。有没有一种不需要传递参数就能解决问题的方法Java 如何从同一类中的其他方法访问ArrayList而不传递参数?,java,arraylist,scope,arguments,Java,Arraylist,Scope,Arguments,我试图让我的方法“add”访问在方法“Friends”中创建的ArrayList的内容,但是Java对我所做的不满意(范围问题?)。有没有一种不需要传递参数就能解决问题的方法 public class Friends { public Friends(float x, float y) { ArrayList<MyObject> arrayList = new ArrayList<MyObject>(); MyObj
public class Friends {
public Friends(float x, float y)
{
ArrayList<MyObject> arrayList = new ArrayList<MyObject>();
MyObject[] friendList = new MyObject[20];
}
public void add()
{
for (int i = 0; i < 20; i++) {
//friendList[i]
}
}
}
公共课好友{
公共好友(浮动x,浮动y)
{
ArrayList ArrayList=新的ArrayList();
MyObject[]好友列表=新的MyObject[20];
}
公共无效添加()
{
对于(int i=0;i<20;i++){
//友人名单[i]
}
}
}
请注意,Friends是一个构造函数(如果我用的是正确的话)显然,在这种情况下,您应该使用所谓的“对象变量”,或者简单地说是类的-fields。您应该将变量
arrayList
作为字段作为类的一部分:
public class Friends {
List<MyObject> arrayList;
public Friends(float x, float y)
{
arrayList = new ArrayList<MyObject>();
MyObject[] friendList = new MyObject[20];
}
public void add()
{
for (int i = 0; i < 20; i++) {
//arrayList.add(...).
}
}
}
公共课好友{
列表数组列表;
公共好友(浮动x,浮动y)
{
arrayList=新的arrayList();
MyObject[]好友列表=新的MyObject[20];
}
公共无效添加()
{
对于(int i=0;i<20;i++){
//arrayList.add(…)。
}
}
}
显然,在这种情况下,您应该使用所谓的“对象变量”,或者简单地说是类的-fields。您应该将变量arrayList
作为字段作为类的一部分:
public class Friends {
List<MyObject> arrayList;
public Friends(float x, float y)
{
arrayList = new ArrayList<MyObject>();
MyObject[] friendList = new MyObject[20];
}
public void add()
{
for (int i = 0; i < 20; i++) {
//arrayList.add(...).
}
}
}
公共课好友{
列表数组列表;
公共好友(浮动x,浮动y)
{
arrayList=新的arrayList();
MyObject[]好友列表=新的MyObject[20];
}
公共无效添加()
{
对于(int i=0;i<20;i++){
//arrayList.add(…)。
}
}
}
让你的变量成为朋友类的成员变量:
public class Friends {
ArrayList<MyObject> arrayList;
MyObject[] friendList;
public Friends(float x, float y)
{
arrayList = new ArrayList<MyObject>();
friendList = new MyObject[20];
}
public void add()
{
for (int i = 0; i < 20; i++) {
//friendList[i]
}
}
}
公共课好友{
ArrayList ArrayList;
MyObject[]朋友列表;
公共好友(浮动x,浮动y)
{
arrayList=新的arrayList();
friendList=新的MyObject[20];
}
公共无效添加()
{
对于(int i=0;i<20;i++){
//友人名单[i]
}
}
}
让你的变量成为朋友类的成员变量:
public class Friends {
ArrayList<MyObject> arrayList;
MyObject[] friendList;
public Friends(float x, float y)
{
arrayList = new ArrayList<MyObject>();
friendList = new MyObject[20];
}
public void add()
{
for (int i = 0; i < 20; i++) {
//friendList[i]
}
}
}
公共课好友{
ArrayList ArrayList;
MyObject[]朋友列表;
公共好友(浮动x,浮动y)
{
arrayList=新的arrayList();
friendList=新的MyObject[20];
}
公共无效添加()
{
对于(int i=0;i<20;i++){
//友人名单[i]
}
}
}
你的猜测是正确的。这里的问题是范围界定。您正在构造函数中创建局部变量arrayList
,该变量仅在构造函数中可用
您应该将其声明为一个实例变量,如下所示:
public class Friends {
ArrayList<MyObject> arrayList; = new ArrayList<MyObject>();
MyObject[] friendList; = new MyObject[20];
public Friends(float x, float y)
{
this.arrayList = new ArrayList<MyObject>();
this.friendList = new MyObject[20];
}
public void add()
{
for (int i = 0; i < 20; i++) {
//friendList[i]
}
}
公共课好友{
ArrayList ArrayList;=新的ArrayList();
MyObject[]好友列表;=新的MyObject[20];
公共好友(浮动x,浮动y)
{
this.arrayList=新的arrayList();
this.friendList=新的MyObject[20];
}
公共无效添加()
{
对于(int i=0;i<20;i++){
//友人名单[i]
}
}
}你的猜测是正确的。这里的问题是范围界定。您正在构造函数中创建局部变量
arrayList
,该变量仅在构造函数中可用
您应该将其声明为一个实例变量,如下所示:
public class Friends {
ArrayList<MyObject> arrayList; = new ArrayList<MyObject>();
MyObject[] friendList; = new MyObject[20];
public Friends(float x, float y)
{
this.arrayList = new ArrayList<MyObject>();
this.friendList = new MyObject[20];
}
public void add()
{
for (int i = 0; i < 20; i++) {
//friendList[i]
}
}
公共课好友{
ArrayList ArrayList;=新的ArrayList();
MyObject[]好友列表;=新的MyObject[20];
公共好友(浮动x,浮动y)
{
this.arrayList=新的arrayList();
this.friendList=新的MyObject[20];
}
公共无效添加()
{
对于(int i=0;i<20;i++){
//友人名单[i]
}
}
}friendList应该是实例字段而不是构造函数中的局部变量friendList应该是实例字段而不是构造函数中的局部变量“Global”有误导性。它是一个实例或成员变量。你完全正确。我将它更改为实例变量。谢谢,“全球”是误导。它是一个实例或成员变量。你完全正确。我将它更改为实例变量。谢谢