java - 如何在一个类中有多个构造函数?
问题描述
我想在一个类中有两个构造函数,但我不能。我知道这是可能的,但我找不到我的错误。
public static class Matrix{
int [][] matrix;
int row;
int column;
String matrixName;
Matrix (String [] input, String name) {
matrixName = name;
column = input.length;
row = input[0].split(",").length;
matrix = new int [row][column];
initialize(input);
}
Matrix (Matrix A, char ch) {
if (ch == 'T'){
column = A.row;
row = A.column;
}
else{
column = A.column;
row = A.row;
}
matrix = new int[row][column];
matrixName = "result";
}
第二个Matrix不能定义为构造函数。
解决方案
第二个构造函数没有问题。问题在于声明的第一行是public static class Matrix
. 请注意,您不能static
在此处使用修饰符。只有public
,abstract
和final
是允许的。
更正后,您可以按如下方式测试您的课程:
class Matrix {
int[][] matrix;
int row;
int column;
String matrixName;
Matrix(String[] input, String name) {
matrixName = name;
column = input.length;
row = input[0].split(",").length;
matrix = new int[row][column];
// initialize(input);
System.out.println("First");
}
Matrix(Matrix A, char ch) {
if (ch == 'T') {
column = A.row;
row = A.column;
} else {
column = A.column;
row = A.row;
}
matrix = new int[row][column];
matrixName = "result";
System.out.println("Second");
}
}
public class Main {
public static void main(String[] args) {
Matrix m1 = new Matrix(new String[] { "a", "b" }, "Hello");
Matrix m2 = new Matrix(m1, 'X');
}
}
输出:
First
Second
推荐阅读
- perl - 在 IO::Socket::SOCKS 代理上使用 IO::Socket::SSL
- templates - 创建针对特定索引 ES 6.x 的 Elasticsearch 模板
- javascript - 如何在Angular 5中实现连接到表中每一行的嵌套手风琴
- javascript - 文件未正确从本地驱动器传输到服务器
- python - 具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all() NLP 管道
- css - 以媒体宽度 768px 居中图像并将文本环绕在其周围
- scheme - SICP 练习 3.52:使用 Scheme (Guile) 是否需要 memo-proc?
- reactjs - 在 React 中插入 unicode 字符
- css - 使定位在图像上的 Div 具有响应性?
- kubectl - 安装和设置 kubectl