矩阵.java
import java.io.*;
class Matrix {
private int q[][];
public Matrix() {
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
q[i][j] = Integer.parseInt(System.console().readLine());
}
public Matrix( int a , int b ) {
int mat[][] = new int [a][b];
for(int i=0; i<mat.length; i++) {
for(int j=0;j<mat[i].length;j++)
q[i][j] = Integer.parseInt(System.console().readLine());
}
}
public void show() {
for(int i=0; i<q.length; i++) {
for(int j=0;j<q[i].length;j++)
System.out.println(q[i][j]+" ");
}
}
}
使用矩阵.java
class UseMatrix {
public static void main(String args[]) {
Matrix m1 = new Matrix();
System.out.println("First Matrtix ");
m1.show();
Matrix m2 = new Matrix(5,4);
System.out.println("Second Matrtix ");
m2.show();
}
}
此程序在运行时显示NullPointerException错误
我想通过Default Constructors创建一个大小为3*3的2D Array。
然后,我想使用参数化构造函数创建一个大小为5*4的数组。
有许多问题:
>
第一个:private int q[][];//这包含一个空值,从未在无参数构造函数上赋值
。一个可能的解决方案是添加构造函数:q[][]=newint[A][b]
和q[i]=新int[b];//每次进入循环时
。请参阅下面的代码以了解详细信息。
在public Matrix(){
中,第二个尝试在不检查数组长度的情况下访问数组内容(for(inti=0;i
第三,读取< code>console()
时出现问题,所以我也更改了它。(并添加了一行让用户输入数字的内容)
我所做的最后一个更改是对显示方法的一个小调整。
结果:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class App {
public static void main(String[] args) {
Matrix m1 = new Matrix();
System.out.println("First Matrtix ");
m1.show();
Matrix m2 = new Matrix(5,4);
System.out.println("Second Matrtix ");
m2.show();
}
}
class Matrix {
private int q[][];
private BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public Matrix() {
this(3, 3);
}
public Matrix(int a, int b ) {
int value;
System.out.println("Input a number to fill the new 3x3 matrix");
try {
value = Integer.parseInt(br.readLine());
} catch (IOException e) {
throw new RuntimeException("There was a problem reading the number from console", e);
}
q = new int[a][b];
for(int i=0;i<a;i++) {
q[i] = new int[b];
for(int j=0;j<b;j++) {
q[i][j] = value;
}
}
}
public void show() {
for(int i=0; i<q.length; i++) {
for(int j=0;j<q[i].length;j++)
System.out.print(q[i][j]+" ");
System.out.print("\n");
}
}
}
我想在构造函数中初始化二维数组。但是,我在类中声明数组的实例变量时遇到了一个问题。如果我这样做就错了: 我怎么解决这个问题?
问题内容: 我有一堂课,在那堂课我有: 然后在我的构造函数中: 如果这样做,一切正常。默认数据值已初始化,但如果我改为这样做: 它说: 为什么? 在构造函数内部初始化数组的最佳方法是什么? 问题答案: 这已经将您的数组元素初始化为0。您无需在构造函数中再次重复该操作。 在您的构造函数中,它应该是:
我试图从WebClient中替换RestTemplate,因为根据Java文档,RestTemple将被弃用。Spring团队建议尽可能使用WebClient。 之前的RestTempalte代码如下 我想从WebClient替换RestTemplate。所以我实现了类WebClientConnection,如下所示 我使用这个依赖项 Webclient create 上有堆栈溢出错误 如何正确地
问题内容: 我有两个班,第一个是我的主班,第二个是我的编辑框架班。 我的第二个类(UpdateGUI)在其构造函数中提供oldName,并对其进行编辑,当我单击时,它将newName发送给我的第一个类。 我的第二堂课: 我的问题是,为什么newName为null? 更新: UpdateGUIDialog类: 输出: 我需要打印而不是null。 问题答案: Java对象有点像真实对象。并顾名思义:它
问题内容: 在Java中,但是在其他OO语言中,初始化属性定义之间也有区别,例如 并使用构造函数对其进行初始化? 我想不出任何实际的区别,有没有?否则,即使结果相同,是否存在一种方法优于另一种方法的情况? 问题答案: 初始化顺序在这里很重要。 将字段设置为默认初始值(0,false,null) 调用对象的构造函数(但不要执行构造函数的主体) 调用超类的构造函数 使用初始化程序和初始化块初始化字段
我有一个类定义为 由于类中有一个const成员,编译器会隐式删除默认的复制构造函数。需要给它一个参数进行初始化。 问题出现在课堂上 这个类包含前面类对象的std::array。如何初始化这个数组?大小参数需要给std::array的每个元素来初始化。我想将std::array的每个元素设置为。 当然,我可以使用初始值设定项列表,但由于构造函数有12个元素和其他参数,代码变得越来越难看。此外,我用6