当前位置: 首页 > 知识库问答 >
问题:

Java将对象调用到另一个类的arraylist中

戚飞
2023-03-14

好的,在做任何事情之前,我想提一下,这是为学校准备的,所以请不要编写任何代码来修复我的代码,因为这不会教我任何东西。相反,如果我使用了不正确的术语,我需要的是参考、解释和适当的术语。

所以我这里有一些问题。这是我需要做的,

*在学生类中包括以下方法:a.第B1部分中每个实例变量的访问器(即getter)b.第B1部分中每个实例变量的mutator(即setter)

注意:对Student类的实例变量的所有访问和更改都应该通过accessor和mutator方法进行。

c、 构造函数使用所有输入参数d.print()使用访问器(即getter)打印特定的学生数据(例如,学生ID、名字、姓氏)

使用包含所有ArrayList方法调用的以下方法创建一个学生Roster类:a.公共静态空删除(String学生ID),通过学生ID从名册中删除学生

注意:如果学生ID不存在,该方法应打印一条错误消息,指示找不到该ID。

b、 public static void print\u all(),它使用访问器方法打印以选项卡分隔的完整学生数据列表

注:制表符的格式如下:1[制表符]名字:John[制表符]姓氏:Smith[制表符]年龄:20[制表符]年级:{88,79,59}。print\u all()方法应该循环遍历学生数组列表中的所有学生,并为每个学生调用print()方法。

公共静态无效print_average_grade(字符串学生ID),通过学生ID正确打印学生的平均成绩。公共静态无效print_invalid_emails(),用于验证学生的电子邮件地址并显示所有无效的电子邮件地址以供使用*

上面是我遇到麻烦的地方,数组列表、构造函数和调用Roster类中的学生类。

这是我的密码。

学生班级

 /**
  * Write a description of class Student here.
  * 
  * @author (Richard Talcik) 
  * @version (v1 3/5/17)
  */
 public class Student {
  // initialize instance variables
  private String csFirstName;  //I am using cs infront of the name because this is a class variable and a string
  private String csLastName;
  private String csEmail;
  private int ciAge;
  private int ciStudentID;
  private int[] ciaGrades;   //cia for class, integer, array;

  public Student(String sFirstName, String sLastName, String sEmail, int iAge, int iStudentID, String[] grades) {

    //doing the consturctor
    this.setFirstName(sFirstName);
    this.setLastName(sLastName); 
    this.setEmail(sEmail); 
    this.setAge(iAge);
    this.setStudentID(iStudentID);
    this.setGrades(grades);


} 
  /**he methods to get and then followed by set
 */
public String getFirstName()
{
    // put your code here
    return csFirstName; //returning the value of the first name when called.

}
 public String getLastName()
{
    // put your code here
    return csLastName;

}
 public String getEmail()
{
    // put your code here
    return csEmail;

}
 public int getStudentID()
{
    // put your code here
    return ciStudentID;

}
 public int getAge()
{
    // put your code here
    return ciAge;

}
 public int[] getGrades()
{
    // put your code here
    return ciaGrades;

}

// calling the sets from here on out
 public void setFirstName(String newFirstName)
{
    // put your code here
    csFirstName = newFirstName;
    //setting it

}
public void setLastName(String newLastName)
{
    // put your code here
    csLastName = newLastName;
    //setting it

}
public void setEmail(String newEmail)
{
    // put your code here
    csEmail = newEmail;
    //setting it

}
public void setAge(int newAge)
{
    // put your code here
    ciAge = newAge;
    //setting it

}
public void setStudentID(int newStudentID)
{
    // put your code here
    ciStudentID = newStudentID;
    //setting it

}
public void setGrades(int[] newGrades)
{
    // put your code here
    ciaGrades = newGrades;
    //setting it

 }
}

这个花名册类要求我在调用stu=new Student()时添加参数;但我不明白要加入什么论点?我也不太明白我将如何合并我的arraylist,以便从学生类中添加我的方法?(抱歉,如果我使用了错误的术语,请在需要时更正)

花名册类

