我是Java的新手,必须创建一个方法,在二维数组(Project university)中为每个偶数打印出“A”。结果应如下所示:
结果。线条只是为了更好地理解
主要任务说它应该适用于每个字段大小n。
给定是字段变量char[][] field;
和带参数public Pattern(int n)
的构造函数。构造函数是必需的。
1。)第一个问题:
我不确定我是否可以访问构造函数中的变量字段,因为它在其范围内。是否有可能在构造函数中声明字段大小,将其传递给我的方法,最后用期望的结果打印出整个类?
2.)第二个问题:
没有给定的构造函数,替代方案会是什么样的?
这是我的代码:
public class Pattern {
char[][] field;
public Pattern(int n) {
if (n < 5) n = 5;
if (n % 2 == 0) n = n + 1;
field = new char[n][n];
}
public void fillArrayWithA() {
for (int i = 0; i <= 5; i++) {
for (int j = 0; j <= 5; j++) {
if ((i + j) % 2 == 0) {
System.out.println('A');
} else {
System.out.println(' ');
}
}
System.out.println("\n");
}
}
public static void main(String[] args) {
Pattern firstex = new Pattern(5);
firstex.fillArrayWithA();
System.out.println(firstex);
}
}
代码示例会很棒!!
答案 0 :(得分:1)
这是我的解决方案,我已经删除了阵列需要正方形的限制,但很容易添加该要求。我稍后使用 length 属性获取数组的大小。我还添加了一个toString()方法来打印数组。
public class Pattern {
private char [][] field;
public Pattern(int size) {
field = new char [size][size];
}
public void fillField() {
int size = field.length;
for(int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
int value = i+j + 1;
field[i][j] = value % 2 == 0 ? 'A' : ' ';
}
}
}
public String toString() {
int size = field.length;
StringBuilder builder = new StringBuilder(size * size);
for(int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
builder.append(field[i][j]);
builder.append(',');
}
builder.append('\n');
}
return builder.toString();
}
public static void main(String[] args) {
Pattern p = new Pattern(5);
p.fillField();
System.out.print(p);
}
}
为避免构造函数,请让fillField将size作为参数并在那里初始化数组。
public void fillField(int size) {
field = new char [size][size];
....
}
拥有构造函数最好的事情是你知道在使用它之前初始化了成员字段。
答案 1 :(得分:0)
您可以使用维度创建字段,或使用final
。使用this.n
可防止进一步分配字段。 n
允许使用与参数 final char[][] field;
final int n;
public Pattern(int n) {
n = Math.max(5, n) | 1; // If understandable
this.n = n;
field = new char[n][n];
}
public void fillArrayWithA() {
for (int i = 0; i < field.length; i++) { // or n
for (int j = 0; j < n; j++) { // or field[i].length
field[i][j] = (i + j) % 2 == 1 ? 'A' : ' ';
同名的字段。
new int[3]
请注意,i < n
的索引值为0,1,2。因此2018-04-25T10:30:00.677+0000,ERROR,[Control connection] Cannot connect to any host, scheduling retry in 1000 milliseconds
2018-04-25T10:30:01.678+0000,ERROR,[Control connection] Cannot connect to any host, scheduling retry in 2000 milliseconds
2018-04-25T10:30:03.679+0000,ERROR,[Control connection] Cannot connect to any host, scheduling retry in 4000 milliseconds
2018-04-25T10:30:07.679+0000,ERROR,[Control connection] Cannot connect to any host, scheduling retry in 8000 milliseconds
。