java - 创建对象的基本java

标签 java

我是java新手,

现在我正在学习java link

当我开始了解对象和类时,

第一部分:

class Bicycle {

    int cadence = 0;
    int speed = 0;
    int gear = 1;

    void changeCadence(int newValue) {
         cadence = newValue;
    }

    void changeGear(int newValue) {
         gear = newValue;
    }

    void speedUp(int increment) {
         speed = speed + increment;   
    }

    void applyBrakes(int decrement) {
         speed = speed - decrement;
    }

    void printStates() {
         System.out.println("cadence:" +
             cadence + " speed:" + 
             speed + " gear:" + gear);
    }
}

这里创建了一个类名“Bicycle”,没有main方法,它包含字段和方法。

第二部分:

class BicycleDemo {
    public static void main(String[] args) {

        // Create two different 
        // Bicycle objects
        Bicycle bike1 = new Bicycle();
        Bicycle bike2 = new Bicycle();

        // Invoke methods on 
        // those objects
        bike1.changeCadence(50);
        bike1.speedUp(10);
        bike1.changeGear(2);
        bike1.printStates();

        bike2.changeCadence(50);
        bike2.speedUp(10);
        bike2.changeGear(2);
        bike2.changeCadence(40);
        bike2.speedUp(10);
        bike2.changeGear(3);
        bike2.printStates();
    }
} 

这里包含main方法并创建了两个对象,但是

为什么在这里创建另一个类“BicycleDemo”

我只是困惑,这是一个简单的问题,

如果有人解释一下,作为像我这样的初学者,这将会有所帮助。

谢谢

最佳答案

BicycleDemo包含public static void main(String [] args)方法,它就像所有Java程序的入口点。

本质上,BicycleDemo充当驱动程序类,供您测试Bicycle类的功能。

看看this了解为什么会有BicycleDemo


合并为一个BicycleDemo.java

class BicycleDemo {
    public static void main(String[] args) {

        // Create two different Bicycle objects
        Bicycle bike1 = new Bicycle();
        Bicycle bike2 = new Bicycle();

        // Invoke methods on those objects
        bike1.changeCadence(50);
        bike1.speedUp(10);
        bike1.changeGear(2);
        bike1.printStates();

        bike2.changeCadence(50);
        bike2.speedUp(10);
        bike2.changeGear(2);
        bike2.changeCadence(40);
        bike2.speedUp(10);
        bike2.changeGear(3);
        bike2.printStates();
    }
}

class Bicycle {

    int cadence = 0;
    int speed = 0;
    int gear = 1;

    void changeCadence(int newValue) { cadence = newValue; }

    void changeGear(int newValue) { gear = newValue; }

    void speedUp(int increment) { speed = speed + increment; }

    void applyBrakes(int decrement) { speed = speed - decrement; }

    void printStates() {
         System.out.println("cadence:" + cadence + " speed:" + 
             speed + " gear:" + gear);
    }
}

选项 2: Bicycle 中的 main 方法

class Bicycle {

    int cadence = 0;
    int speed = 0;
    int gear = 1;

    void changeCadence(int newValue) { cadence = newValue; }

    void changeGear(int newValue) { gear = newValue; }

    void speedUp(int increment) { speed = speed + increment; }

    void applyBrakes(int decrement) { speed = speed - decrement; }

    void printStates() {
         System.out.println("cadence:" + cadence + " speed:" + 
             speed + " gear:" + gear);
    }

    public static void main(String[] args) {

        // Create two different Bicycle objects
        Bicycle bike1 = new Bicycle();
        Bicycle bike2 = new Bicycle();

        // Invoke methods on those objects
        bike1.changeCadence(50);
        bike1.speedUp(10);
        bike1.changeGear(2);
        bike1.printStates();

        bike2.changeCadence(50);
        bike2.speedUp(10);
        bike2.changeGear(2);
        bike2.changeCadence(40);
        bike2.speedUp(10);
        bike2.changeGear(3);
        bike2.printStates();
    }
}

关于java - 创建对象的基本java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30588141/

相关文章:

java - Vaadin 背景图像设置大小?

java - 尝试从我的 SpringBoot 应用程序提供静态内容,但失败

java - 关于 CXF、JAX-RS webservice 的请求和 session 的问题

java - Toplink JPA 继承 - 摘要/详细关系

java - 当类依赖不存在时避免崩溃

java - 为什么这些继承类型被用作参数化类型不兼容类型?

java - Java 中的 JPanel 问题

java - 按位运算符|和+一样吗?

java - Rest模板ResponseEntity主体正在改变变量的类型,如何控制类型?

Java PostMethod 与 xml