如何在Java中使用类中其他类的方法?

时间:2014-09-11 01:50:58

标签: java class inheritance reference

所以,我的任务是使用Doctor和Patient类(带有自己的对象)编写一个Visit类,它有一个时间和日期以及对其传递的Doctor和Patient对象的引用,因此它可以返回相同的&# 34;性状"或Doctor和Patient类的变量(即Doctor对象有一个名称,因此Visit对象必须保留Doctor的名称和其他变量)起初我用自己的getSpecialty和getName方法编写了Visit类。医生和患者公众中的变量。实验室教师希望将这些变量保密,并使用Doctor和Patient的实际方法而不是新方法。

我研究的一件事(这是我第一次传递类对象作为参考并使用该类的方法)说只要你有一个参考,你可以说像cbeta.whatevermethod()但我不能&# 39;让它发挥作用。 Java: How to access methods from another class

我也不知道他是否意味着参加访问班的方法或通过访问医生和患者对象的主要课程(但如果你打电话给医生和病人&#39 ;无论如何,主类中的对象方法,没有必要将对象传递给Visit类。

我知道这是课堂作业,所以如果你不想为我回答这很好,我会接受任何帮助或指导,因为我不完全理解变量范围和类对象,我们没有时间赶上。非常感谢^ _ ^

这是测试人员(主要类)代码:

public class tester
{  
   public static void main(String[] args)
   {  
      Doctor doctorStrange 
            = new Doctor("General Practitioner", 50.0);
            doctorStrange.setName("Doctor Strange");

      Doctor doctorFate
            = new Doctor("Pediatrician");  
            doctorFate.setName("Doctor Fate");

      Doctor doctorLight
            = new Doctor();
            doctorLight.setName("Doctor Light");

      Patient Thor
            = new Patient(42154);
            Thor.setName("Thor");

      Patient Bruce
            = new Patient(67245);
            Bruce.setName("Bruce");

      Patient Clint
            = new Patient();
            Clint.setName("Clint");

      Visit visit1 = new Visit(doctorStrange, Thor, "9:53 AM, 2/27/2014");
      Visit visit2 = new Visit(doctorStrange, Bruce, "4:22 PM, 7/13/2017");
      Visit visit3 = new Visit(doctorFate, Clint, "8:59 AM, 5/05/2015");

      System.out.println("First visit: Doctor name is " + doctorStrange.getName() 
                        + " and Patient name is " + Thor.getName());
}
}

医生课(如果需要,我也可以把病人放在这里)

public class Doctor extends Person
 {
public double visitFee;
public String specialty;
public String name;

public Doctor ()
{
    visitFee = 0.0;
    specialty = "unknown";
}

public Doctor (String type)
{
    specialty = type;
    visitFee = 0.0;
}

public Doctor (double initialFee)

{
    visitFee = initialFee;
    specialty = "unknown";
}

public Doctor (String type, double initialFee)
{
    specialty = type;
    visitFee = initialFee;
}

  public void setName(String newName)
{
    name = newName;
}

public String getSpecialty ()
{
   return specialty;
}

public double getVisitFee ()
{
   return visitFee;
}

public String getName()
{
    return name;
}
 }

最后,访问班:

公共课访问     {     private String timeDate;     私人医生;     私人患者p;

public Visit()
{
  timeDate = "Time and Date of visit unknown";

}

public Visit (Doctor doc, Patient pat, String thetimeDate)
{
  timeDate = thetimeDate;
  d = doc;
  p = pat;
}
}

2 个答案:

答案 0 :(得分:0)

听起来你应该编写一些包装方法来公开Visit类的复合字段的方法。

例如,假设您有一个名为Dog的类,

class Dog {
   private String name;

   public Dog(String name) {
      this.name = name;
   }


   public String getName() {
      return name;
   }

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

假设你有一个班级男孩,谁拥有"一只狗 - 谁有狗场。你可以给Boy一个getDogName()方法并让它返回Dog的getName()方法返回的值。例如:

class Boy {
   private Dog dog;

   public Boy(Dog dog) {
      this.dog = dog;
   }

   public String getDogName() {
      return dog.getName();
   }
}

听起来你需要为你的Visit类做类似的事情,给visit调用方法并从其复合字段的方法中返回结果。

请注意,我使用的示例与您的不同,因为您的问题是关于家庭作业,但我相信您可以概括这个概念。

答案 1 :(得分:0)

你的问题有点令人困惑。但我相信您正在询问如何通过访问班访问医生/患者的功能?

如果是这样,您需要首先向访问类添加一些公共函数。