java中创建一个对象

publicclassBike{//对象的标识符intcolour;intmaterial;inttype;inta;//对象的状态属性//对象的行为Bike(inta)... public class Bike {
// 对象的标识符
int colour;
int material;
int type;
int a;// 对象的状态属性

// 对象的行为
Bike(int a) {
this.a = a;

}

void ride() {
}

void control(int a) {
if (a == 1) {
System.out.println("转弯");
}
else if (a == 2) {
System.out.println("直行");
}
else if (a == 3) {
System.out.println("停止");
}
else {
System.out.println("对不起,此命令不存在");
}
}

public static void main(String[] args) {
Bike a = new Bike();
a.control(1);
}

}
为什么在Bike a = new Bike();时,系统提示The constructor Bike() is undefined
展开
 我来答
zhaotao_king
推荐于2017-09-25 · TA获得超过2455个赞
知道大有可为答主
回答量:863
采纳率:0%
帮助的人:1150万
展开全部
错误代码是下面这行
Bike a = new Bike();
java构造方法机制是,如果类中不写构造方法,那么默认构造方法为(已你的类为例)
public Bike() {

}
像你这样自定义了一个构造方法
Bike(int a) {
this.a = a;

}
自定义构造方法后,默认构造方法不存在了。
由此可得,你的错误有2中解决方法
1.再写一个空构造方法
Bike() {}
2.创建对象时带参数

Bike a = new Bike(1);

另外对象名尽量不要和全局变量命名一样,虽然程序不错,但容易混淆!
希望对你有所帮助,有什么其他疑问你也可以百度HI我
物欲他们比
2010-04-14 · TA获得超过269个赞
知道答主
回答量:176
采纳率:0%
帮助的人:82.6万
展开全部
你的构造方法带参数了的, 构造方法不同于普通的行为方法, 构造方法在你NEW这个对象的时间JAVA虚拟机会自动调用,你没传参数 ,所以报错, 改为Bike a = new Bike(1);

或者写一个空的构造方法, 把你写的构造方法删了, 默认会提供一个无参数的构造方法 。。 希望你明白了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
应笑郎04
2010-04-14 · TA获得超过1976个赞
知道小有建树答主
回答量:1397
采纳率:100%
帮助的人:658万
展开全部
因为java类一般会自带一个无参数的构造器,
但是如果你显示的定义了构造器
不管是无参数还是有参数的都会以显示的为准!
那么你的程序里刚好有一个显示的构造器
Bike(int a) {
this.a = a;
}
那么在实例化在对象时就只能采用该构造器!
构造器也是函数 因此必须正确使用!
也就是说你必须带一个int型的参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zuoro803
2010-04-14 · TA获得超过202个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:147万
展开全部
Bike(int a) {
this.a = a;

}

构造器带参数
Bike a = new Bike(100);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月末班
2020-11-17
知道答主
回答量:1
采纳率:0%
帮助的人:556
展开全部
你没有提供空参构造器,加上就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式