

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


这俩段代码就是方法不一样,代码的结果就很不一样,这是为什么?两个方法不都是将两个weight赋值吗??哪里出了问题?
跟类名一样的没有返回类型(void也不需要)的是构造函数,类对象初始化的时候就会被调用(new的时候),构造函数也会有多个,new的时候传入对应的参数就调用对应的构造函数,直接new没有参数就使用无参构造函数;
定义类的时候,没有写构造函数,就是有一个默认的无参构造函数;定义了有参构造函数,无参构造函数就也需要定义,否则不能用无参构造函数;
像你代码中的第二个,只要new Tom(); weight = 18就执行了
其他方法都是要new了之后调用的,比如
Tom tom= new Tom(); tom.Tom();
或者new Tom().Tom();
weight=18才会执行