2015-08-20 5 views
-4

Я делаю программу, которая имеет разные классы (APO1, Oganic, Lab, Calculus), и каждый из них принадлежит отделу (математика, химия и т. Д.). Теперь я должен создать метод, который подсчитывает, сколько классов находится в отделе, но я не могу понять, как это сделать. У меня есть два класса java, называемые «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; 
        } 
    

-Created классы как объекты

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) 
    { 
     ???????????????????????? 

    } 

БЛАГОДАРЯ

ответ

0

Вы можете сослаться на этот код. Я использовал простой способ, как список // Класс

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; 
    } 
} 

// CertificateGrades

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; 

    } 
} 
0

Это очень очень странный способ сделать Это.

Лучшим решением является создание класса Math, который extends Class. Затем создайте класс с именем Calculus и APO1. С этим вы можете сделать эти два класса extends Math.

Сделайте то же самое с физикой.

Теперь все, что вам нужно сделать, это создать ArrayList, который содержит тип Math, и добавить классы Calculus and APO1 в это ArrayList. (Исчисление и APO1 как extends Math, помните?)

Теперь вы можете создать метод, например, так:

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

Теперь вставьте ваш ArrayList, который содержит тип Math в этот метод, и он должен правильно вернуть правильный номер ,

0

Я согласен с тем, что Henry98 говорит о создании списка массива, который хранит ваши ценности класса, а затем возвращая .size массива расскажет вам, сколько классов находится в отделе.

Но проблема с моим вопросом заключается в том, как вы организуете свой код и что вы на самом деле просите. Не могли бы вы повторить свой вопрос, чтобы более точно спросить, что вам нужно. И я думаю, что ваш код нужно переделать снизу вверх.

+0

Ответ Kennys был тем, что я собирался, просто подскочил на шаг – Tristan

Смежные вопросы