Skip to main content
2 of 3
added 57 characters in body
Simon Forsberg
  • 59.8k
  • 9
  • 158
  • 312

Simple Object Oriented Design for a Patient system

I want to model a this scenario in Object Oriented Language

  • A hospital has number of patients
  • A patient can have zero or more Medical Condition
  • A medical condition is identified by name and date

I came up with this basic java code

Please review my code and tell me

  1. What can I do to incorporate Object Oriented fundamentals like reuse,extensibility.
  2. Do I need to implement equals method in MedicalCondition class?
  3. Do I need to initialize all the instance variables in constructor?
import java.util.Date;
import java.util.*;
import java.text.*;
class Patient
{
    private String name;
    private String streetAdress1;
    private String phoneNumber;
    private String streetAdress2;
    private String zipCode; //I really dont need to preform any numerical operations.
    private List<MedicalCondition> mcList;
    
    public Patient(String name) //Public for constructor.
    {
        this.name = name;
        mcList = new ArrayList<MedicalCondition>();
    }  
    
    public void setName(String name)
    {
        this.name = name;
    }
    
    public String getName()
    {
        return name;
    }

    
    //All setter and getters
    
    public void addMedicalCondition(MedicalCondition mc)
    {
        mcList.add(mc);
    }
    
    public void deleteMedicalCondition(MedicalCondition mc)
    {
        mcList.remove(mc);
    }
    
    public List<MedicalCondition> getMedicalConditions()
    {
        return mcList;
    }
    
    public String toString(){
        return name;
    }
 }   
    
class MedicalCondition
{
      private String nameOfCondition;
      Date dateOfReport;
      
      public MedicalCondition(String nameOfCondition,Date dateOfReport)
      {
          this.nameOfCondition = nameOfCondition;
          this.dateOfReport = dateOfReport;
      }
      
      public String toString()
      {
          return nameOfCondition;
      }
 }
 
 
 public class HelloWorld{

     public static void main(String args[]) throws ParseException{
        Patient p1 = new Patient("Mike");
        
        DateFormat format = new SimpleDateFormat("mm/dd/yyyy");
        MedicalCondition mc1 = new MedicalCondition("Diabetes",format.parse("03/23/2000"));
        p1.addMedicalCondition(mc1);
        
        System.out.println(p1);
        for(MedicalCondition mc : p1.getMedicalConditions())
        {
            System.out.println(mc);
        }
        
        p1.deleteMedicalCondition(mc1); //Delete the condition
        
         System.out.println(p1);
        for(MedicalCondition mc : p1.getMedicalConditions())
        {
            System.out.println(mc);
        }
     }
}

         
mc20
  • 801
  • 1
  • 9
  • 19