访问Object而不是Array Element

时间:2013-10-18 13:19:09

标签: java object

在我的代码中,我想访问数组第一个元素CIS 400并检查它是否等于提供的字符串,但是它正在访问整个数组对象。任何人都可以告诉我如何做到这一点......谢谢......

 public class Course1 {
      public static void main(String[] args){

         int check=   GetCourseByCourseID("CIS 400");

         if (check==0){
           System.out.print("Don't match");
         }

     }

    private static  int GetCourseByCourseID(String CourseID) {

       for ( int i = 0; i < course.CourseArray.length; i++ ){ 
          if ( CourseID.equals(course.CourseArray[i] )){                   
               return 1;
          }
          else {
              System.out.print(course.CourseArray[1]);  
              return 0;

         }
        // ToDO

       }
       return 2;

   }

   Course1(String string, String string2, int i, String string3, String string4){ 
        CourseID = "CIS 400"; 
        CourseTitle = ""; 
        CreditHours = 0; 
        Description = ""; 
        PrerequisiteCourseID = "";

       };

    }


    class course {
      static Course1[] CourseArray ={

        new Course1 ("CIS 400", "OO Analysis & Design", 4, "Important class", "CIS 110"),

        new Course1 ("CIS 150A" , "VB.NET Programming", 4, "Good Introduction to     programming", "CIS 100") ,

        new Course1 ("CIS 150B", "C# Programming with labs", 4, "Follow-up to CIS 100", "CIS 100")

      };
   }

4 个答案:

答案 0 :(得分:0)

您正在比较整个数组而不是单个数组元素。 If条件需要如下所示来比较数组的第一个字符串

if ( CourseID.equals(course.CourseArray[i].string ))

CourseArray[i]返回Course1个对象。要访问其属性,请使用CourseArray[i].string,但您需要声明我在样本中看不到的string

您已为Course1定义了构造函数,但您还需要定义类变量,然后将通过构造函数传递的值赋给类变量

答案 1 :(得分:0)

您在构造函数中初始化的变量怎么样?我想他们是私人课堂?在这种情况下,只需覆盖Course1的toString方法即可返回CourseID。

答案 2 :(得分:0)

你的代码有点奇怪。宣称私人领域在哪里? 否则,我认为你的情况应该是:

if (CourseID.equals (course.CourseArray[i].courseID)

答案 3 :(得分:0)

 10    private static  int GetCourseByCourseID(String CourseID) {
 11   
 12          for ( int i = 0; i < course.CourseArray.length; i++ ){ 
 13             if ( CourseID.equals(course.CourseArray[i] )){                   
 14                  return 1;
 15             }
 16             else {
 17                 System.out.print(course.CourseArray[1]);  
 18                 return 0;
 19            }
 20          }
 21          return 2;
 22      }

您在此代码中遇到的问题很少。

第13行:    您将参数courseID与整个Course1对象进行比较。这将永远返回false。

第12行:当你在ifelse块中返回时,循环只会运行一次。

第17行:在此行中,您可以在1位置打印整个对象。

下面是您可能分析的潜在实施

private static Course1 findCourseByID(String id) {

    for(Course1 course : getCourses()) {
        if(id.equals(course.CourseID)) {
           return course;
        }
     }
     return null;
}