在java中创建一个2D数组来存储两种对象

时间:2015-04-03 16:48:49

标签: java arrays inheritance

我有一个超类Agent。超类Agent有两个子类:1。User; 2. Seller。这两个子类是User_actionSeller_action的超类。我想创建两个对象。第一个对象是类User_action。创建此对象的目的是它应该继承类Agent和类User的变量和方法(并且,我希望我实现此目标。)。并且,我创建了类Seller_action中的第二个对象,其中考虑了类似的目标(继承了类Agent和类Seller中的变量和方法。)。

有一次,我创建了这些对象(或我认为的实例)我想将它们存储在2D数组中。我不知道该怎么做。而且,这是我第一次使用java,所以我已经阅读了非常基本的内容,现在我正在尝试改进代码。

现在,我的问题是:我怎样才能存储两种类型的东西。你知道,我想这样做的原因是因为我希望所有对象都出现在地理坐标上,我想知道每个人的坐标或地理位置(x,y)。而且,当我来自MATLAB时,最好的方法是将它存储在Matrix(JAVA中的2D数组)中。

我将不胜感激任何建议。非常感谢!

2 个答案:

答案 0 :(得分:0)

我认为你应该做的是拥有2个超级类:1 - Agent,2 - Action。每个子类有2个子类,动作有一个User值。然后,您可以创建一系列操作

答案 1 :(得分:0)

我相信,您希望以下列方式设计类,以便对象ua和sa(在下面定义)继承其父级的所有值:

Agent是Parent类:

class Agent {  //the parent class

}

类用户是代理

的子类
class User extends Agent{   //user is subclass of Agent
    int Agent_1,Agent_2;
    User()
    {
        Agent_1 = 1;
        Agent_2 = 2;
    }
}

类别卖方是代理

的子类
class Seller extends Agent{   //Seller is sub class of Agent

    int Seller_1, Seller_2;
    Seller()
    {
        Seller_1 = 3;
        Seller_2 = 4;
    }
}

User_action是User

的子类
class User_action  extends User{   //user action is subclass of User
    int UA_1, UA_2;
    User_action()
    {
        UA_1=5; UA_2 = 6;
    }

}

Seller_action是卖方的子类

class Seller_action extends Seller{   //Seller action is subclass of Seller
    int SA_1, SA_2;
    Seller_action()
    {
        SA_1=7; SA_2 = 8;
    }
}

然后创建以下对象(继承其父级的所有值):

User_action ua = new User_action();
Seller_action sa = new Seller_action();

ArrayList<Object>[][] table = new ArrayList[10][10];
table[0][0] = new ArrayList<Object>(); // add another ArrayList object to [0,0]
table[0][0].add(ua); // add object to that ArrayList