对象如何使用另一个对象的方法?

时间:2014-02-07 21:57:14

标签: java object messages

例如,我有class Doctor想要使用class Postman的服务。

在代码方面看起来如何?

public class Doctor
{
    ...

    void doCheckup(Patient);
    void sendMail(){   // want to use services of a Postman here }
}

public class Postman
{
    void sendMail(...){ ... }
}

我可能会将Doctor::sendMail()定义为

void sendMail()
{
    Postman A = new Postman();
    A.sendMail(...);
}

这是对的吗?

如果是,那么为什么'博士'会创造一个'邮差'?它听起来真的远离现实生活场景。这是对象之间共享消息的方式吗?

2 个答案:

答案 0 :(得分:2)

更惯用的方式是:

void sendMail(Postman postman) {
   postman.sendMail(...);

不要在第一个对象内创建另一个对象。

在旁注中,Doctor::sendMail是C ++语法。在Java中,没有::

答案 1 :(得分:1)

如果您正试图制作一个真人世界模型"然而,你会有一个全局的PostOffice对象,它包含许多Postmen。

医生可以成为DoctorOffice或医院的一部分

Doctor会有一个成员变量指向HIS Postman

Doctor.Postman = aPostmanObject;
然后他会让邮递员完成这项工作。

Doctor.Postman.SendMail();

假设您制作了" SendMail"邮递员的公共方法(就像他作为公共服务一样这样做)