坦率地说,这是家庭作业的一部分。我根本不想作弊。相反,我已经完成了大约 60% 的作业,现在我被困住了,因为我不明白规范中对我必须编写/使用的一种方法的要求。
背景: 作业涉及编写一个包含 2 个类的程序,一个是 main,另一个是 VectorADT。VectorADT 类(简而言之)应该有两个实例变量数组(在此赋值范围内是“向量”)以及一些用于操作这两个数组的实例方法(也存在一些静态方法)。
我的问题: 我必须编写的一种方法是通过添加数组的相应插槽来将两个向量(在这种情况下为数组)相加。假设两个数组的大小相同!我设法完成了所有这些,然后我被要求返回一个 VectorADT,其中包含两个给定 VectorADT 参数 (v1 + v2) 的总和。返回 VectorADT 是什么意思?这不是班级的名字吗?在这种情况下,我传递给这个 add 方法的对象的类型是什么?我实际上不明白我的 return 语句应该在 add 方法中是什么,以及我应该将 return 分配给什么(在我的 main 方法中)。
方法规范: public static VectorADT add(VectorADT v1, VectorADT v2) 生成并返回两个给定 VectorADT 的总和。注意向量加法是通过将每个向量的对应元素相加得到和向量的对应元素来定义的。
参数: v1 - 第一个 VectorADT v2 - 第二个 VectorADT
前提条件:v1和v2引用的VectorADT对象已经实例化,并且大小相同。
返回: 包含两个给定 VectorADT 参数 (v1 + v2) 之和的 VectorADT。
抛出: IllegalArgument - 指示 v1 或 v2 为空。InvalidSizeException - 表示 v1 和 v2 的大小不同。
我写的代码:
class VectorOperations
{
public static void main(String[] args)
{
//blue and yellow are used as an example here.
int [] blue = new int [12];
int [] yellow = new int [12];
//initializes vector array using constructor
VectorADT one = new VectorADT(blue);
//initializes vector array using constructor
VectorADT two = new VectorADT(yello);
//what am i supposed assign my return to?
something????? = VectorADT.add(one, two);
}
}
public class VectorADT
{
private int [] vector;
public VectorADT(int [] intArray)
{
//constructor that initializes instance variable vector.
//vector ends up being the same size as the array in the
//constructors parameter. All slots initialized to zero.
}
public static VectorADT add(VectorADT one, VectorADT two)
{ //I used one and two instead of v1 and v2
//some if statements and try-catch blocks for exceptions i need
//if no exceptions thrown...
int [] sum = new int [one.vector.length]; //one and two are same length
for(int i = 0; i < one.vector.length; i++)
{
sum[i] = one.vector[i] + two.vector[i];
}
return //Totally confused here :(
}
//other methods similar to VectorADT add() also exist...
}
任何帮助或指导将不胜感激。谢谢