【Java每日一题】——第四十四题:综合案例:编程模拟智能手机和普通手机功能。

简介: 【Java每日一题】——第四十四题:综合案例:编程模拟智能手机和普通手机功能。

🎯问题:


(1)搭建项目架构


       (a)编写手机的父类HandSet,封装属性品牌和型号,提供公有的取值和赋值方法,编写显示手机品牌和型的方法并实现方法体;


       (b)编写打电话和发短信的抽象方法call()和sendInfo()。


(2)编写接口模拟手机的功能


   (a)编写连接网络的接口NetWork,定义上网的方法networkConn();


   (b)编写拍照的接口TakePictures,定义拍照的方法takePicture();


   (c)编写播放的接口Play,定义播放内容的方法play(String incontent);


(3)使用继承父类和实现接口的方式模拟手机功能


       (a)新建普通手机类CommonHandSet继承父类HandSet,实现播放的接口Play;


       (b)编写带参、无参构造方法用于提供创建CommonHandSet对象的方式;


       (c)实现父类中的方法sendInfo()和call(),接口中的方法play(String incontent);


       (d)新建智能手机类AptitudeHandSet继承父类HandSet,实现播放的接口Play、连接网络的接口Network,拍照的接口TakePictures;


       (e)编写带参,无参构造方法用于提供创建AptitudeHandSet对象的方式;


       (f)实现父类中的方法sendInfo()和call(),实现接口中的方法play(String incontent)、takePicture()和networkConn();


       (g)编写测试类Test,分别创建CommonHandSet和AptitudeHandSet类的对象,调用相应方法进行测试。测试结果如图所示。

116a196ac1791dacece28ef8f737acf9_6f9ad758a598480f908b3586a473666a.png

🎯 答案:

package file3;
abstract class HandSet{
  private String Brand;
  private String Model;
  
  public HandSet() {
    super();
  }
  
  public HandSet(String brand, String model) {
    super();
    Brand = brand;
    Model = model;
  }
 
  public String getBrand() {
    return Brand;
  }
  public void setBrand(String brand) {
    Brand = brand;
  }
  public String getModel() {
    return Model;
  }
  public void setModel(String model) {
    Model = model;
  }
  @Override
  public String toString() {
    return "这是一款型号为"+Model+"的"+Brand+"的手机!";
  }
  abstract void call();
  abstract void sendInfo();
}
interface NetWork{
  void networkConn();
}
interface TakePictures{
  void takePicture();
}
interface Play{
  void play(String incontent);
}
class CommonHandSet extends HandSet implements Play{
  public CommonHandSet() {
    super();
    // TODO Auto-generated constructor stub
  }
 
  public CommonHandSet(String brand, String model) {
    super(brand, model);
    // TODO Auto-generated constructor stub
  }
  @Override
  void call() {
    // TODO Auto-generated method stub
    System.out.println("语音通话。。。");
  }
 
  @Override
  void sendInfo() {
    // TODO Auto-generated method stub
    System.out.println("发送文字信息。。。。");
  }
  @Override
  public void play(String incontent) {
    // TODO Auto-generated method stub
  System.out.println(incontent);  
  }
}
class AptitudeHandSet extends HandSet implements Play,NetWork,TakePictures{
 
  public AptitudeHandSet() {
    super();
    // TODO Auto-generated constructor stub
  }
 
  public AptitudeHandSet(String brand, String model) {
    super(brand, model);
    // TODO Auto-generated constructor stub
  }
 
  @Override
  public void takePicture() {
    // TODO Auto-generated method stub
    System.out.println("咔嚓.....拍照成功");
  }
 
  @Override
  public void networkConn() {
    // TODO Auto-generated method stub
    System.out.println("成功连入网络。。。。");
  }
 
  @Override
  public void play(String incontent) {
    // TODO Auto-generated method stub
    System.out.println("正在播放"+incontent);
  }
 
  @Override
  void call() {
    // TODO Auto-generated method stub
    System.out.println("视频通话。。。");
  }
 
  @Override
  void sendInfo() {
    // TODO Auto-generated method stub
    System.out.println("发送图文彩信。。。。。");
  }
}
public class Test {
 
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    CommonHandSet c=new CommonHandSet("苹果", "666");
    AptitudeHandSet a=new AptitudeHandSet("华为", "777");
    System.out.println("-------普通手机----------");
    System.out.println(c.toString());
    c.sendInfo();
    c.call();
    c.play("播放歌曲:《东方红》");
    System.out.println("---------智能手机--------------");
    System.out.println(a.toString());
    a.sendInfo();
    a.call();
    a.networkConn();
    a.takePicture();
    a.play("正在播放电视剧:《赘婿》");
  }
 
}


