在java

时间:2016-11-17 13:10:28

标签: java object

我最近开始在学校用Java编程,最近的一次练习遇到了一些问题。

我目前有一个对象电话,可以是手机号码,也可以是固定电话。 现在我想创建另一个包含联系人详细信息的类。在这些联系方式中,应该有两个电话对象:一个手机号码(gsm)和一个座机号码(电话号码)。电话号码在班上宣布。

我的问题是我应该如何更改ContactDetails类的初始化,以接受两个新的Telephone对象。而那正是我在那里做错了。

提前感谢!

public class Telephone {
    private String sort;
    public String number;

    public Telephone(String sort, String number) {
        this.sort = sort;
        this.number = number;
    }

    public String getSort() {
        return sort;
    }

    public String getNumber() {
        return number;
    }

    public boolean isValidnumber(){
        if(number.startsWith("0")) {
            if (getSort() == "landline" && number.length() == 9) {
                return true;
            } else if (getSort() == "mobile" && number.length() == 10) {
                return true;
            } else return false;
        }
        else return false;
    }
}

public class ContactDetails {
    private String eMail;
    Telephone telephone = new Telephone("landline", Telephone.number);
    Telephone gsm = new Telephone("mobile", Telephone.number);

    public ContactDetails(String eMail, Telephone telephone, Telephone gsm){
        this.eMail = eMail;
        this.telephone = telephone;
        this.gsm = gsm;
    }
}

1 个答案:

答案 0 :(得分:1)

这里有两个问题:

  1. 初始化Telephone gsm时,您无法将其声明为Telefoon,因为该类不存在

  2. 您必须使用数字字符串初始化电话。 Telephone.number指的是number对象的Telephone字符串,由于您刚刚初始化Telephone,因此该字符串尚不存在。

  3. 为了使这两项工作正常,请将TelephoneContactDetails的2个初始化更改为以下内容:

    Telephone telephone = new Telephone("landline", "5555555555");
    Telephone gsm = new Telephone("mobile", "5555555555");
    
相关问题