我是一名正在学习Java的OOP的大学生。 我被赋予了相当困难的任务,就像我一样 对OOP来说非常新的事实证明它非常艰难。我首先概述一下 我被要求做的事情&然后详细说明我目前所处的位置。
我们被要求实施的计划是应用医生手术来管理 医生和医生之间的关系耐心。需要一个完全可操作的GUI,但我现在将避免启动它,因为它只会使问题复杂化。
以下是作业规范:
“开发一个管理医生手术的应用程序。
到目前为止,我已经设法创建了类,我的代码如下(我们已经给出了类图表)。
手术课(主要):
import java.util.*;
import java.util.Date;
public class surgery
{
private int surgeryId;
private String surgeryAdd;
public surgery(int surgeryId, String surgeryAdd)
{
this.surgeryId = surgeryId;
this.surgeryAdd = surgeryAdd;
}
public void setId (int surgeryId) {
this.surgeryId = surgeryId;
}
public void setSurgeryAdd (String surgeryAdd) {
this.surgeryAdd = surgeryAdd;
}
public int getId () {
return surgeryId;
}
public String getSurgeryAdd () {
return surgeryAdd;
}
public static void main(String[] args) {
System.out.println("Add doctor, enter name: ");
Scanner kbd = new Scanner (System.in);
//User inputs name
String enteredName = kbd.nextLine();
//Object is then created with an ID number and the name the user entered:
Doctor one = new Doctor (1, enteredName);
//Create ArrayList to store Doctor objects:
ArrayList<Doctor> myDoctors = new ArrayList();
//Add the first doctor to ArrayList:
myDoctors.add(one);
//Print out the doctors array.
System.out.print(myDoctors);
}
}
博士班:
import java.util.*;
public class Doctor
{
private int doctorId;
private String doctorName;
ArrayList <Patient> patients = new ArrayList();
public Doctor(int doctorId, String doctorName)
{
this.doctorId = doctorId ;
this.doctorName = doctorName;
}
public void setId (int doctorId) {
this.doctorId = doctorId;
}
public void setName (String doctorName) {
this.doctorName = doctorName;
}
public int getId (){
return doctorId;
}
public String getName () {
return doctorName;
}
public String toString () {
return "Doctor ID: "+doctorId+", Doctor name: "+doctorName;
}
public void addPatient (int patientId, String name, String address, String phoneNumber, Date DOB ) {
Scanner kbd = new Scanner (System.in);
System.out.print("Enter a patient ID: ");
int id = kbd.nextInt();
kbd.nextLine();
System.out.print("Enter patient Name: ");
String patientName = kbd.nextLine();
System.out.print("Enter Address:");
String patientAddress = kbd.nextLine();
System.out.print("Enter the phone num:");
String num = kbd.nextLine();
Date dateOfBirth = new Date(1);
Patient pat = new Patient(id, patientName, patientAddress, num, dateOfBirth);
patients.add(pat);
System.out.println(patients);
}
患者类:
import java.util.*;
public class Patient
{
private int patientId;
private String patientName;
private String patientAddress;
private String patientPhone;
private Date patientDOB;
public Patient(int patientId, String patientName, String patientAddress, String patientPhone, Date patientDOB)
{
// initialise instance variables
this.patientId = patientId;
this.patientName = patientName;
this.patientAddress = patientAddress;
this.patientPhone = patientPhone;
this.patientDOB = patientDOB;
}
public void setId (int patientId) {
this.patientId = patientId;
}
public void setName (String patientName){
this.patientName = patientName;
}
public void setAddress (String patientAddress){
this.patientAddress = patientAddress;
}
public void setPhone (String patientPhone){
this.patientPhone = patientPhone;
}
public void setDOB (Date patientDOB){
this.patientDOB = patientDOB;
}
public int getId () {
return patientId;
}
public String getName () {
return patientName;
}
public String getAddress () {
return patientAddress;
}
public String getPhone () {
return patientPhone;
}
public Date getDOB () {
return patientDOB;
}
}
}
病史分类:
import java.util.*;
public class patientHistory
{
int historyId;
int patientId;
int doctorId;
Date visitDate;
String description;
String medicine;
String procedure;
public patientHistory(int historyId, int patientId, int doctorId, Date visitDate, String description, String medicine, String procedure)
{
this.historyId = historyId;
this.patientId = patientId;
this.doctorId = doctorId;
this.visitDate = visitDate;
this.description = description;
this.medicine = medicine;
this.procedure = procedure;
}
public void setHistoryId (int historyId){
this.historyId = historyId;
}
public void setPatientId (int patientId) {
this.patientId = patientId;
}
public void setDoctorId (int doctorId) {
this.doctorId = doctorId;
}
public void setVisitDate (Date visitDate){
this.visitDate = visitDate;
}
public void setDescription (String description) {
this.description = description;
}
public void setmedicine (String medicine){
this.medicine = medicine;
}
public void setProcedure (String procedure){
this.procedure = procedure;
}
public int getHistoryId () {
return historyId;
}
public int getPatientId () {
return patientId;
}
public int getDoctorId () {
return doctorId;
}
public Date getVisitDate () {
return visitDate;
}
public String getDescription () {
return description;
}
public String getMedicine () {
return medicine;
}
public String getProcedure () {
return procedure;
}
}
当我第一次进行程序编程的时候,我也很努力,但是很容易掌握大部分概念。有了OOP,感觉好像我回到原点,我搜索的每一个答案似乎都让我进一步复杂化。我理解OOP的内容但是对实现很困难。我常常不知道“放置东西”的位置。
例如在医生课上我制作了第一种方法。 (addPatient)但我根本不知道如何建立医生和患者之间的关系。我不明白在哪里叫这个方法(是手术课(主要),医生类本身等等。)
我不是要求代码, 我基本上是在寻求如何从这里开始的建议,因为大约需要4周的时间。
感谢。
答案 0 :(得分:1)
尝试将类视为完全隔离的组件,这将提高OOP所针对的可重用性。问自己实现是否适用于不同的环境。例如,Doctor.addPatient()不应提示您要添加的患者的详细信息(该信息已作为参数提供给您)。
一旦确定了主要元素,就会想到如何将所有内容粘合在一起。正如其他人指出的那样,你应该看一下Design Patterns(例如MVC,这在处理GUI时非常棒)。
答案 1 :(得分:0)
您正在采取的方法是开始编写代码。 首先花点时间考虑一下你要做什么并设计你的应用程序。 两个提示: 1.创建UML图(你只有类图?) 2.定义Domain Models
你会发现事情可能与你最初想的不同。
答案 2 :(得分:0)
你必须考虑你的课程的作用。我看到Doctor.addPatient()
接受用户的输入,但它不是它的角色。相反,UI代码(在您的情况下,主要方法)应创建患者,然后以新患者作为参数调用addPatient()
。这样,Doctor
类在您创建GUI时仍然有效。
答案 3 :(得分:-1)
要以最佳方式处理OOP编程,您应该了解各种设计模式。 了解各种创建设计模式,行为设计模式和结构设计模式可以帮助您构建解决任何问题的解决方案。