2016-11-17 105 views
-3

我最近开始在学校用Java编程,最近的一个练习是遇到了一些问题。在java中创建另一个类的对象

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

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

在此先感谢!

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; 
    } 
} 
+4

你的问题是什么呢? – Berger

+2

你的问题是什么?是否有编译时或运行时错误? – vanje

+0

在** ContactDetails()**构造函数外初始化**电话**对象没有任何意义。另外,它尝试的方式是错误的。而且,这段代码甚至没有编译。 – progyammer

回答

1

您这里有两个问题:

  1. 初始化时Telephone GSM,你不能宣布它作为Telefoon,因为该类不存在

  2. 你有用数字字符串初始化电话。 Telephone.number指的是对象的number字符串,因为您刚刚初始化了Telephone,所以该对象尚不存在。

为了使这两个工作,改变2个初始化的TelephoneContactDetails到这样的事情:

Telephone telephone = new Telephone("landline", "5555555555"); 
Telephone gsm = new Telephone("mobile", "5555555555"); 
+0

感谢您的回答,对于第二个问题:这意味着我应该简单地使用随机选择的字符串进行初始化? –

+0

@MeesVankaam你可以用你想存储的任何电话号码初始化它。我使用了一堆5作为示范创建我的,但您可以在该字符串中存储任何电话号码。 –

相关问题