用Eclipse运行java程序,出现下面这些语句是什么意思啊?

是计算两个随机生成的10*10矩阵乘积的,各位大虾帮忙啊
class MatrixMultiply{
protected double[][] m1,m2,m3;
private int i,j,k;
public MatrixMultiply(){
for(i=0;i<10;i++){
for(j=0;j<10;j++){
m1[i][j]=Math.random();
m2[i][j]=Math.random();
}
}
}
public double[][] matrixmultiply(){
for(i=0;i<10;i++){
for(j=0;j<10;j++){
for(k=0;k<10;k++){
m3[i][j]+=m1[i][k]*m2[k][j];
}
}
}
return m3;
}
}
class PrintMatrix{
private int i,j;
private double[][] matrix;
public PrintMatrix(double[][] matrix){
this.matrix=matrix;
}
public void printmatrix(){
for(i=0;i<10;i++){
for(j=0;j<10;j++){
System.out.print(matrix[i][j]+" ");
}
System.out.println();
}
}
}
public class TestMatrix {
public static void main(String[] args) {
MatrixMultiply a=new MatrixMultiply();
PrintMatrix b1=new PrintMatrix(a.m1);
PrintMatrix b2=new PrintMatrix(a.m2);
PrintMatrix b3=new PrintMatrix(a.matrixmultiply());
b1.printmatrix();
b2.printmatrix();
b3.printmatrix();
}
}
出现的问题是
Exception in thread "main" java.lang.NullPointerException
at MatrixMultiply.<init>(TestMatrix.java:7)
at TestMatrix.main(TestMatrix.java:40)

class MatrixMultiply {
protected double[][] m1=new double[10][10], m2=new double[10][10], m3=new double[10][10];

private int i, j, k;

public MatrixMultiply() {
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
m1[i][j] = Math.random();
m2[i][j] = Math.random();
}
}
}

public double[][] matrixmultiply() {
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
for (k = 0; k < 10; k++) {
m3[i][j] += m1[i][k] * m2[k][j];
}
}
}
return m3;
}
}

class PrintMatrix {
private int i, j;

private double[][] matrix;

public PrintMatrix(double[][] matrix) {
this.matrix = matrix;
}

public void printmatrix() {
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}

public class TestMatrix {
public static void main(String[] args) {
MatrixMultiply a = new MatrixMultiply();
PrintMatrix b1 = new PrintMatrix(a.m1);
PrintMatrix b2 = new PrintMatrix(a.m2);
PrintMatrix b3 = new PrintMatrix(a.matrixmultiply());
b1.printmatrix();
b2.printmatrix();
b3.printmatrix();
}
}

看这个程序的第二行.....楼主没有实例化这三个数组..

也就是说没有给它们在内存中分配地址空间就使用....

当然就出现空错误了...

我已经帮楼主改过了..运行调试没有任何问题...

祝楼主早日成功!
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-10
运行JAVA程序,首要要有一定的格式,就像写信要有写信的开头一样。你把所有的程序都放在public static void main(String[] args) {}里面
第2个回答  2009-04-10
是空指针异常吧,数组m1 m2 m3 都没有初始化啊 就直接在构造方法里面用了
定义时候最好指定二维数组的维数
第3个回答  2009-04-10
java语言的开始语句是一个
public static void main(String[] args){
语句体。。。。
}
的方法,你将你写的东西放在这个里面才能运行
但是你这个程序要运行的话,你要把获得随机数的几个类写在main方法外面,将输出的语句,就是System.out.println();这个放在main里面,在maim方法里面调用你的类,获得值,再进行输出
比如 public static void main(String[] args){

int = matrixmultiply();
System.out.println(s3+“”);
)
你的s3是一个返回数组类型的,就可以输出数组了~!!!
第4个回答  2009-04-10
at TestMatrix.main(TestMatrix.java:40)
第四十行有问题
at MatrixMultiply.<init>(TestMatrix.java:7) 第七行有问题
第5个回答  2009-04-11
意思是你的代码出现了空指针异常 在第40行中

eclipse 中写java程序遇到的Unreachable code
语句一;break;case 1:语句二;break;default: return;} 这样改。case 语句块,如果不加最后 的 break;语句的话,执行完 case 语句块后会继续执行紧接着的下一个case 语句块。所以按你的写法:如果 case 0 成功,就会先执行 语句一,然后执行 语句二,然后执行 default 里面的return。如果 case 1 ...

eclipse里面这个框框出现的时候怎么调出下面这些,见图!
你先按一个p , 然后按组合键alt + \/ 。 就会出现eclipse的自动提示。这是eclipse自带的很方便的自动补全功能。 可以提高编码效率, 不过不建议新手用, 为了加深印象 新手还是手打吧。

用eclipse 做JAVA聊天系统 Server启动后运行Client Server端出现java.n...
可能是连接语句出错了,好好检查一下细节方面 例如:服务器端需要指定一个确定的端口号来创建创建服务器对象 Socket socket = new Socket("168.150.12.53",9999);并用此端口号进行监听。。Socket s = server.accept() ; \/\/ 监听窗口,等待连接 或:Socket socket = new Socket(InetAddress.get...

...技术的时候看到了break语句,然后自己在eclipse上跑了如下代码:_百 ...
因为你while写的是true,一定会进入循环体,所以a一定会初始化,而for循环写的是条件,不一定会进循环体,所以会报错

如何看Eclipse的错误
可以在Eclipse的console控制台面板下面看 可以在编译之前打开problem面板,查看编译不通过的原因 Eclipse自己有一些日志文件,你可以到下面的目录下面去log文件,查看报错语句 乜可以使用一些日志工具,例如使用log4j来调试查看错误

java 程序中的三种错误类型分别是什么?
程序中可能有三种错误:语法错误;运行时错误;语义错误。一、语句的语法必须是正确的,才能被计算机控制。否则,将中断执行进程,并返回错误消息。语法是指程序语句的组成。遵守语言规则。例如,下列语句在语法上是正确的:> > >,a = b - c。二、它的意思是把b-c赋给变量a,如果你把这个表达式写成“...

用Eclipse编程时,怎样显示下拉列表
1. 打开Eclipse,然后“window”→“Preferences”2. 选择“java”,展开,“Editor”,选择“Content Assist”。3. 选择“Content Assist”,然后看到右边,右边的“Auto-Activation”下面的“Auto Activation triggers for java”这个选项。其实就是指触发代码提示的就是“.”这个符号.4. “Auto ...

java问题 File f = new File(".");什么意思?
用eclipse执行java程序,相当于如下命令行执行。F:\\Eclipse>java -classpath .\/bin DirList 《Thinking in java》中应该指的是下面的执行方式。F:\\Eclipse\\bin>java -classpath . DirList或者F:\\Eclipse\\bin>java DirList 两种方式,java命令执行时,所在的目录不同,结果自然不同。

怎么样分辨eclipse控制台的信息哪些是错误的?
java.lang.Error 错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。 java.lang.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。 java.lang.IllegalAccessErr...

用eclipse写Java程序第二十行:if(a[i]
你好!在if语句中,当 i=9时,i+1=10,此时数组下标越界啦!!!解决办法:请把for循环中的循环条件改为" i

相似回答