Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自驱动程序类的Java更改属性_Java_Arraylist - Fatal编程技术网

来自驱动程序类的Java更改属性

来自驱动程序类的Java更改属性,java,arraylist,Java,Arraylist,我不确定我的教授是打错了说明书还是我遗漏了什么。我接到一个任务,我们正在研究arraylist。指令的一部分要求我们在类中编写一个方法来更改属性名称city,一个名为setCity()的方法。之后,我将创建一个driver类,要求用户搜索我想要为其更改城市的人。我的教授回答说,但这基本上是重复的指示。在周末,直到周一才会有回复 我从驾驶员的角度理解了如何编写此方法。但是我的问题是如何编写setCity()方法来更改主类中的city属性 指令的引用:“您的CityEntry类应该有一个setCit

我不确定我的教授是打错了说明书还是我遗漏了什么。我接到一个任务,我们正在研究arraylist。指令的一部分要求我们在类中编写一个方法来更改属性名称city,一个名为setCity()的方法。之后,我将创建一个driver类,要求用户搜索我想要为其更改城市的人。我的教授回答说,但这基本上是重复的指示。在周末,直到周一才会有回复

我从驾驶员的角度理解了如何编写此方法。但是我的问题是如何编写setCity()方法来更改主类中的city属性

指令的引用:“您的CityEntry类应该有一个setCity()方法,该方法将允许更改city属性”

例如:

public static void editCity(ArrayList<CityEntry> address){
    boolean found = false;
    Scanner scan = new Scanner(System.in);
    System.out.println("example: ");
    String str = scan.nextLine();

    for(int i = 0; i < address.size(); i++){
        if(address.get(i).getName().equalsIgnoreCase(str)){
            found = true;
        }
    }

    if(found){
        System.out.println("Enter new city: ");
        //here's the problem. If I should create a method in the driver for setCity()
        //can't think of how to create it in the CityEntry class
    }
}

编辑:谢谢大家。我已经忘记了突变的基本原理。我们的大部分作业都没有用到它。所以金德不知道教授的意思。

你很接近,但在这种情况下,你不需要归还任何东西。你所需要做的就是改变这个城市

在Java中,当我们不想返回任何内容时,我们使用“void”作为类型(returnvoid部分被暗示并省略)

所以不是

public String setCity(String city){
您将使用

public void setCity(String city){

并且不返回任何内容。

我假设您将在一个
CityEntry
类中编写此函数,该类具有此
city
属性。这个属性很可能是
受保护的
私有的
,这就是为什么您需要一个
设置器
(mutator),但是您的设置器方法不应该返回任何内容,它只会更改城市属性的值。要返回
city
属性的值,还可以使用
getter
(访问器)方法,如下所示:

public class CityEntry {
    //Private fields
    private String city;
    ...

    //Constructor method
    public CityEntry(String city, ...) {
        this.city = city;
        ....
    }

    //Accessor for city
    public String getCity() {
        return city;
    }

    //Mutator for city
    public void setCity(String city) {
        this.city = city;
    }
}

有关更多信息,请查看:

与其他回复一样,
setCity()
是一种setter方法。它不会返回任何东西。它被传递名称,并将其分配给
this.city
实例变量。因此,基本上您需要将
public String setCity()
更改为
public void setCity(String city)

哪种setter函数没有任何参数?!不是很有用的那种。
public class CityEntry {
    //Private fields
    private String city;
    ...

    //Constructor method
    public CityEntry(String city, ...) {
        this.city = city;
        ....
    }

    //Accessor for city
    public String getCity() {
        return city;
    }

    //Mutator for city
    public void setCity(String city) {
        this.city = city;
    }
}