【问题标题】:I Cant figure out how to do this in JAVA我无法弄清楚如何在 JAVA 中执行此操作
【发布时间】:2015-11-13 12:42:54
【问题描述】:

我正在做一个具有不同课程(APO1、有机化学、实验室、微积分)的程序,每个课程都属于一个系(数学、化学等)。现在我必须创建一个方法来计算一个部门中有多少个班级,但我不知道如何计算。我有 2 个名为“Class”和“CertificateGrades”的 java 类。

  • 我创建了字符串常量

       public final static String MATH = "Math";
       public final static String CHEMISTRY = "Chemistry";
       public final static String PHYSICS = "Physics";
    
  • 我创建了一个这样的构造方法

     public Class( String pName, String pDepartment, int pNumberCredits )
        {
            pName = name ;
            pDepartment = nameDepartment ;
            pNumberCredits = numberCredits;
            grade = -1;
        }
    

-将类创建为对象

public CertificateGrades( )
   {
    Class class1= new Class("APO1", Class.MATH, 3);
    Class class2= new Class("Calculus", Class.MATH, 3);
    Class class3= new Class("Organic", Class.CHEMISTRY, 3);
    Class class4= new Class("Lab", Class.PHYSICS, 1);
   }

-最后我不知道如何制作一个计算一个部门有多少个班级的方法(这是老师问的)

public int giveNumberClassesDepartment( String pDepartment )
    {
        ????????????????????????

    }

谢谢

【问题讨论】:

    标签: java list class methods constants


    【解决方案1】:

    我同意 Henry98 关于创建一个包含您的班级值的数组列表然后返回数组的 .size 将告诉您一个部门中有多少班级的说法。

    但我对您的问题的问题是您组织代码的方式以及您实际要求的内容。您能否尝试重新措辞您的问题以更准确地询问您的需求。而且我认为您的代码需要自下而上地重新编写。

    【讨论】:

    • 肯尼的回答是我想要的,只是跳了一步
    【解决方案2】:

    您可以参考这些代码。我用了一个简单的方法,比如 List //类

    public class Class {
        public final static String MATH = "Math";
        public final static String CHEMISTRY = "Chemistry";
        public final static String PHYSICS = "Physics";
    
        private String pName;
    
    
        private String pDepartment;
        private int pNumberCredits;
        private double grade;
    
        public Class(String pName, String pDepartment, int pNumberCredits) {
            this.pName = pName;
            this.pDepartment = pDepartment;
            this.pNumberCredits = pNumberCredits;
            this.grade = -1;
        }
    
        /**
         * @return the pName
         */
        public String getpName() {
            return pName;
        }
    
        /**
         * @param pName the pName to set
         */
        public void setpName(String pName) {
            this.pName = pName;
        }
    
        /**
         * @return the pDepartment
         */
        public String getpDepartment() {
            return pDepartment;
        }
    
        /**
         * @param pDepartment the pDepartment to set
         */
        public void setpDepartment(String pDepartment) {
            this.pDepartment = pDepartment;
        }
    
        /**
         * @return the pNumberCredits
         */
        public int getpNumberCredits() {
            return pNumberCredits;
        }
    
        /**
         * @param pNumberCredits the pNumberCredits to set
         */
        public void setpNumberCredits(int pNumberCredits) {
            this.pNumberCredits = pNumberCredits;
        }
    
        /**
         * @return the grade
         */
        public double getGrade() {
            return grade;
        }
    
        /**
         * @param grade the grade to set
         */
        public void setGrade(double grade) {
            this.grade = grade;
        }
    }
    

    //证书等级

    public class CertificateGrades {
    
    
        private List<Class> classes = new ArrayList<Class>();
    
        public void addClass(Class clazz) {
            this.classes.add(clazz);
        }
    
        public CertificateGrades() {
            mockData();
        }
    
        /**
         * mock data
         * */
        public void mockData() {
            Class class1= new Class("APO1", Class.MATH, 3);
            Class class2= new Class("Calculus", Class.MATH, 3);
            Class class3= new Class("Organic", Class.CHEMISTRY, 3);
            Class class4= new Class("Lab", Class.PHYSICS, 1);
            classes.add(class1);
            classes.add(class2);
            classes.add(class3);
            classes.add(class4);
        }
    
        public int giveNumberClassesDepartment( String pDepartment )
        {
            int result = 0;
            for (Class clazz : classes) {
                if(clazz.getpDepartment().equals(pDepartment)) {
                    result++;
                }
            }
            return result;
    
        }
    }
    

    【讨论】:

      【解决方案3】:

      这是一种非常奇怪的方法。

      更好的解决方案是创建一个名为Math 的类,其中extends Class。然后,创建一个名为CalculusAPO1 的类。有了它,您现在可以创建这两个类extends Math

      对物理做同样的事情。

      现在您要做的就是创建一个包含 Math 类型的 ArrayList,并将您的 Calculus and APO1 类型的类添加到该 ArrayList 中。 (微积分和 APO1 都是 extends Math,还记得吗?)

      您现在可以像这样创建一个方法:

      public int giveNumberClassesDepartment(ArrayList<Class> arrayList)
          {
              return arrayList.size();
          }
      

      现在将包含 Math 类型的 ArrayList 插入该方法,它应该正确返回正确的数字。

      【讨论】:

        猜你喜欢
        • 2013-04-10
        • 2011-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多