java - 与参数具有相同原始类型的构造函数
问题描述
我有一个任务要求我创建一个数据类作为我所有其他类的“节点中心”,例如 LinkedList、Stack 和队列的类以“提供”。我在 Data 类中创建构造函数来处理 LinkedList、Stack 和 Queue 类。在为队列实现构造函数之前,我没有遇到任何问题。在 Data 类的 Stack 部分中,我已经创建了一个公共 Data 构造函数,其中一个 int 作为构造函数中的参数。当我尝试使用 int 作为队列参数创建另一个公共 Data 构造函数时,我收到错误:Data(int) 已在 Data 中定义。这是我的堆栈代码:
/*
STACK WITH AN ARRAY
*/
int size; //initialize size
int stackArray[]; //initialize array
int top; //initialize top
public Data(int size) //constructor
{
this.size = size;
this.stackArray = new int[size];
this.top = -1;
}
这是我的队列代码:
/*
QUEUE WITH AN ARRAY
*/
public int Queue[]; //establish queue array and variables
public int front;
public int rear;
public int queueSize;
public int len;
public Data(int nQueue)//constructor
{
size =nQueue;
len = 0;
Queue = new int[size];
front = -1;
rear = -1;
}
我该如何解决这个问题,以便我可以拥有 2 个具有相同参数类型的构造函数?
解决方案
它们都是 int 类型的构造函数。Java 不关心您命名 int 参数的名称,因此它们看起来像同一个构造函数(至少对 java 而言)。由于您不能有两个具有相同参数的构造函数,因此您有两个选择。
- 给其中一个构造函数一个不同的数据类型参数。
- 给其中一个构造函数另一个参数。(2个论点)
这些中的任何一个都将允许 jvm 区分您的两个构造函数。
推荐阅读
- c - 如何确保所有 malloc 的内存已被释放?
- salesforce-marketing-cloud - 如何通过 FuelSDK-CSharp 触发旅程交互事件?
- python - 给列赋值如何避免警告
- angular - 如果选中复选框,则角度禁用输入
- python - 异质性度量 - Python 中的元分析
- python - lstm中的训练和验证损失和准确性
- javascript - 使用 for-of 分配给数组的元素
- java - 必须按两次 Enter 键才能显示 Java 输出。(使用 .nextLine())
- hybris - Hybris 参考编辑器 - 使用目录版本过滤
- entity-framework-core - ToQuery 是否只适合测试?