java - 从另一个类调用方法时遇到问题
问题描述
我的任务是创建一个地址簿,并且有多个类。我无法弄清楚如何从不包含主要方法的类中调用方法。为了让你知道我在问什么,这里是我需要在我的程序中拥有的类的列表:
BaseContact
(一般信息、姓名、号码等)Person
(特定于一个人的信息)Business
(特定于企业的信息)Location
(地址:楼号、街道、城市、州、邮编)Photo
(照片身份证号码、文件名、照片日期和描述)AddressBook
(包含所有联系人的列表。需要的方法:添加、删除、显示一个、排序和按联系人的任何属性搜索联系人。DataAccessService
– 此类将具有 readAllContacts 和 saveAllContacts 的方法。将此类实现为接口。FileAccessService
– 这将实现 DataAccessService 接口。联系人将保存到文本文件并从文本文件中读取。DatabaseAccessService
– 这也将实现 DataAccessService 接口。联系人将被读取并写入 SQL 数据库中的表。ConsoleApp
– 有一个 main() 方法。在 main() 中,您可以创建应用程序中其他类的实例。
到目前为止,以下是我正在查询的类的代码
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;
}
我知道我只会BaseContact
在PersonContact
and类中扩展BusinessContact
类,但我不确定如何将Photo
andLocation
类链接到联系人。我是从班级还是从and班级调用Location
and班级?一旦我这样做了,我如何将位置与正确的联系人配对?Photo
BaseContact
PersonContact
BusinessContact
解决方案
听起来你的直觉很好:aPerson
是 的类型BaseContact
,也是a 的类型,这是有道理的Business
。尝试依次考虑其他每个类:是一种Location
接触类型吗?或者属于联系人的东西?aPerson
有Photo
吗?有Business
吗?
可以被认为是另一个类的一部分或“拥有”的东西可能是该类的成员数据。另一个需要考虑的方面是一个类是否可以只包含一个东西,或者任意数量的东西。(我希望您的讲师正在介绍 Java 泛型集合的基础知识!)
我希望这能让你开始弄清楚如何处理这项任务。
推荐阅读
- python-3.x - discord.py 错误:任务被破坏,但它正在等待处理!任务:
@client.event async def on_ready(): print('------') print('Logged in as ' + client.user.name) print(client.user.id)
- swift - 如何快速从异步块返回值
- c# - 如何从 Dotnet EF 中删除唯一索引?
- node.js - 尚未设置 findOrCreate 方法
- java - ViewPagerAdapter 无法在 Fragment 中正确显示
- python - Python 中的 file.read()
- android - setOngoing(false) 后无法清除通知
- sql-server - SQL Server:获取 COLUMN 级别的 INTER db 对象依赖项。这是唯一的方法(** 列级别)
- android - 将网站数据存储在 android 设备(SQLite、Realm 或其他)中?
- angular - 如何更新 ng2-smart-table 中的分页操作