为了账号安全,请及时绑定邮箱和手机立即绑定

为什么构造HelloWorld时直接public HelloWorld就可以了。。而且为什么再创建hello2的时候直接运行了。。感觉这一节都很乱。。

如题。。。。。。。。。。还有为什么构造方法那里public HelloWorld一定要与类名同名。。?

正在回答

3 回答

首先,构造方法名和类名相同,是语法规定的,用来表示这是该类的构造方法。类是一种用户自定义的类型,和int,float等在语义上类似,其结构多种多样。当定义一个类的对象时候(例如HelloWorld类的对象hello),编译程序需要根据其所属的类类型为对象分配存储空间。在声明对象时候,可以同时给对象的数据成员赋初值,也可以不用在定义时候赋初值。在java中,定义了一种特殊的成员方法可以在声明对象的时候自动为其赋初值,该方法就是构造方法。所以当你在创建HelloWorld类的一个对象hello时候,系统是自动执行了构造方法。同理,当你再次创建HelloWorld的另一个对象hello2时候,系统一样会自动执行构造方法。即当执行完 HelloWorld hello = new HelloWorld();这条语句时(还没执行下一条语句),系统就已经为你的对象hello初始化了,即自动调用了构造方法HelloWorld();具体怎么初始化,就看你的类的构造方法自己是怎么操作的。当执行完 HelloWorld hello2 = new HelloWorld();这条语句时,编译系统也已经自动的调用构造方法,为对象hello2自动初始化了,所以创建hello2时就是自动运行。其实你可以在main()中,只创建hello对象,就算后面的操作都没有,系统也是自动运行hello的构造函数的,可以自己仿一下。其实在系统里,构造方法是默认存在的。但是当你定义了一个显式的构造方法,即当你自己明确定义public HelloWorld()时,就以你定义的构造方法为主,这就是为何我们可以通过自己定义构造方法来确定一个手机对象的屏幕具体大小。当你没有为对象构造一个构造方法时候,系统就会调用默认的构造方法,这时候就不能在初始化对象时候就确定屏幕具体大小。

3 回复 有任何疑惑可以回复我~
#1

001122 提问者

非常感谢!感激
2015-03-23 回复 有任何疑惑可以回复我~
#2

www6877

我和他有着一样的困惑,我比较笨,看了你的解答两边才看懂,但还是有一个疑问,大神,方法和构造方法区别是啥,当然你有时间解答一下更好,我也还是要往前面复习自己再看看,你的解答很详细,谢谢!
2015-11-03 回复 有任何疑惑可以回复我~

hello  hello2   abc 这都是变量名啊,用哪个都一样,只要符合命名规则。 他new的都是HelloWorld类啊,是同一个类啊。

0 回复 有任何疑惑可以回复我~

一个是构造器一个是实例化,不一样的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么构造HelloWorld时直接public HelloWorld就可以了。。而且为什么再创建hello2的时候直接运行了。。感觉这一节都很乱。。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信