import java.util.ArrayList;

 /**
  * Write a description of class Roster here.
  * 
  * @author (Richard Talcik) 
  * @version (v1)
  */
 public class Roster {




// instance variables - replace the example below with your own


/**
 * Constructor for objects of class Roster
 */
 public static void main(String args[]) {
    Student stu = new Student("John", "Smith", "John1989@gmail.com", 20, 1, Grades[1]);
    ArrayList<Student> myRoster = new ArrayList<Student>();
    myRoster.add(new Student("Suzan", "Erickson","Erickson_1990@gmailcom", 19, 2, [91,72,85]));

 }
 public static void remove(String studentID)
{
    // put your code here

}

public static void print_all()
{
    //do something
}
html" target="_blank">public static void print_average_grade(String studentID)
{
    //do something
}

public static void print_invalid_emails()
{
    //do something
}


}

请任何有助于解释这一点的教程都是值得的。

此外,我三班倒,我的学校完全在线。我醒着的时候我的导师不在或导师不在,电子邮件并不是最好的沟通方式,因为回复需要几天时间。

共有2个答案

袁弘方
2023-03-14

您使用接受参数的构造函数编写了学生类。因此,在Roaster类中,您必须调用学生类的匹配构造函数。我猜你不太明白我的答案。我建议在oracle站点上查找java教程,如果您可以获得一本名为The java编程语言的书,那就更好了

焦驰
2023-03-14

首先对于初学者来说,还不错:)但是在java中使用ArrayList对象类型时,列表的类型必须是您希望放在ArrayList中的对象,即如果您想保留学生列表,那么您必须将其写成

AssrayList<Student> = new ArrayList<Student>();

您还可以将列表的大小指定为参数,但请记住,ArraList会随着列表中的内容的添加和删除而动态增长。

就你的构造函数而言,你必须在里面添加你分配值的变量作为构造函数的参数。问题还指出,你必须使用它们的访问器和变换器方法访问所有类对象,因为你目前拥有构造函数的当前方式是不正确的,因为你直接将值分配给学生的类对象,你可以将其更改为类似于以下内容:

constructor (paramType param) {
  mutatorMethod(param)
}

因此,您的构造函数应该符合

Student(String name, String surname) {
  setName(name)
  setSurname(surname)
}

希望这有帮助:)

 类似资料:
  • 我是java新手,我正试图编写我的第一个“更大”的程序,包含几个类。我在类“CompetitionProgram”中创建了一个ArrayList并将其声明为private。 我的程序中需要这两个类(Event&ListOfEvents),这是需求之一。事件--它只是表示事件本身,比如事件名称和尝试次数(它是一个体育事件)。和ListOfEvents--它表示列表本身,并包含用于添加事件、删除事件和

  • 我目前有一个ArrayList,其中包含“Product”对象,每个对象中包含一个字符串、整数和double。我希望能够使用参数搜索对象,找出与搜索参数匹配的ID(整数值),并将此对象复制到另一个ArrayList中。有没有可能通过迭代器实现这一点,或者有没有更简单的方法?

  • 问题内容: 我有以下Java代码,其中我试图将ArrayList复制到另一个ArrayList。 我希望“列表”数组采用以下格式: 但是从上面的代码中,“ list”数组输出看起来像这样: 我想您可能已经注意到了差异。我无法达到预期格式的结果。请建议我任何解决方案!提前致谢!! 问题答案: 然后,你需要的: 请注意,已更改为。在Java命名约定中,变量以小写字母开头。类以大写字母开头。

  • 这是第一个代码: 那么这是它将在其中显示输出的主类: 很抱歉,如果我不清楚我的问题,但我想使用ArrayList,其中我将ArrayList存储在Person类中,我想使用公共字符串toString查看它,这样它将显示名称和年龄

  • 我已经阅读了很多stackoverflow的页面,但是我无法将我的ArrayList复制到另一个类中。下面是一个场景,我正在构建一个快速的图书储蓄应用程序,类似于图书馆中的应用程序,但更简单(用于学校)。 我有我的主库类(带有main),它为主菜单/选项设置了swing。 我有一个带有新书构造函数的book类,如下所示: 在这个类中,我在确认按钮上添加了一个,以确认上要作为对象添加的输入,如下所示

  • 而不是更改InventoryItem中的参数 我想弄清楚如何传递新产品,如上面Store类的代码块所示。