看到一段代码
public class Book{
// 私有构造方法
private Book(){}
// 静态公开方法,向图书馆借书
static public Book libraryBorrow(){ // 创建静态方法,返回本类实例对象
return new Book();
}
public static void main(String[] args){
// 创建一个书的对象,不是new实例化的,而是通过方法从图书馆借来的
Book book = Book.libraryBorrow();
}
}
这里的 static public Book libraryBorrow()显然认为返回值类型是Book类型 ,我标题的理解对吗。
你理解的好像是对的....,返回值不是Book类,难道还是其他的?
你调用book类的libraryBorrow()方法,相当于在libraryBorrow()中new了一个Book对象,并对象的引用返回。当你私有化类的构造方法后只可能通过这种方式创建对象,其实和共有构造方法并在mian方法中直接创建对象是一个意思。至于类是什么,建议你看一下《深入理解java虚拟机》。