Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中创建一个2D数组来存储两种对象_Java_Arrays_Inheritance - Fatal编程技术网

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

在java中创建一个2D数组来存储两种对象,java,arrays,inheritance,Java,Arrays,Inheritance,我有一个超类代理。超类代理有两个子类:1。使用者2.卖者这两个子类是User\u action和Seller\u action的超类。我想创建两个对象。第一个对象是类User\u action。创建这个对象的目的是它应该继承类代理和类用户的变量和方法,我希望我正在实现这个目标。。并且,我从类Seller_action创建了第二个对象,并考虑了类似的目标继承类代理和类Seller的变量和方法 一旦创建了这些对象或实例,我相信我希望将它们存储在二维阵列中。我不知道怎么做。这是我第一次尝试使用java

我有一个超类代理。超类代理有两个子类:1。使用者2.卖者这两个子类是User\u action和Seller\u action的超类。我想创建两个对象。第一个对象是类User\u action。创建这个对象的目的是它应该继承类代理和类用户的变量和方法,我希望我正在实现这个目标。。并且,我从类Seller_action创建了第二个对象,并考虑了类似的目标继承类代理和类Seller的变量和方法

一旦创建了这些对象或实例,我相信我希望将它们存储在二维阵列中。我不知道怎么做。这是我第一次尝试使用java,所以我已经阅读了一些非常基本的东西,现在我正在努力改进我的代码

现在,我的问题是:我如何在某物中存储两种类型的OBEJCT。你看,我想这样做的原因是因为我希望所有的物体都在一个地理坐标上,我想知道每个人的坐标或地理位置x,y。我来自MATLAB,最好的方法是用JAVA将其存储在矩阵2D数组中


我将感谢你的建议。非常感谢

我认为你应该做的是有两个超级类:1-代理,2-动作。每个有2个子类,操作有一个用户值。然后,您可以创建一个动作数组

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

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
代理是父类:

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;
    }
}
类卖方是代理的子类

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\u 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;
    }

}
卖方行为是卖方的子类

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

至少你应该写一个错误的代码。那么你的问题到底是什么呢?一个数组只能存储一种数据,所以只能存储来自一个类的一种对象。我需要一个2D数组,可以存储两种对象,即来自两个不同类的对象。我怎样才能做到这一点?或者我甚至可以使用数组来实现它……或者我应该使用JAVA提供的其他东西吗???我无法理解您希望如何存储/访问对象及其数据。你能说得更清楚些吗?您是否希望将object1.value和object2.value1成对存储?非常感谢…这真的帮了大忙…我有一个相当愚蠢的问题。很抱歉,在下面的代码中:ArrayList[][]list1=newarraylist[2][2];在写对象的地方,我不想提到两种不同的对象???嗨,我改变了答案。我认为对象的数组列表是最好的解决方案。一个对象将有两个特性,x坐标和y坐标。你的x=ua.something和y=sa.something不,实际上我更喜欢上一个ArrayList[]list1=new ArrayList[2][2]。当我这样做时,我得到了这个错误:ArrayList[][]类型的表达式需要未经检查的转换才能符合ArrayList[][]我如何使这个二维列表myList=new ArrayList;然后,为每个位置存储一个对象..我已编辑了我的答案..请尝试。这对我来说很好。