为什么我们不需要在main方法中为Err对象的创建声明new



这是我的两个类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",
        "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);
        }
    }
}

在我的驾驶员课程中,我有

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);
    }
}

我的问题是,在Driver类中,我们创建了一个新的ErrorDemo对象,然而,Err e;对象不是作为驱动程序中的新对象创建的,而是在ErrorDemo类中创建的。我不明白这里发生了什么,有人能解释一下吗??

Ya问题只是我对这种风格有点反感,我重新格式化了它,使它更可读:)。

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;
        }
    }
}

最新更新