如何仅使用构造函数的一部分参数? (JAVA)

时间:2016-10-18 10:12:52

标签: java parameters constructor

我被要求创建一个方法,根据街道号(int)和门牌号(int)将学生添加到数组中。 这是我所谈论的一个例子。

  Student a = new Student("Abigail", 1, 5);

我只允许使用学生的街道号和门牌号,这只是构造函数参数的一部分。有没有办法将对象(学生)与信息的一部分联系起来?

这是我的构造函数:

 public Student(String n, int sN, int hN){
        name = n;
        streetNum = sN;
        houseNum = hN;
    }

3 个答案:

答案 0 :(得分:2)

您可以使用较少的参数创建另一个构造函数,如下所示:

public class Student {

    public static final String DEFAULT_NAME = "Cookie Monster";
    public static final String DEFAULT_STREET_NUMBER = 46; //Sesame Street Number?   

    private String name;
    private int streetNum;
    private int houseNum;

    public Student(String n, int sN, int hN){
        name = n;
        streetNum = sN;
        houseNum = hN;
    }

    public Student(int sN, int hN){
        this(DEFAULT_NAME, sN, hN);
    }

    public Student(int hN){
        this(DEFAULT_STREET_NUMBER, hN);
    }
}  

答案 1 :(得分:1)

我认为有两种方式:

1)创建一个这样的构造函数:

public Student(int sN, int hN){
        streetNum = sN;
        houseNum = hN;
    }

并使用它:

  Student a = new Student(1, 5);

2)或者如果你不想要一个构造函数,那么使用like:

  Student a = new Student("", 1, 5);

答案 2 :(得分:0)

您可以在Construction中使用null。例如new Student(null, 5, 1)通常这是可能的,但您可以使用此方法覆盖默认值,例如名称默认为private String name = "Peter"