我目前正在参加OOP课程,这是我的问题:
假设自行车租赁数据库:class' bike' =>子类'借来的自行车'和'返回自行车'。借来的自行车有额外的领域&到期日'并返回自行车的位置'
任务是扩展此数据库以处理您可以从租赁中借出的各种事物。但是,实现需要尽可能面向对象。我一直在浏览我的Java书,但我还没有找到一个聪明的解决方案。
那么,我怎样才能添加每个项目(自行车,旱冰鞋......等)被借用的功能'或者'返回'与相关的附加字段没有为每种类型的项目分别的子类?
(我建议我的老师说每个项目的状态都是“借来的”或“退回”但是我被告知这不是对象 - 足够导向)
感谢所有帮助!
答案 0 :(得分:0)
使用getStatus()
方法创建一个接口,并使所有项类实现它。
答案 1 :(得分:0)
为借用的和返回的接口创建2个接口。
public interface returnedItem(){
public String getLocation();
public void setLocation(String s);
}
public interface borrowedItem(){
public Date getDue();
public void setDue(Date date);
}
答案 2 :(得分:0)
借用或归还所有物体(自行车,旱冰鞋等)的一种简单方法是制作超级课程。
例如:
public class Borrowable {
private boolean borrowed = false;
public borrow() {
borrowed = true;
}
public return() {
borrowed = false;
}
public isBorrowed() {
return borrowed;
}
}
如果您使用自行车扩展此类,则可以调用可借用的方法,而无需再次编写代码。
答案 3 :(得分:0)
使用interface
:
interface Item{
boolean isBorrowed();
}
然后通过实施abstract
。
interface
个课程
abstract class Bike implements Item{
//code
}
abstract class RollerSkates implements Item{
//code
}
//etc.
现在extend
这些abstract
类:
public class BorrowedBike extends Bike{
//code
//add additional field 'due date'
boolean isBorrowed(){
return true;
}
}
public class ReturnedBike extends Bike{
//code
//add additional field 'location'
boolean isBorrowed(){
return false;
}
}
答案 4 :(得分:0)
你可以做的是为每个项目创建一个类类型, 创建Item类,它是一个泛型类,并从中继承2个子类借用项并返回一个
class Bike
...
class Skates
...
class Roller
class Item<T>
...
class BorrowedItem<T> extends Item<T>
...
class ReturnedItem<T> extends Item<T>
答案 5 :(得分:0)
而不是为自行车子类制作borrowed bike
和returned bike
你可以按照一种方法来上课
变量item
和nameOfItem
的{{1}}可以是自行车,滚轴赌注或任何其他。
它将保留一个实例
type