2015-04-29 17 views
0

В моем классе EMR я пытаюсь увеличить поле данных счетчика пациентов после моего конструктора с двумя переменными. Я также пытаюсь увеличить поле данных счетчика пациентов после моей конструкции с 5 переменными.Количество экземпляров в конструкторе

В главной цели конечной целью является создание 5 новых записей пациентов (что я и сделал) и печать количества записей пациентов, доступных до и после.

Я уверен, что должен использовать public static long numofpatients в своем классе EMR, но не знаю, куда идти.

Главный код:

package studenthealthservices; 

public class Studenthealthservices { 
    public static void main(String[] args) { 
     EMR p1 = new EMR("Colin", "10-22-74", "Strained Ankle", 99, 110, "hurt during football", "ankle brace"); 
     System.out.println(p1.toString()); 

     EMR p2 = new EMR("Anquan", "9-30-77", "stomach ache", 98, 120, "stress", "Tylenol"); 
     System.out.println(p2.toString()); 

     EMR p3 = new EMR("Buster", "3-27-1987", "Broken ankle", 99, 113, "Scott Cousins", "None"); 
     System.out.println(p3.toString()); 

     EMR P4 = new EMR("Frank The Tank", "4/1/89"); 

     EMR p5 = new EMR("Merton Hanks", "03-12-1968"); 
    } 
} 

ЭЙ код класс:

package studenthealthservices; 

public class EMR { 
    private String name; 
    private String dob; 
    private String rfv; 
    private double bodyt; 
    private double hr; 
    private String diag; 
    private String pmeds; 

    public void setName(String name) { 
     this.name = name; 
    } 

    public EMR(String name, String dob) { 
     this.name = name; 
     this.dob = dob; 
    } 

    public String getName() { 
     return name; 
    } 

    public EMR(String name, String dob, String rfv, double bodyt, double hr, String diag, String pmeds) { 
     this.name = name; 
     this.dob = dob; 
     this.rfv = rfv; 
     this.bodyt = bodyt; 
     this.hr = hr; 
     this.diag = diag; 
     this.pmeds = pmeds; 
    } 

    public String getDob() { 
     return dob; 
    } 

    public void setDob(String dob) { 
     this.dob = dob; 
    } 

    public String getRfv() { 
     return rfv; 
    } 

    public void setRfv(String rfv) { 
     this.rfv = rfv; 
    } 

    public double getBodyt() { 
     return bodyt; 
    } 

    public void setBodyt(double bodyt) { 
     this.bodyt = bodyt; 
    } 

    public double getHr() { 
     return hr; 
    } 

    public void setHr(double hr) { 
     this.hr = hr; 
    } 

    public String getDiag() { 
     return diag; 
    } 

    public void setDiag(String diag) { 
     this.diag = diag; 
    } 

    public String getPmeds() { 
     return pmeds; 
    } 

    public void setPmeds(String pmeds) { 
     this.pmeds = pmeds; 
    } 

    public void redFlags() { 
     String help = "get help!"; 
     if (bodyt >= 97.3 && bodyt <= 99.1) 
      this.bodyt = bodyt; 
     if (hr >= 60 && hr <= 100) 
      this.hr = hr; 
     else { 
      System.out.printf(help); 
     } 
    } 

    @Override 
    public String toString() { 
     return "\nname : " + this.name 
      + "\nDate of Birth: " + this.dob 
      + "\nReason for visit: " + this.rfv 
      + "\nBody Temperature: " + this.bodyt 
      + "\nHeart Rate " + this.hr 
      + "\nDiagnosis: " + this.diag 
      + "\nPrescribed Meds " + this.pmeds; 
    } 
} 
+0

Почему бы не отслеживать количество пациентов в классе, который инициализирует объекты класса EMR, что в вашем случае было бы классом Studenthealthservices? – nullPointer

+0

вы пытаетесь найти счетчик, чтобы отслеживать, сколько EMR было создано? но вам нужен счетчик в вашем классе EMR, а не тот, который его создает? –

+0

numofpatients ++ в каждом конструкторе EMR? – Divers

ответ

1

посмотреть здесь (упрощенный ваш класс):

package studenthealthservices; 

public class EMR 
{ 
    private static /*volatile*/ long numofpatients; // when using different threads, volatile is needed. 

    private String name; 
    private String dob; 

    public EMR(String name, String dob) { 
     numofpatients++; //increment here   
     this.name = name; 
     this.dob = dob; 
    } 

    public EMR(String name, String dob, String rfv, double bodyt, double hr, String diag, String pmeds) { 
     numofpatients++; //increment here   
     this.name = name; 
     this.dob = dob; 
     //simplified 
    } 

    public String getDob() { 
     return dob; 
    } 

    public void setDob(String dob) { 
     this.dob = dob; 
    } 

    @Override 
    public String toString() { 
     return "simplified"; 
    } 

    public static long getInstanceCount() 
    { 
     return numofpatients; 
    } 
} 
1

Я хотел бы избежать инкрементируя static переменные в конструкторе , и вместо этого вставьте эту ответственность в класс StudentHealthServices, например:

public class StudentHealthServices { 
    private int numOfPatients; 

    public static void main(String[] args) { 
     StudentHealthServices services = new StudentHealthServices(); 
     EMR p1 = new EMR("Colin", "10-22-74", "Strained Ankle", 99, 110, "hurt during football", "ankle brace"); 
     services.add(p1); 

     EMR p2 = new EMR("Anquan", "9-30-77", "stomach ache", 98, 120, "stress", "Tylenol"); 
     services.add(p2); 

     EMR p3 = new EMR("Buster", "3-27-1987", "Broken ankle", 99, 113, "Scott Cousins", "None"); 
     services.add(p3); 

     EMR p4 = new EMR("Frank The Tank", "4/1/89"); 
     services.add(p4); 

     EMR p5 = new EMR("Merton Hanks", "03-12-1968"); 
     services.add(p5); 
    } 

    private void add(EMR emr) { 
     // maybe you want to store the patients in a list here? 
     System.out.println(emr); 
     System.out.println("there are now " + ++numOfPatients + " patients"); 
    } 
} 
Смежные вопросы