修改一个简单的Java程序
public class Bike {
// 对象的标识符
int colour;
int material;
int type;
int a;// 对象的状态属性
// 对象的行为
void ride(){
}
void control(int a){
if(a=number1){
System.out.println("转弯");
}
else if (a=number2){
System.out.println("直行");
}
else (a=number3){
System.out.println("停止");
}
}
public static void main(String[] args) {
int number1 = 1;
int number2 = 2;
int number3 = 3;
int a=new int(3);
a.control();
}
}
2楼的很好,但还有一个错误,系统提示a.control();错误,系统显示如下:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method control(int) in the type Bike is not applicable for the arguments ()
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Administrator
*/
public class Bike {
// 对象的标识符
int colour;
int material;
int type;
int a;// 对象的状灶伏态属性
// 对象的行为
void ride() {
}
void control(int a) {
if (a == number1) {
System.out.println("转弯");
} else if (a == number2) {
System.out.println("直行");
} else if (a == number3) {
System.out.println("停止");
}
}
private int number1 = 1;
private int number2 = 2;
private int number3 = 3;
public static void main(String[] args) {
// int a = new int(3);
// a.control();
Integer a = new Integer(3);
new Bike().control(a);
}
}
number1、number2、number3必须要设置为全局变量才可以使用。
int a = new int(3); int 是一个数据类型,如辩森不是一个类渣亩。所以不能这么用。
应用外部的非静态的变量要使用类的对像。
更改之后, 结果正确!!!
二楼正确 你数亮闭的control()方法是该类Bike的方法,所有你必须实例化一个Bike的对象,也就是new个.才可以调用类中的方法
并不是 int a=new int(3); 而是Bike a = new Bike();(没键圆有复写父类的构薯裂造方法的时候)
如果你复写构造方法
Bike(int a) {
this.a = a;
}
那么new的时候就要传参数进去Bike a = new Bike(3);
public class Bike {
int colour;
int material;
int type;
int a;
Bike(int a) {
this.a = a;
}
void ride() {
}
void control(){
if(a == 1){
System.out.println("转御租扰镇旦弯");
}
else if (a == 2){
System.out.println("直行");
}
else if (a == 3){
System.out.println("型宏停止");
}
}
public static void main(String[] args) {
Bike a = new Bike(3);
a.control();
}
}
public static void main(String[] args) {
int number1 = 1;
int number2 = 2;
int number3 = 3;
Bike a=new Bike();
a.control(1);
a.control(2);
a.control(3);
}
}
2 3楼错误的;类无纳轿腔构造器 怎么能在NEW的帆袭时候传参?只能洞衫在方法里传参
a.control();改为control(a);并且control函数中的number1,2,3直接写为1,2,3.你谈敏这里的number1等根本传不到嫌轿函数含者枝control中