用于创建对象的基本java

时间:2015-06-02 05:38:16

标签: java

我是java新手,

现在我从这个link

学习java

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

第一部分:

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"

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

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

谢谢,

6 个答案:

答案 0 :(得分:1)

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: 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();
    }
}

答案 1 :(得分:1)

最简单的答案是,如果你把所有内容都放在一个类中,那么当你编写新代码时,你必须立刻担心一切。这可能适用于小型项目,但对于大型应用程序(我们正在谈论数十万行),这很快就会变得不可能。

要解决此问题,您需要将各种功能分解到自己的类中并封装所有逻辑。然后,当您想要在类上工作时,您不需要考虑代码中还有其他内容。你可以专注于那一小段代码。这对于高效工作是非常宝贵的,但是如果不对巨大的应用程序进行处理,很难理解。

当然,将代码分解成更小的部分还有无数其他好处:代码更易于维护,更可测试,更可重用等等,但对我来说最大的好处是它可以通过减少数量来管理大规模程序您需要一次考虑的代码。

答案 2 :(得分:1)

创建BicycleDemo以向您展示如何创建对象,以解释封装概念。现在您可以访问不同的自行车。

答案 3 :(得分:1)

自行车是您定义自行车的类,允许您在实例化时创建大量自行车。

BicycleDemo包含程序的主要方法,通常称为“入口点”。 在本课程中,您将编写您的程序将如何处理您的自行车。

答案 4 :(得分:1)

此处BicycleDemo是控制器类。它有一个main函数,它是一个入口点。从这个类中,您可以为任何类创建任意数量的对象。您还可以在main班级中添加Bicycle功能。编写单独的bean是最佳实践

答案 5 :(得分:0)

由于Java中的所有内容都是一个对象,并且必须在类中声明,因此无法首先声明一个类来执行最简单的操作。 HelloWorld.java计划:

public class HelloWorld {
    public static void main(String []args) {
        System.out.println("Hello World");
    }
}

当然,另一种选择是简单地将主要方法从Demo类复制到Bicycle类中,这仍然有用

public 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();
    }
}