繁体   English   中英

如何将数组元素分配给私有变量并在另一个类中使用它们?

[英]How to assign array elements to private variable and use them in another class?

/*
c - csis
a - acct
b - busn
p - phys

*/
class CourseInfo {

  private String courseTitle;
  private double coursePrice;
  private int courseSeatsAvail;
  private String courseDesc;
  private char courseType;

  private static String empPassword;

  CourseInfo(String crseTitle, double crsePrice, int crseSeats, String crseDesc, char type) {

    courseTitle = crseTitle;
    coursePrice = crsePrice;
    courseSeatsAvail = crseSeats;
    courseDesc = crseDesc;
    courseType = type;
  }

  /*
   * Finish the class with the set/get methods
   */
}

///////////////////////////////

class CourseList {

  CourseInfo[] courseList;

  public void createList() {

    courseList = new CourseInfo[11];

    courseList[0] = new CourseInfo("acct110", 375.49, 35, "this course teaches \nbasic accounting practice", 'a');
    courseList[1] = new CourseInfo("busn110", 375.49, 35, "this course teaches \nbasic business pratice", 'b');
    courseList[2] = new CourseInfo("busn240", 375.49, 35, "this course teaches \nadvance business pratice", 'b');
    courseList[3] = new CourseInfo("csis110", 375.49, 2, "this course teaches \nbasic computing pratice", 'c');
    courseList[4] = new CourseInfo("csis220", 375.49, 35, "this course teaches \nR language", 'c');
    courseList[5] = new CourseInfo("csis290", 375.49, 25, "this course teaches \nbasic hardware pratice", 'c');
    courseList[6] = new CourseInfo("csis340", 375.49, 35, "this course teaches \nadvance CPU tech", 'c');
    courseList[7] = new CourseInfo("csis420", 375.49, 17, "this course teaches \nbasic computer graphics", 'c');
    courseList[8] = new CourseInfo("csis491", 375.49, 3, "this course teaches \nbasic game programming", 'c');
    courseList[9] = new CourseInfo("phys120", 499.19, 30, "this course teaches \nbasic physics theory", 'p');
    courseList[10] = new CourseInfo("phys240", 399.99, 35, "this course teaches \nbasic quantum mechanics", 'p');

  }
}

我正在尝试从其他.java文件访问CreateList中的数据,但我的讲师希望我使用私有变量,集合和获取以这种特定方式进行操作,但我不知道如何进行。 我知道如何创建基本集合和获取,但是我不了解它们与CourseInfo构造函数一起使用的含义。

'Getters'和'setters'用于封装Java中的变量/对象。 这意味着(如您的讲师所说),您应该将变量设为private,而将getters和setters设为public

例如:

private String courseTitle;

该变量只能在该类中访问,因此,要想从该类外部获取该变量(即,从使用CourseList任何位置),都需要创建一个getter (获取变量)和一个setter (以更改变量的值)。 如下:

// Getter
public String getCourseTitle() {
    return this.courseTitle;
}

// Setter
public void setCourseTitle(String newCourseTitle) {
    this.courseTitle = newCourseTitle;
}

您可以在此处阅读有关封装的更多信息。

现在,要获取值,请使用getter ,如下所示(假设courseInfo是CourseInfo对象):

String data = courseInfo.getCourseTitle();

尝试为每个变量创建自己的set和get方法,例如:private String courseTitle;

 public String getCourseTitle() {
    return courseTitle;
}

public void setCourseTitle(String courseTitle) {
    this.courseTitle = courseTitle;
}

CourseList类中,尝试像这样设置courseTitle的值:

setCourseTitle("value of courseTitle");

比您可以像这样得到它:

String var = getCourseTitle();

并使用您要在何处添加的值,例如,将其添加到courseList数组中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM