更改值的方法

时间:2014-04-11 18:14:06

标签: java

我有班级"买家"和类#34;地址",我在地址中有一个构造函数,我可以输入信息,我也有一个方法来更改信息。所以在我的班级买家我有一个构造函数,我可以给买家一个名字,并创建一个地址对象,但后来我试图在"买家"从类Address更改对象的值,但它不是按照它的意图工作。感谢您的帮助。

类地址的本质部分

    public class Address{
        private String street;

    public Address(){
            Keyboard k = new Keyboard();
            Street = k.readString("Type in the Street: ");
    }
 public void change(){
        Keyboard k = new Keyboard();
        String str;
System.out.println("If you do not wish to change the street, please just press enter.");
        str = k.readString("type in the Street: ");
            if (log.equals(""))
                str = str;
            else
                street = str;
}

然后我尝试在买家做同样的事情

public class Buyer{
    private String name;
    private Address address;

public buyer(String nm){
        name = nm;
        this.address = new Address();
}
public void changeAdress(){
        new Address().change();

    }

3 个答案:

答案 0 :(得分:1)

public void changeAdress(){
        new Address().change();    
    }

不对。

您的代码应如下所示:

地址类

public class Address{
        private String street;

public Address(){
            Keyboard k = new Keyboard();
            street = k.readString("Type in the Street: ");
}
public void change(){
        Keyboard k = new Keyboard();
        String str = "";
        System.out.println("If you do not wish to change the street, please just press enter.");
        str = k.readString("type in the Street: ");
            if (log.equals(""))
                str = str;
            else
                street = str;
}
}

买方类

public class Buyer{
    private String name;
    private Address address;

public Buyer(String nm){
        name = nm;
        address = new Address();
}
public void changeAdress(){
           address.change();   
}
}

答案 1 :(得分:0)

您必须将新地址设置为等于地址()。更改:

public void changeAddress() {
     address = (new Address()).change();
}

答案 2 :(得分:0)

在这里,您可以创建Address类的新实例并更改其字段。

 public void changeAdress(){
    new Address().change();
}

而是将其更改为address.change()