簡體   English   中英

用Java創建數組對象?

[英]Creating Array Objects in Java?

我是Java的新手,在數組方面有一些問題。 在給定的練習中,必須使用方法“ addExam”創建一個名為“ Exam”的類。 現在,我嘗試解決該問題,但僅涉及Cass的定義,實例變量和方法標題。 其余的我在解決方案中查找,看起來像:

public class Exam{
private int numberOfExams=15;
private Exam[]exams = new Exam[numberOfExams];

public void addExam(Exam exam){
exams[numberOfExams] = exam;
numberOfExams++;

現在,我的問題是:當我在方法addExam中為數組檢查分配“檢查”時,是否在此處創建了新對象? 當是的時候,為什么不使用粗體字和“新操作符”呢? 這個問題導致了一個更籠統的問題:我知道數組屬於類類型,它們現在是否創建數組對象或該數組類型的變量?

我真的需要一些幫助!

public void addExam(Exam exam){
exams[numberOfExams] = exam;

不會。沒有創建新對象,這里傳遞的對象將分配給數組的第0個元素。

創建新對象的實際位置是addExam方法調用的位置。 就像是

Exam exam = new Exam();
// do something
addExam(exam);

當我在方法addExam中為數組檢查分配“檢查”時,是否在此處創建了新對象?

不行 對現有Exam實例的引用將添加到數組中。 因此,您將有2個對同一Exam實例的引用

當您為數組分配“檢查”時,它不會創建新對象。 它僅將現有對象的引用存儲在數組中。

如果我理解您的第二個問題,那么當您通過調用創建數組時,例如Exam[] exams = new Exam[numberOfExams]; 您創建了一個對象,該對象包含足夠的空間用於對Exam對象的numberOfExams引用。

BTW, exams[numberOfExams] = exam; 會給您一個ArrayIndexOutOfBoundsException ,因為您的數組具有numberOfExams元素,所以有效索引從0到numberOfExams-1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM