首页 > 解决方案 > 从另一个类调用方法时遇到问题

问题描述

我的任务是创建一个地址簿,并且有多个类。我无法弄清楚如何从不包含主要方法的类中调用方法。为了让你知道我在问什么,这里是我需要在我的程序中拥有的类的列表:

到目前为止,以下是我正在查询的类的代码

BaseContact班级:

Public class BaseContact {
        private String phoneNumber;
        private String name;

    public BaseContact(String phoneNumber, String Name) {
        this.phoneNumber = phoneNumber;
        this.name = name;
    }

    public String getPhoneNumber() {return phoneNumber;}

    public void setPhoneNumber(String phoneNumber) {this.phoneNumber = 
                               phoneNumber;}

    public String getName() {return name;}

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

    }

PersonContact班级:

public class PersonContact extends BaseContact {
private String dob;
private String description;

public PersonContact(String dob, String description, String phoneNumber, String name) {
    super(phoneNumber, name);
    this.dob = dob;
    this.description = description;
}

public String getDob() {return dob;}

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

public String getDescription() {return description;}

public void setDescription(String description) {this.description = description;}

}

BusinessContact班级:

public class BusinessContact extends BaseContact {
private String busHours;
private String website;

public BusinessContact(String busHours, String website, String phoneNumber, String name) {
    super(phoneNumber, name);
    this.busHours = busHours;
    this.website = website;
}

public String getBusHours() {return busHours;}

public void setBusHours(String busHours) {this.busHours = busHours;}

public String getWebsite() {return website;}

public void setWebsite(String website) {this.website = website;}

}

Location班级:

public class Location {
private String buildingNum;
private String additionalAddr;
private String street;
private String city;
private String state;
private int zip;

public Location(String buidingNum, String additionalAddr, String street, String city, String state, int zip) {
    this.buildingNum = buildingNum;
    this.additionalAddr = additionalAddr;
    this.street = street;
    this.city = city;
    this.state = state;
    this.zip = zip;
}

}

Photo班级:

public class Photo {
private String idNumber;
private String fileName;
private String photoDate;
private String description;

}

我知道我只会BaseContactPersonContactand类中扩展BusinessContact类,但我不确定如何将PhotoandLocation类链接到联系人。我是从班级还是从and班级调用Locationand班级?一旦我这样做了,我如何将位置与正确的联系人配对?PhotoBaseContactPersonContactBusinessContact

标签: java

解决方案


听起来你的直觉很好:aPerson是 的类型BaseContact,也是a 的类型,这是有道理的Business。尝试依次考虑其他每个类:是一种Location接触类型吗?或者属于联系人的东西?aPersonPhoto吗?有Business吗?

可以被认为是另一个类的一部分或“拥有”的东西可能是该类的成员数据。另一个需要考虑的方面是一个类是否可以只包含一个东西,或者任意数量的东西。(我希望您的讲师正在介绍 Java 泛型集合的基础知识!)

我希望这能让你开始弄清楚如何处理这项任务。


推荐阅读