Java中public和void方法的问题

img

img

这俩段代码就是方法不一样,代码的结果就很不一样,这是为什么?两个方法不都是将两个weight赋值吗??哪里出了问题?

跟类名一样的没有返回类型(void也不需要)的是构造函数,类对象初始化的时候就会被调用(new的时候),构造函数也会有多个,new的时候传入对应的参数就调用对应的构造函数,直接new没有参数就使用无参构造函数;
定义类的时候,没有写构造函数,就是有一个默认的无参构造函数;定义了有参构造函数,无参构造函数就也需要定义,否则不能用无参构造函数;
像你代码中的第二个,只要new Tom(); weight = 18就执行了

其他方法都是要new了之后调用的,比如
Tom tom= new Tom(); tom.Tom();
或者new Tom().Tom();
weight=18才会执行

第一个是方法,需要主动执行,第二个是构造函数,创建对象的时候调用。所以两者不一样。望采纳!

这就跟玩具枪和真枪的区别,看起来差不多,完全不是一回事儿;
一个是普通方法,一个是构造函数;
一个是对象的某种行为,一个是创建某个对象