Java中的主要类。叫什么?

时间:2013-10-17 18:53:23

标签: java main

这是代码:

public class Main {
   public static void main(String[] args) {
        new Picture().edit();
    }
}

为什么图片前面有括号?

有一个Picture类,它有一个编辑方法,但图片类也有一个Picture方法。

这里发生了什么?

是否正在创建Picture类,调用其picture方法,同时还调用edit方法?

由于

4 个答案:

答案 0 :(得分:4)

你在这里所做的就是通过无参数(可能是默认的)构造函数创建一个Picture实例。随后,在刚刚创建的实例上调用edit()方法。由于您没有将Picture实例存储在任何地方,因此在方法调用完成后,它可以直接进行垃圾收集。

出于所有实际目的,您可以将代码编写为

Picture picture = new Picture();

picture.edit();

请注意,代码段中的任何位置都不涉及Picture 方法constructorsmethods之间存在差异。


  

为什么图片前面有括号?

这只是Java中对象创建的语法。很明显,如果Picture构造函数有一些参数,那么我们肯定需要这些括号:

new Picture(someArg)

但是我们甚至需要带有0-arg构造函数的括号这一事实纯粹是一种语言设计决策。我相信像Scala这样的语言(也可以在JVM上运行),你可以在不使用括号的情况下逃脱。

答案 1 :(得分:2)

new Picture()正在实例化一个新的图片对象,它会调用它的构造函数。 .edit();是一种立即调用的方法。

由于edit()不是静态的,因此需要从实例化的类运行。

与输入

相同
Picture pic = new Picture();
pic.edit();

唯一的区别是pic可以在以后重用,而不必每次都实例化和构造一个新的Picture对象。

new Picture().edit();通过{{1}}调用它有利于对事物进行一次性调用,因为垃圾收集一旦完成执行就会很小心。

答案 2 :(得分:2)

您正在调用Picture类构造函数,然后调用edit()函数。如果有一个名为Picture的函数从未调用过。如果想要,你可以打电话。

Picture pic = new Picture();
pic.edit(); // call edit function

Picture pic = new Picture();
pic.Picture(); // call picture function

答案 3 :(得分:1)

这是构造函数,它创建一个新的Picture对象。如果构造函数有任何参数,它们将进入括号内。

new Picture()

这里我们在新创建的图片对象上调用edit方法:

new Picture().edit();

由于未保存Picture对象,因此之后会丢失。如果你只想进行这个方法调用,那可能没问题。