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

不是说:java构造方法和类名一定要相同吗?为什么我看见很多构造方法跟类名不完全一致啊?

不是说:java构造方法和类名一定要相同吗?为什么我看见很多构造方法跟类名不完全一致啊?

阿波罗的战车 2019-03-28 22:19:29
比如以下代码。类名不是TestCar_EX才对吗?为什么构造方法名却是Car?我看见很多教程都是这么写的。晕。。。。。。。。。。。到底怎么样才是对的啊?public class TestCar_EX {public static void main(String[] args) {    Car c1 = new Car("red", "xxx");}   }class Car {String color;String brand;public Car(String color, String brand) {    this.color = color;             //这里的this是这个对象的意思.第一个color是这个对象的color属性,第二个是局部变量color    this.brand = brand;             //同上}   void run() {    System.out.printf("I am running...running..running~~~~\n");}   void showMessage() {    System.out.printf("汽车颜色:%s, 汽车品牌:%s\n", color, brand);}   }
查看完整描述

7 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

class Car Car 也是一个java类啊。一个java文件中可以存在多个class但是只能有一个public class


查看完整回答
反对 回复 2019-04-24
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

你这是两个类啊,TestCar_EX只有默认的无参数构造方法,只是为Car添加了构造方法。


查看完整回答
反对 回复 2019-04-24
?
DIEA

TA贡献1820条经验 获得超2个赞

你这是两个类,一个.java文件里只能有一个public修饰的类也就是你的TestCar_EX类,默认是无参的构造方法(不需要自己写),Car也是一个类,你写了他的有参数构造,当然他也有默认的无参构造。不知道这么说你懂没懂...

查看完整回答
反对 回复 2019-04-24
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

构造方法和类名必须一致,参见Java语言规范8.8. Constructor Declarations.

The SimpleTypeName in the ConstructorDeclarator must be the simple name of the class that contains the constructor declaration, or a compile-time error occurs.

这里的simple name就是不带包名的类名,区别于全限定名。


查看完整回答
反对 回复 2019-04-24
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

构造方法(无参/有参-->重载),类文件中类的命名方式,类的实例化过程,先查查这几个知识点的含义,按着实例多操作,一开始可能不太能理解,写多了以后依然就会明白了


查看完整回答
反对 回复 2019-04-24
?
森栏

TA贡献1810条经验 获得超5个赞

意外发现一个比我还菜的新手。。。可喜可贺。。。回去喝点儿啤酒庆祝一下


查看完整回答
反对 回复 2019-04-24
?
www说

TA贡献1775条经验 获得超8个赞

TestCar_EX 这个是main方法入口类,你new的是Car。你理解能力有问题,建议不要重试开发


查看完整回答
反对 回复 2019-04-24
  • 7 回答
  • 0 关注
  • 1823 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信