计算机小菜鸟 ~ 2022-04-25 14:41 采纳率: 58.8%
浏览 97
已结题

关于面向对象之接口,两用沙发

已知床具有让人躺下睡觉的功能,其属性有容量(容纳睡觉的人数),沙发具
有让人坐下休息的功能,其属性有容量(容纳坐下的人数)。两用沙发则同时具有
睡觉和坐下的功能。
现有一个家庭,有一个单人床,一个双人床,两个单人沙发,一个两用沙发
(折叠时是沙发,可坐三人;打开时是个双人床)。计算这个家里可容纳多少人睡
觉,以及可让多少人坐下?
测试数据如下

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

  • 写回答

4条回答 默认 最新

  • zuichuyuyi 2022-04-25 16:42
    关注

    随便写了下,有不对的请见谅
    床类:

    /*
     * 床 具有睡觉功能
     */
    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);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月3日
  • 已采纳回答 4月25日
  • 创建了问题 4月25日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来