类的实例化的小问题,在线等
java文件中
1) Book book1=new Book();
2)
Book book1=new Book(){
public void name(){
System.out.println("is book");
}
};
现问,1 上面二种写法,有何不同呢,
2 第二种写法中,name方法会在new时就执行吗,这与类的构造器有何不同呢,
thanks
[解决办法]
区别在于一个在实例化是在写这个类,一个是先写好一个类在实例化,2中的name方法不会被执行
[解决办法]
// Book类class Book{ private String name; Book(String name) { this.name = name; } public String getName() { return this.name; }}// main里的代码 Book b = new Book("书1") { private String book; public void changeName() { this.book = "哈哈"; } public String getName() { return this.book; } }; System.out.println(b.getName());
[解决办法]
第二个写法毫无意义 The method name() from the type new Test(){} is never used locally
[解决办法]
当然不会执行啦,没有调用这个方法怎么会执行呢?
[解决办法]
Thread thread = new Thread(){ public void run(){ System.out.println("111"); } };
[解决办法]
针对楼主的第二个问题,在new的时候不会执行该方法,他只是声明了这个对象有这个方法,至于执行与否是看程序的调用的啦