Java编码和构造函数

时间:2014-10-26 04:20:01

标签: java

我最近开始参加一个简介java课程(我因为缺乏知识而提前道歉)而且我遇到了一些麻烦。我被要求制作一个包含3个数据字段,2个构造函数和4个方法的程序。

我有一段时间试图对此进行一些输入,用户可以从我为汽车价格编制的3个数据字段中的1个中选择并选择他们的车辆。至于构造函数,我做了一个默认的,但我不知道如何A)实现另一个构造函数和B)如何将输入包含在这个和C)方法进入的地方。

我正在考虑将输入放在第一位,但这会破坏我的构造函数?

我意识到我问了很多,但这是一个没有文字的在线课程,我基本上都渴望知识。我已经包括了我到目前为止所得到的内容。反馈表示赞赏。我再次为缺乏知识而道歉,但我正在尝试 -

public class Vehicle{
    int truck;
    int car;
    int van;

    public Vehicle(int t, int c, int v){
        truck=t;
        car=c;
        van=v;
    }
    public Vehicle(){
        truck=0;
        car=0;
        van=0;   
    }    
}
public static void main (String[] args) {
    Vehicle cost= new vehicle(25000,15000,22500);
    //*cost.truck=25000; cost.car=15000; cost.van=22500;*//
    Vehicle this Vehicle= new vehicle();
    Vehicle choice Vehicle= new vehicle(25000,22500);

    system.out.println("Default prices are 25000 for a truck, 15000 for a car, and"
                         + "22500 for a van, you chose" + 

}

}

1 个答案:

答案 0 :(得分:0)

根据您的问题,您必须询问有关如何定义类并一般使用它们的所有内容。

问题A.如何实现其他构造函数?

从您的情况来看,我发现您已经定义了自己的构造函数,但是在定义另一个构造函数时遇到了问题。要定义另一个构造函数,您必须知道您的参数 会过去的。

在这里,您有三个参数。 (变量t,c,v)。

public Vehicle(int t, int c, int v){
    truck=t;
    car=c;
    van=v;
}

另一个没有参数的构造函数。

public Vehicle(){
    truck=0;
    car=0;
    van=0;   
}

定义另一个构造函数时,不能定义同一类型的另外三个参数构造函数,也不能定义不带参数的另一个构造函数。

因此,您可以使用这样的构造方法。

public Vehicle(int veh, int price){
    switch (veh) {
        case 0:
            truck = price;
        case ...
    }  
}

问题B.我如何参与输入?何处让他们参与方法

从你的问题来看,这个语句已经在调用构造函数了,这意味着你已经在输入一个类了。

Vehicle cost = new Vehicle(25000,15000,22500);

与调用没有参数的构造函数以及设置车辆的当前价格相同。

Vehicle choice = new Vehicle();
choice.truck = 25000;
choice.car = 22500;

现在,如果您正在考虑是否有另一种通过方法输入数据的方法。它被称为Encapsulation。要实现此OOP概念,您应将数据成员定义为Private

private int truck;
// public int truck; <- not like this.

然后,你可以涉及输入和输出。使用getter和setter的概念。其中涉及方法。

// simple setter
public void setTruckPrice(int t) {
    truck = t;
}

// simple getter
public int getTruckPrice(int t) {
   return truck;
}

P.S。我忘了编辑它的封装。

如果您想了解更多信息,请参阅这些链接。

http://docs.oracle.com/javase/tutorial/java/javaOO/classes.html

http://www.tutorialspoint.com/java/index.htm