package GroupLinks;import java.util.Stack;
import java.io.*;public class MyDisk {
/**
* Method main
*
*
* @param args
*
*/
//构造函数
MyBlock mb[];
MyDisk(){
int i;
for(i=0;i<50;i++){
mb[i]=new MyBlock();
mb[i].Num=i;
}
}
//显示磁盘空间
boolean DisplaySpace(){
for(int i=0;i<50;i++)
for(int j=0;j<10;j++)
log(mb[j].AssignSign);
return true;
}
void log(String s){
System.out.println(s);
}
void log(int s){
System.out.println(s);
}
public static void main(String[] args) {
int i=0;
MyDisk md = new MyDisk();
PrintStream ps = System.out;
ps.println("文件管理\n" +
"1.新建文件\n" +
"2.删除文件\n" +
"3.检查文件一致性\n" +
"4.显示磁盘空间");
ps.print("请输入你的选择:");
try{
i = System.in.read();
i = i - 48;
}catch(IOException e){
e.printStackTrace();
}
switch(i){
case 1:;break;
case 2:;break;
case 3:;break;
case 4:md.DisplaySpace();break;
}
}
}程序中涉及的类都已创建提示错误:
Exception in thread "main" java.lang.NullPointerException
at GroupLinks.MyDisk.<init><Mydisk.java:20> mb[i]=new MyBlock();
at GroupLinks.Mydisk.main<Mydisk.java:42> MyDisk md = new MyDisk();
不知是什么原因,Main函数其所在的类是什么关系 请高人解答
import java.io.*;public class MyDisk {
/**
* Method main
*
*
* @param args
*
*/
//构造函数
MyBlock mb[];
MyDisk(){
int i;
for(i=0;i<50;i++){
mb[i]=new MyBlock();
mb[i].Num=i;
}
}
//显示磁盘空间
boolean DisplaySpace(){
for(int i=0;i<50;i++)
for(int j=0;j<10;j++)
log(mb[j].AssignSign);
return true;
}
void log(String s){
System.out.println(s);
}
void log(int s){
System.out.println(s);
}
public static void main(String[] args) {
int i=0;
MyDisk md = new MyDisk();
PrintStream ps = System.out;
ps.println("文件管理\n" +
"1.新建文件\n" +
"2.删除文件\n" +
"3.检查文件一致性\n" +
"4.显示磁盘空间");
ps.print("请输入你的选择:");
try{
i = System.in.read();
i = i - 48;
}catch(IOException e){
e.printStackTrace();
}
switch(i){
case 1:;break;
case 2:;break;
case 3:;break;
case 4:md.DisplaySpace();break;
}
}
}程序中涉及的类都已创建提示错误:
Exception in thread "main" java.lang.NullPointerException
at GroupLinks.MyDisk.<init><Mydisk.java:20> mb[i]=new MyBlock();
at GroupLinks.Mydisk.main<Mydisk.java:42> MyDisk md = new MyDisk();
不知是什么原因,Main函数其所在的类是什么关系 请高人解答
改为
MyBlock mb[50];
MyBlock[] mb = new MyBlock[50];
int i;
mb = new MyBlock[50];
for(i=0;i<50;i++){
mb[i]=new MyBlock();
mb[i].Num=i;
}如果是按我刚才的,需要加static.
不是已申请空间了吗?
为什么还要
mb[i]=new MyBlock();
再次申请呢?
如果是构造函数,则可以解释下面引用调用NUM
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
请问:mb = new MyBlock[50];
不是已申请空间了吗?
为什么还要
mb[i]=new MyBlock();
再次申请呢?
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
第一个实例化了一个数组对象,是个数组
第二个实例化了一个数组元素,是个元素
不是已申请空间了吗?
为什么还要
mb[i]=new MyBlock();
再次申请呢?
没有搞清楚数组和元素