已知床具有让人躺下睡觉的功能,其属性有容量(容纳睡觉的人数),沙发具
有让人坐下休息的功能,其属性有容量(容纳坐下的人数)。两用沙发则同时具有
睡觉和坐下的功能。
现有一个家庭,有一个单人床,一个双人床,两个单人沙发,一个两用沙发
(折叠时是沙发,可坐三人;打开时是个双人床)。计算这个家里可容纳多少人睡
觉,以及可让多少人坐下?
测试数据如下
publicclassMainApp{//除在类名后加学号外,禁上修改其它任何代码!!!
publicstaticvoidmain(String[]args){
SofaBedsofaBed=newSofaBed();
SleepSpacebed[]=newSleepSpace[3];
bed[0]=newBed(1);//单人床
bed[1]=newBed(2);//双人床
bed[2]=sofaBed;//两用沙发可当床
SeatSpacesofa[]=newSeatSpace[3];
sofa[0]=newSofa(1);//单人沙发
sofa[1]=newSofa(2);//双人沙发
sofa[2]=sofaBed;//两用沙发
//统计床位数
intbedCapacity=0;
for(inti=0;i<bed.length;i++){
bedCapacity+=bed[i].getSleepCapacity();
}
//统计座位数
intsofaCapacity=0;
for(inti=0;i<sofa.length;i++){
sofaCapacity+=sofa[i].getSeatCapacity();
}
System.out.println("床位数:"+bedCapacity);
System.out.println("座位数:"+sofaCapacity);
}
}
输出结果:
床位数:5
座位数:6
随便写了下,有不对的请见谅
床类:
/*
* 床 具有睡觉功能
*/
public class Bed implements SleepSpace {
//单双人床
private int num;
public Bed(int num) {
this.num = num;
}
//单人床1人,双人床2人
public int getSleepCapacity() {
return num;
}
}
两用沙发类:
/**
* 两用沙发,具有睡觉和坐下的功能
*/
public class Sleep implements SleepSpace,SeatSpace{
//座位数为3
public int getSeatCapacity() {
return 3;
}
//床位数为2
public int getSleepCapacity() {
return 2;
}
}
沙发类:
/**
* 沙发,具有坐下的功能
*/
public class Sofa implements SeatSpace {
//单双人沙发
private int num;
public Sofa(int num) {
this.num = num;
}
//单人沙发1人,双人沙发2人(双人沙发题目中没有说明是否具备睡觉功能,这里只考虑坐下)
public int getSeatCapacity() {
return num;
}
}
坐下功能接口:
public interface SeatSpace {
int getSeatCapacity();
}
睡觉功能接口:
public interface SleepSpace{
int getSleepCapacity();
}
MainApp:
public class MainApp{
public static void main(String[]args){
Sleep sofaBed =new Sleep();
SleepSpace bed[]=new SleepSpace[3];
bed[0]=new Bed(1);//单人床
bed[1]=new Bed(2);//双人床
bed[2]=sofaBed;//两用沙发可当床
SeatSpace sofa[]=new SeatSpace[3];
sofa[0]=new Sofa(1);//单人沙发
sofa[1]=new Sofa(1);//单人沙发,根据题目是两个单人沙发
// sofa[1]=new Sofa(2);//双人沙发
sofa[2]=sofaBed;//两用沙发
//统计床位数
int bedCapacity=0;
for(int i=0;i<bed.length;i++){
bedCapacity+=bed[i].getSleepCapacity();
}
//统计座位数
int sofaCapacity=0;
for(int i=0;i<sofa.length;i++){
sofaCapacity+=sofa[i].getSeatCapacity();
}
System.out.println("床位数:"+bedCapacity);
System.out.println("座位数:"+sofaCapacity);
}
}
不就床是父类.然后三个子类床继承嘛,类中两个属性睡觉人数和休息人数.
单人床就是 sleep=1 sit=0
双人床就是 sleep=2 sit=0
两用沙发就是 sleep=2 sit=3
各实例化以后对应属性相加
这是个数学问题!
interface SleepSpace {
public int getSleepCapacity();
}
interface SeatSpace {
public int getSeatCapacity();
}
class SofaBed implements SeatSpace, SleepSpace {
int seatNum;
int sleepNum;
public SofaBed() {
this.seatNum = 3;
this.sleepNum = 2;
}
@Override
public int getSleepCapacity() {
return this.sleepNum;
}
@Override
public int getSeatCapacity() {
return this.seatNum;
}
}
class Bed implements SleepSpace {
private int sleepNum;
public Bed(int sleepNum) {
this.sleepNum = sleepNum;
}
@Override
public int getSleepCapacity() {
return this.sleepNum;
}
}
class Sofa implements SeatSpace {
private int seatNum;
public Sofa(int seatNum) {
this.seatNum = seatNum;
}
@Override
public int getSeatCapacity() {
return this.seatNum;
}
}
public class MainApp {// 除在类名后加学号外,禁上修改其它任何代码!!!
public static void main(String[] args) {
SofaBed sofaBed = new SofaBed();
SleepSpace bed[] = new SleepSpace[3];
bed[0] = new Bed(1);// 单人床
bed[1] = new Bed(2);// 双人床
bed[2] = sofaBed;// 两用沙发可当床
SeatSpace sofa[] = new SeatSpace[3];
sofa[0] = new Sofa(1);// 单人沙发
sofa[1] = new Sofa(2);// 双人沙发
sofa[2] = sofaBed;// 两用沙发
// 统计床位数
int bedCapacity = 0;
for (int i = 0; i < bed.length; i++) {
bedCapacity += bed[i].getSleepCapacity();
}
// 统计座位数
int sofaCapacity = 0;
for (int i = 0; i < sofa.length; i++) {
sofaCapacity += sofa[i].getSeatCapacity();
}
System.out.println("床位数:" + bedCapacity);
System.out.println("座位数:" + sofaCapacity);
}
}