Java二维数组构造器与偶数位打印'A'的实现疑问(大学项目)
解答你的Java二维数组项目问题
首先直接给你吃个定心丸:构造器里完全可以访问成员变量field!因为field是你的Pattern类的成员变量,构造器作为类的一部分,不管它的访问修饰符是private、默认还是protected,类内部的构造器、方法都能直接访问它,这完全没问题。
接下来给你一步步实现这个项目的思路和代码示例:
1. 类的结构与构造器实现
首先你的类应该包含成员变量char[][] field,然后在Pattern(int n)构造器里完成数组的初始化和偶数位置的填充。这里先明确:“偶数位置”我默认指的是行索引i和列索引j都为偶数的位置(索引从0开始),如果是其他定义(比如i+j为偶数的位置),你可以直接调整判断条件。
public class Pattern { // 成员变量,用private遵循封装原则 private char[][] field; // 带参数的构造器 public Pattern(int n) { // 先校验n的合法性,避免非法输入 if (n <= 0) { throw new IllegalArgumentException("n必须是正整数哦!"); } // 初始化二维数组为n行n列 field = new char[n][n]; // 遍历数组,填充偶数位置为'A' for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { // 判断是否为偶数位置(i和j都是偶数) if (i % 2 == 0 && j % 2 == 0) { field[i][j] = 'A'; } else { // 非偶数位置填充默认字符,比如'.',方便区分 field[i][j] = '.'; } } } } }
2. 添加打印方法验证结果
为了直观看到效果,你可以加一个打印二维数组的方法:
// 打印图案的公共方法 public void printPattern() { for (char[] row : field) { for (char c : row) { System.out.print(c + " "); } System.out.println(); } }
3. 测试任意尺寸的适配性
你可以在main方法里测试不同n值的效果:
public static void main(String[] args) { // 测试n=5的情况 Pattern pattern5 = new Pattern(5); System.out.println("n=5的图案:"); pattern5.printPattern(); // 测试n=4的情况 Pattern pattern4 = new Pattern(4); System.out.println("\nn=4的图案:"); pattern4.printPattern(); }
关于“偶数位置”的其他可能定义
如果你的项目里“偶数位置”是指二维数组按行展开后的线性位置为偶数(比如第0、2、4...个元素),那把判断条件改成下面这样就行:
// 线性位置 = 当前行索引 * 每行元素数 + 当前列索引 if ((i * field[0].length + j) % 2 == 0) { field[i][j] = 'A'; }
内容的提问来源于stack exchange,提问作者Mel Torment
相关产品推荐
相关产品推荐