💛废话文学:

Java的优势:


跨平台性: Java是一种跨平台的编程语言,即一次编写,到处运行。Java程序在不同的操作系统上具有很高的移植性,这使得开发人员能够通过Java开发应用程序,无需担心底层操作系统的差异。


面向对象: Java是一种面向对象的编程语言,支持封装、继承和多态等面向对象的特性。这种编程范式使得代码可以更加模块化、可重用,并且有助于提高代码的可维护性和可扩展性。


强大的生态系统: Java拥有丰富的标准库和第三方库,提供了各种功能强大的工具和框架,如Spring、Hibernate和JUnit等。这些工具和框架使得Java开发人员能够更加高效地开发应用程序,并提供了解决特定问题的解决方案。


多线程支持: Java内置了对多线程编程的支持,使得开发人员可以轻松地创建并发应用程序。多线程编程可以有效地利用多核处理器的性能,并提高程序的响应速度和吞吐量。


安全性: Java拥有严格的安全机制,包括字节码验证、安全管理器和安全沙箱等,可以防止恶意代码对系统的破坏。这使得Java成为开发安全性要求较高的应用程序的理想选择。

相关文章
|
14天前
|
SQL Java 数据库
2025 年 Java 从零基础小白到编程高手的详细学习路线攻略
2025年Java学习路线涵盖基础语法、面向对象、数据库、JavaWeb、Spring全家桶、分布式、云原生与高并发技术,结合实战项目与源码分析,助力零基础学员系统掌握Java开发技能,从入门到精通,全面提升竞争力,顺利进阶编程高手。
204 1
|
14天前
|
Java 开发者
Java并发编程:CountDownLatch实战解析
Java并发编程:CountDownLatch实战解析
301 100
|
1月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
84 16
|
18天前
|
传感器 机器学习/深度学习 算法
【室内导航通过视觉惯性数据融合】将用户携带的智能手机收集的惯性数据与手机相机获取的视觉信息进行融合研究(Matlab代码实现)
【室内导航通过视觉惯性数据融合】将用户携带的智能手机收集的惯性数据与手机相机获取的视觉信息进行融合研究(Matlab代码实现)
|
24天前
|
NoSQL Java 关系型数据库
超全 Java 学习路线,帮你系统掌握编程的超详细 Java 学习路线
本文为超全Java学习路线,涵盖基础语法、面向对象编程、数据结构与算法、多线程、JVM原理、主流框架(如Spring Boot)、数据库(MySQL、Redis)及项目实战等内容,助力从零基础到企业级开发高手的进阶之路。
128 1
|
24天前
|
存储 数据可视化 Java
Java Stream API 的强大功能
Java Stream API 是 Java 8 引入的重要特性,它改变了集合数据的处理方式。通过声明式语法,开发者可以更简洁地进行过滤、映射、聚合等操作。Stream API 支持惰性求值和并行处理,提升了代码效率和可读性,是现代 Java 开发不可或缺的工具。
Java Stream API 的强大功能
|
2月前
|
安全 算法 Java
Java泛型编程:类型安全与擦除机制
Java泛型详解:从基础语法到类型擦除机制,深入解析通配符与PECS原则,探讨运行时类型获取技巧及最佳实践,助你掌握泛型精髓,写出更安全、灵活的代码。
|
2月前
|
安全 Java Shell
Java模块化编程(JPMS)简介与实践
本文全面解析Java 9模块化系统(JPMS),帮助开发者解决JAR地狱、类路径冲突等常见问题,提升代码的封装性、性能与可维护性。内容涵盖模块化核心概念、module-info语法、模块声明、实战迁移、多模块项目构建、高级特性及最佳实践,同时提供常见问题和面试高频题解析,助你掌握Java模块化编程精髓,打造更健壮的应用。
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
8627 2
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
428 0

热门文章

最新文章

  • 1
    【02】整体试验思路,在这之前我们发现sec_uid,sec_uid是什么和uid的关系又是什么?相互如何转换?python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
    581
  • 2
    【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    324
  • 3
    【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
    1149
  • 4
    美团面试:手机扫描PC二维码登录,底层原理和完整流程是什么?
    568
  • 5
    MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
    5394
  • 6
    【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    194
  • 7
    ClKLog支持手机端查询统计数据啦!
    125
  • 8
    OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
    681
  • 9
    Mobile-Agent:通过视觉感知实现自动化手机操作,支持多应用跨平台
    2943
  • 10
    HTML5实现的手机验证抽奖领券效果源码
    289