Java 如何在每次调用方法时递增变量

Java 如何在每次调用方法时递增变量,java,Java,我只是在学习阶段&在这里我使用一些多态技术。代码如下: package com.company; class Car{ private String name; private int cylinder; private boolean engine; private int wheels; public Car(String name, int cylinder) { this.name = name; this.cyl

我只是在学习阶段&在这里我使用一些多态技术。代码如下:

package com.company;
class Car{
    private String name;
    private int cylinder;
    private boolean engine;
    private int wheels;

    public Car(String name, int cylinder) {
        this.name = name;
        this.cylinder = cylinder;
        this.engine = true;
        this.wheels = 4;
    }

    public String startEngine(int fuel){
        if(fuel>0){
            return "Start button pressed";
        } else{
            return "First fill some fuel";
        }
    }

    public String accelerate(int speed){
        return "Car is accelerated with speed " + speed;
    }

    public String brake(int speed){
        return "Brake is presses. Now speed is " + speed;
    }

    public String getName() {
        return name;
    }

    public int getCylinder() {
        return cylinder;
    }
}

class Fortuner extends Car{
    public Fortuner() {
        super("Fortuner", 4);
    }

    @Override
    public String accelerate(int speed) {
        return "Fortuner is accelerated with speed " +speed;
    }

    @Override
    public String brake(int speed) {
        return "Now your Fortuner is moving with " + speed + " kph";
    }
}

class Hondacity extends Car{
    public Hondacity() {
        super("Hinda City", 6);
    }

    @Override
    public String accelerate(int speed) {
        return "Honda City is accelerated with speed " +speed;
    }

    @Override
    public String brake(int speed) {
        return "Now your Honda City is moving with " + speed + " kph";
    }
}

class Omni extends Car{
    public Omni() {
        super("Omni", 1);
    }

    @Override
    public String accelerate(int speed) {
        return "Omni is accelerated with speed " +speed;
    }

    @Override
    public String brake(int speed) {
        return "Now your Omni is moving with " + speed + " kph";
    }
}

public class Main {

    public static void main(String[] args) {
        for(int j=0; j<3; j++){
            Car car = speedup();
            System.out.println(car.accelerate(50));
        }

    }

    public static Car speedup() {
        for(int i=0; i<3; i++){
            switch(i){
                case 0: return new Fortuner();
                case 1: return new Hondacity();
                case 2: return new Omni();
            }
        }
        return null;
    }

}
package.com公司;
班车{
私有字符串名称;
私人内特缸;
私有布尔引擎;
私家车;
公共汽车(字符串名称,内部气缸){
this.name=名称;
这个圆柱=圆柱;
这个引擎=真;
这是4个轮子;
}
公共字符串startEngine(内部燃料){
如果(燃油>0){
返回“按下启动按钮”;
}否则{
返回“先加油”;
}
}
公共字符串加速(整数速度){
返回“汽车加速”+速度;
}
公共串制动器(内部速度){
return“刹车是压下的,现在速度是”+速度;
}
公共字符串getName(){
返回名称;
}
公共int getCylinder(){
回程气缸;
}
}
富兰克林级轿车{
公共财富{
超级(《财富》,4);
}
@凌驾
公共字符串加速(整数速度){
返回“财富加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在你的幸运者正以“+速度+”kph”移动”;
}
}
洪都拉斯级轿车{
公共洪都拉斯(洪都拉斯){
超级(“印度城”,6);
}
@凌驾
公共字符串加速(整数速度){
返回“本田城以速度加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在您的本田城市正以“+速度+每小时”的速度移动”;
}
}
奥姆尼级轿车{
公共全方位{
超级(“全方位”,1);
}
@凌驾
公共字符串加速(整数速度){
返回“全向加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在您的泛光灯正以“+速度+”kph”移动”;
}
}
公共班机{
公共静态void main(字符串[]args){
对于(int j=0;j你的方法
speedup()
总是返回一个Fortuner,因为它再也不会返回了。
return
命令总是退出循环。因此,如果你想得到所有的类,你必须这样做:

public static void main(String[] args) {
     for(int ID=0; ID<3; ID++){
         Car car = speedup(ID);
         System.out.println(car.accelerate(50));
     }

}

public static Car speedup(int ID) {
     switch(i){
     case 0: return new Fortuner();
     case 1: return new Hondacity();
     case 2: return new Omni();
     }
     return null;
}
publicstaticvoidmain(字符串[]args){
对于(int ID=0;ID在您的方法speedup()中,每次j的值都是0。因此它总是返回Fortuner。我删除了这个方法来解决它

class Car {
        private String name;
        private int cylinder;
        private boolean engine;
        private int wheels;

        public Car(String name, int cylinder) {
            this.name = name;
            this.cylinder = cylinder;
            this.engine = true;
            this.wheels = 4;
        }

        public Car() {
        }

        public String startEngine(int fuel){
            if(fuel>0){
                return "Start button pressed";
            } else{
                return "First fill some fuel";
            }
        }

        public String accelerate(int speed){
            return "Car is accelerated with speed " + speed;
        }

        public String brake(int speed){
            return "Brake is presses. Now speed is " + speed;
        }

        public String getName() {
            return name;
        }

        public int getCylinder() {
            return cylinder;
        }
    }

    class Fortuner extends Car{
        public Fortuner() {
            super("Fortuner", 4);
        }

        @Override
        public String accelerate(int speed) {
            return "Fortuner is accelerated with speed " +speed;
        }

        @Override
        public String brake(int speed) {
            return "Now your Fortuner is moving with " + speed + " kph";
        }
    }

    class Hondacity extends Car{
        public Hondacity() {
            super("Hinda City", 6);
        }

        @Override
        public String accelerate(int speed) {
            return "Honda City is accelerated with speed " +speed;
        }

        @Override
        public String brake(int speed) {
            return "Now your Honda City is moving with " + speed + " kph";
        }
    }

    class Omni extends Car{
        public Omni() {
            super("Omni", 1);
        }

        @Override
        public String accelerate(int speed) {
            return "Omni is accelerated with speed " +speed;
        }

        @Override
        public String brake(int speed) {
            return "Now your Omni is moving with " + speed + " kph";
        }
    }

    public class Main {

        public static void main(String[] args) {
            for(int j=0; j<3; j++){
                Car car = null;
                switch (j) {
                case 0: car = new Fortuner();
                    break;
                case 1: car = new Hondacity();
                    break;
                case 2: car = new Omni();
                    break;
                }
                System.out.println(car.accelerate(50));
            }

        }

    }
等级车{
私有字符串名称;
私人内特缸;
私有布尔引擎;
私家车;
公共汽车(字符串名称,内部气缸){
this.name=名称;
这个圆柱=圆柱;
这个引擎=真;
这是4个轮子;
}
公共汽车{
}
公共字符串startEngine(内部燃料){
如果(燃油>0){
返回“按下启动按钮”;
}否则{
返回“先加油”;
}
}
公共字符串加速(整数速度){
返回“汽车加速”+速度;
}
公共串制动器(内部速度){
return“刹车是压下的,现在速度是”+速度;
}
公共字符串getName(){
返回名称;
}
公共int getCylinder(){
回程气缸;
}
}
富兰克林级轿车{
公共财富{
超级(《财富》,4);
}
@凌驾
公共字符串加速(整数速度){
返回“财富加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在你的幸运者正以“+速度+”kph”移动”;
}
}
洪都拉斯级轿车{
公共洪都拉斯(洪都拉斯){
超级(“印度城”,6);
}
@凌驾
公共字符串加速(整数速度){
返回“本田城以速度加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在您的本田城市正以“+速度+每小时”的速度移动”;
}
}
奥姆尼级轿车{
公共全方位{
超级(“全方位”,1);
}
@凌驾
公共字符串加速(整数速度){
返回“全向加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在您的泛光灯正以“+速度+”kph”移动”;
}
}
公共班机{
公共静态void main(字符串[]args){

对于(intj=0;jj欢迎使用堆栈溢出!您在问题中发布了许多代码,这使我们(以及未来的读者)不清楚问题的确切位置。请将您的问题代码减少到10行或更少。请参阅:和。谢谢杜克!您让问题变得非常简单。您能告诉我您如何开发算法吗?我的意思是如何改进它。@Brijesh Maurya我也在学习java。您将看到,java的工作原理有一些规则。一个例子是,
return
始终完成当前的方法。您练习编程越多,学习的规则越多,每一条规则都会让您更好地理解程序中发生的事情。事实上,这是一种奇妙的感觉,所以请继续学习;)