我正在尝试用我的Java Book中的练习编写一些东西,而不是得到我所要求的东西

时间:2015-03-13 00:53:57

标签: java arraylist bluej

它讨论了通用类,并说明如何从ArrayList导出ArrayList创建非String,Integer或Double的泛型类的类。

这本书明确指出你可以写下这样的字段:

私有ArrayList成员; 私有ArrayList机器;

然后你可以在构造函数中创建基于此类的Classes并分配它们。

练习4.4说要创建一个“library”的私有字段,它可以容纳类型为“Book”的ArrayList。

练习4.5要求cs101的局部变量可以容纳Student的ArrayList。

然后按4.7,它想要对库,cs101和轨道变量进行分配,以创建适当的ArrayList对象。

这是我写的(不包括一些方法)将它添加到BlueJ项目文件夹中已经可用的项目中。

import 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机器;所以我很困惑如何找不到符号,因为它甚至找不到我学校书中定义的符号,这让我相信它可能是我的电脑?

你们觉得怎么样?

2 个答案:

答案 0 :(得分:0)

您需要有一个名为“Book”的类和一个名为“Student”的类才能使该代码正确无误。 ArrayList类定义为ArrayList,E是任何类型对象的占位符。

当你创建像这样的arraylist时

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

您说要创建一个可以容纳Book对象的数组列表。如果没有名为Book的类,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
}

将这些添加到您的项目中,现在您的ArrayList声明是有效的,因为您有Book的类和Student的类。

答案 1 :(得分:0)

你告诉程序你想要一个名为“Library”的Book对象的Arraylist和一个名为cs101的Student对象的arraylist。现在您必须创建这些对象/类。你不必创建一个字符串类,因为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;
    }
}

现在你必须为学生做同样的事情。您还希望最有可能使用access / mutator方法(getter和setter)。