gpt4 book ai didi

java - 将值设置为对象数组

转载 作者:行者123 更新时间:2023-11-29 07:41:50 24 4
gpt4 key购买 nike

我正在修订我的 Java 书籍,以确保我对对象和 Java 的一般基础知识有扎实的理解。我在阅读的书中偶然发现了这段代码 Head First: Java 2nd edition (2005)

 class Book {   

String title;
String author;

}

class Main {

public static void main(String args[]) {

int x = 0;

Book[] myBooks = new Book[3];
myBooks[0] = new Book();
myBooks[1] = new Book();
myBooks[2] = new Book();
myBooks[0].title = "Example title xx";
myBooks[1].title = "Example title cc";
myBooks[2].title = "Example title yy";
myBooks[0].author = "Example author xx";
myBooks[1].author = "Example author cc";
myBooks[2].author = "Example author yy";

while (x < 3) {

System.out.print(myBooks[x].title);
System.out.print(", author ");
System.out.println(myBooks[x].author);
x = x + 1;

}
}
}

我不太明白 myBooks[0].title = "Example title xx" 的语法我承认我对数组及其工作原理还不是很了解,但是遍历数组并使用 setter 方法设置所有对象字段不是更好的做法吗?

我认为这里是这样的

据我有限的理解,这种为这些字段赋值的特殊方法与这两个类的范围有关。与您使用静态方法的名称而不是首先创建它们各自类的对象的方式相同,而是使用静态变量。

看似很琐碎,但对我理解和把握思路非常重要。我希望你能帮我解决这个问题。

最佳答案

首先,让我们在没有数组的情况下重写您的程序:

Book myBooks0, myBooks1, myBooks2;
myBooks0 = new Book();
myBooks1 = new Book();
myBooks2 = new Book();
myBooks0.title = "Example title xx";
myBooks1.title = "Example title cc";
myBooks2.title = "Example title yy";
myBooks0.author = "Example author xx";
myBooks1.author = "Example author cc";
myBooks2.author = "Example author yy";

如果您了解引用自定义类的 Java 变量,这应该一点也不神秘。

接下来,让我们回到您的数组:

Book[] myBooks = new Book[3];

它用一个数组变量替换了上面的三个命名变量,所以现在我们写的不是 myBooksX,而是 myBooks[X]

这就是两者之间的主要区别。数组的优点是 X 可以是变量或计算结果为 0、1 或 2 的整数表达式,而对于单个变量,数字必须是硬编码的。

关于java - 将值设置为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29328569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com