簡體   English   中英

我正在嘗試通過Java書籍中的練習來編寫一些程序,但並沒有完全了解我的要求

[英]I'm trying to program something from an exercise in my Java Book, not quite getting what is being asked of me

它討論了泛型類,並說明了如何從導入ArrayList的ArrayList中創建不是String,Integer或Double的泛型類型的類。

該書明確指出您可以編寫如下字段:

私有ArrayList成員; 私有ArrayList機器;

然后您可以基於此在構造函數中創建Classs並將其分配。

練習4.4說要創建一個“庫”的私有字段,該字段可以容納“ Book”類型的ArrayList。

練習4.5要求一個可以容納一個ArrayList of Student的cs101局部變量。

然后到4.7,它想分配給庫cs101和track變量,以創建適當的ArrayList對象。

這是我寫的內容(不包括某些方法),將其添加到BlueJ項目文件夾中已經可用的項目中。

導入java.util.ArrayList;

/**
 * A class to hold details of audio files.
 * 
 * @author David J. Barnes and Michael Kölling
 * @version 2011.07.31
 */
public class MusicOrganizer
{
    // An ArrayList for storing the file names of music files.
    private ArrayList<String> files;
    private ArrayList<Book> library;
    private ArrayList<MusicTracks> tracks;
/**
 * Create a MusicOrganizer
 */
    public MusicOrganizer()
    {
         ArrayList<Student> cs101;
        files = new ArrayList<String>();
        library = new ArrayList<Book>();
        cs101 = new ArrayList<Student>();
    }

它告訴我找不到Book和MusicTracks的符號,但是我已經按照該書定義私有ArrayList成員的方式定義了它們。 和專用的ArraryList機器; 所以我對如何找不到符號感到困惑,因為它甚至也找不到我教科書中定義的符號,這使我相信也許是我的計算機?

你們有什么感想?

您需要具有一個名為“ Book”的類和一個名為“ Student”的類,該代碼才能正確。 ArrayList類定義為ArrayList,E是任何類型的對象的占位符。

當您創建這樣的數組列表時

ArrayList<Book> = new ArrayList<>();

您要說的是要創建一個可以容納Book對象的數組列表。 如果沒有名為Book的Cla​​ss,Java將不會知道您想要什么。 創建2個簡單的類,例如

public class Book{

   private String name;

   public Book(String n){
      this.name = n;
   }
//getters and setters after
}

還有一個學生班

public class Student{

   private String name;

   public Student(String n){
      this.name = n;
   }
//getters and setters after
}

將它們添加到您的項目中,由於您有Book類和Student類,因此ArrayList聲明現在有效。

您要告訴程序您想要一個名為“ Library”的Book對象的數組列表和一個名為cs101的Student對象的數組列表。 現在,您必須創建那些對象/類。 您不必創建字符串類,因為Java已經有了適合您的String類。

書本類:

    public class Book{
         private String name, genre, author;
         //This is called a constructor that instantiates Book objects
        public Book(String name, String genre, String author){
          //now you build the book object by assigning THIS particular book object with the passed in values
           this.name = name;
           this.genre = genre;
           this.author = author;
    }
}

現在,您必須為學生做同樣的事情。 您還可能希望使用訪問/更改方法(getter和setter)。

暫無
暫無

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

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