Java 为什么在main方法中创建Err对象不需要声明new?
这是我的两个类Err和ErrorDemoJava 为什么在main方法中创建Err对象不需要声明new?,java,class,object,new-operator,Java,Class,Object,New Operator,这是我的两个类Err和ErrorDemo class Err { String msg; int severity; public Err(String message,int severe) { msg=message; severity=severe; } } public class ErrorDemo { String msgs[]={ "OutPut Error", "Inp
class Err {
String msg;
int severity;
public Err(String message,int severe) {
msg=message;
severity=severe;
}
}
public class ErrorDemo {
String msgs[]={
"OutPut Error",
"Input Error",
"Disk Full",
"Index Out of Bounds"
};
int howBad[]={3,3,2,4};
//return the error message
public Err getErrorMsg(int index) {
if(index>=0&index<msgs.length) {
return new Err(msgs[index],howBad[index]);
} else {
return new Err("Invalid Error Code",0);
}
}
}
我的问题是在Driver类中,我们创建了一个新的ErrorDemo对象,然而,erre;对象不是作为驱动程序中的新对象创建的,而是在ErrorDemo类中创建的。我不明白这里发生了什么,有人能解释一下吗?是的,问题是我对这个样式有点反感,我重新格式化了它,使它更具可读性:)
公共类错误演示{
字符串msgs[]={
“输出错误”,
“输入错误”,
“磁盘已满”,
“索引超出范围”
};
int howBad[]={3,3,2,4};
公共错误getErrorMsg(整数索引){
错误测试=新错误(msgs[索引]、howBad[索引]);
Err invalid=新错误(“无效错误代码”,0);
如果(index>=0&indexerre
,e是一个引用,而不是对象Err.getErrorMsg(2)
创建一个Err
的新实例,并将其返回到ErrorDemo
对象。如果您想喝咖啡,您可以自己做,也可以让别人帮您做。这里也一样。驱动程序可以创建一个新的Err,也可以让另一个对象ErrDemo创建它。如果驱动程序被删除,这个程序会是什么样子ID创建新对象?@ ELI方法GETError Msg()已为您创建对象并将其返回到主()方法中的引用E。这是在主()中不使用新的原因。这是一个答案吗?如果是,请考虑指出问题是什么,并按照这样的准则对问题进行格式化。
public class Driver {
public static void main(String[]args) {
ErrorDemo err=new ErrorDemo();
Err e;
e=err.getErrorMsg(2);
System.out.println(e.msg+" Severity "+e.severity);
e=err.getErrorMsg(19);
System.out.println(e.msg+" Severity "+e.severity);
}
}
public class ErrorDemo {
String msgs[]= {
"OutPut Error",
"Input Error",
"Disk Full",
"Index Out of Bounds"
};
int howBad[]={3,3,2,4};
public Err getErrorMsg(int index) {
Err test=new Err(msgs[index],howBad[index]);
Err invalid=new Err("Invalid Error Code",0);
if(index>=0&index<msgs.length) {
return test;
} else {
return invalid;
}
}
}