Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_Object - Fatal编程技术网

Java 将值设置为对象数组

Java 将值设置为对象数组,java,arrays,object,Java,Arrays,Object,我正在修改我的Java书籍,以确保我对对象和Java基本知识有全面的了解。我在读的书中偶然发现了这段代码 我不太理解myBooks[0]的语法。title=示例title xx 我承认我对数组及其工作方式还不是很有经验,但是在数组中循环并使用setter方法设置所有对象字段不是更好的做法吗 我认为是这样的 根据我有限的理解,这种为这些字段赋值的特殊方法与这两个类的范围有关。使用静态方法的名称,而不是首先创建它们各自类的对象,而是使用静态变量,方法是一样的 这看起来很琐碎,但对我来说理解和掌握这个

我正在修改我的Java书籍,以确保我对对象和Java基本知识有全面的了解。我在读的书中偶然发现了这段代码

我不太理解myBooks[0]的语法。title=示例title xx 我承认我对数组及其工作方式还不是很有经验,但是在数组中循环并使用setter方法设置所有对象字段不是更好的做法吗

我认为是这样的

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

这看起来很琐碎,但对我来说理解和掌握这个想法是非常重要的。我希望你能帮我澄清一下

将字符串分配给数组中第一个元素的标题字段

循环遍历数组并使用setter方法设置所有对象字段不是更好的做法吗

一般来说是的

将字符串分配给数组中第一个元素的标题字段

循环遍历数组并使用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";  
如果您了解引用cusom类的Java变量,那么这应该一点也不神秘

接下来,让我们回到您的阵列:

Book[] myBooks = new Book[3];
它将上面的三个命名变量替换为一个数组变量,因此现在我们不编写myBooksX,而是编写myBooks[X]


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

首先,让我们重写没有数组的程序:

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";  
如果您了解引用cusom类的Java变量,那么这应该一点也不神秘

接下来,让我们回到您的阵列:

Book[] myBooks = new Book[3];
它将上面的三个命名变量替换为一个数组变量,因此现在我们不编写myBooksX,而是编写myBooks[X]


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

使用数组时,您应该理解这个概念

书籍[]mybooks=新书[3]

这意味着将有一个Book类型的数组。Book[0]的意思是,这是对内存中真实对象的引用,就像对对象的远程控制一样


因此,当您调用mybook[0].title时,这意味着您正在调用Book[0]的title方法,就像按Book[0]遥控器上的title按钮一样。

使用数组时,您应该理解这个概念

书籍[]mybooks=新书[3]

这意味着将有一个Book类型的数组。Book[0]的意思是,这是对内存中真实对象的引用,就像对对象的远程控制一样


因此,当您调用mybook[0].title时,这意味着您正在调用Book[0]的title方法,就像按Book[0]遥控器上的title按钮一样。

在数组中循环并使用setter方法设置所有对象字段不是更好的做法吗?不,这次不是。您需要检查迭代变量,例如i in for int i=。。。。。要知道当前处于哪个索引上,请设置正确的值。当前使用固定索引的方法在这里更简洁。循环数组并使用setter方法设置所有对象字段不是更好的做法吗?不,这次不是。您需要检查迭代变量,例如i in for int i=。。。。。要知道当前处于哪个索引上,请设置正确的值。当前使用修复索引的方法在这里更干净。非常感谢。我应该明确指出,我的主要问题是与。部分但你向我解释了要点。你有什么资源可以让我了解更多吗?@Lotix你的书是一个很好的资源。加深您对主题理解的一个好方法是在章节后做练习,而不看答案,不将代码与他们的代码进行比较,也不理解差异。非常感谢。我应该明确指出,我的主要问题是与。部分但你向我解释了要点。你有什么资源可以让我了解更多吗?@Lotix你的书是一个很好的资源。加深您对主题理解的一个好方法是在章节结束后做练习,而不看答案、将代码与他们的代码进行比较并理解差异。