我正在尝试根据 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 创建 类 非字符串、整数或双精度类型的泛型。
这本书明确指出你可以写这样的字段:
私有ArrayList成员;
私有 ArrayList 机器;
然后你可以在构造函数中基于此创建 类 并分配它们。
练习 4.4 说要创建一个 "library" 的私有字段,它可以容纳 "Book".
类型的 ArrayList
练习 4.5 要求 cs101 的局部变量,它可以保存 Student 的 ArrayList。
然后到 4.7,它需要对库、cs101 和跟踪变量进行分配,以创建适当的 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" 的 class 和一个名为 "Student" 的 class 才能使该代码正确。 ArrayList class 定义为 ArrayList , E 是任何类型对象的占位符。
当你像这样创建数组列表时
ArrayList<Book> = new ArrayList<>();
您是说要创建一个可以容纳 Book 对象的数组列表。如果没有Class叫Book,Java就不知道你想要什么。创建 2 个简单的 classes,例如
public class Book{
private String name;
public Book(String n){
this.name = n;
}
//getters and setters after
}
还有一个学生class
public class Student{
private String name;
public Student(String n){
this.name = n;
}
//getters and setters after
}
将它们添加到您的项目中,现在您的 ArrayList 声明有效,因为您有一个 class 用于 Book 和一个 class 用于 Student。
您告诉程序您需要一个名为 "Library" 的 Book 对象数组列表和一个名为 cs101 的 Student 对象数组列表。现在你必须创建那些 objects/classes。您不必创建字符串 class,因为 java 已经有一个适合您的字符串 class。
图书class:
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;
}
}
现在您必须对 Student 执行相同的操作。您还可能希望使用 access/mutator 方法(getter 和 setter)。
它谈论泛型 类 并说明如何从导入 ArrayList 的 ArrayList 创建 类 非字符串、整数或双精度类型的泛型。
这本书明确指出你可以写这样的字段:
私有ArrayList成员; 私有 ArrayList 机器;
然后你可以在构造函数中基于此创建 类 并分配它们。
练习 4.4 说要创建一个 "library" 的私有字段,它可以容纳 "Book".
类型的 ArrayList练习 4.5 要求 cs101 的局部变量,它可以保存 Student 的 ArrayList。
然后到 4.7,它需要对库、cs101 和跟踪变量进行分配,以创建适当的 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" 的 class 和一个名为 "Student" 的 class 才能使该代码正确。 ArrayList class 定义为 ArrayList , E 是任何类型对象的占位符。
当你像这样创建数组列表时
ArrayList<Book> = new ArrayList<>();
您是说要创建一个可以容纳 Book 对象的数组列表。如果没有Class叫Book,Java就不知道你想要什么。创建 2 个简单的 classes,例如
public class Book{
private String name;
public Book(String n){
this.name = n;
}
//getters and setters after
}
还有一个学生class
public class Student{
private String name;
public Student(String n){
this.name = n;
}
//getters and setters after
}
将它们添加到您的项目中,现在您的 ArrayList 声明有效,因为您有一个 class 用于 Book 和一个 class 用于 Student。
您告诉程序您需要一个名为 "Library" 的 Book 对象数组列表和一个名为 cs101 的 Student 对象数组列表。现在你必须创建那些 objects/classes。您不必创建字符串 class,因为 java 已经有一个适合您的字符串 class。
图书class:
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;
}
}
现在您必须对 Student 执行相同的操作。您还可能希望使用 access/mutator 方法(getter 和 setter)。