【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成为开发安全性要求较高的应用程序的理想选择。

相关文章
|
2月前
|
Kubernetes 负载均衡 Java
k8s的出现解决了java并发编程胡问题了
Kubernetes通过提供自动化管理、资源管理、服务发现和负载均衡、持续交付等功能,有效地解决了Java并发编程中的许多复杂问题。它不仅简化了线程管理和资源共享,还提供了强大的负载均衡和故障恢复机制,确保应用程序在高并发环境下的高效运行和稳定性。通过合理配置和使用Kubernetes,开发者可以显著提高Java应用程序的性能和可靠性。
90 31
|
2月前
|
Java 编译器 开发者
注解的艺术:Java编程的高级定制
注解是Java编程中的高级特性,通过内置注解、自定义注解及注解处理器,可以实现代码的高度定制和扩展。通过理解和掌握注解的使用方法,开发者可以提高代码的可读性、可维护性和开发效率。在实际应用中,注解广泛用于框架开发、代码生成和配置管理等方面,展示了其强大的功能和灵活性。
81 25
|
2月前
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
|
3月前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
957 12
|
2月前
|
Java 开发工具
课时6:Java编程起步
课时6:Java编程起步,主讲人李兴华。课程摘要:介绍Java编程的第一个程序“Hello World”,讲解如何使用记事本或EditPlus编写、保存和编译Java源代码(*.java文件),并解释类定义、主方法(public static void main)及屏幕打印(System.out.println)。强调类名与文件名一致的重要性,以及Java程序的编译和执行过程。通过实例演示,帮助初学者掌握Java编程的基本步骤和常见问题。
|
5月前
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
158 5
Java 并发编程——volatile 关键字解析
|
5月前
|
存储 安全 Java
Java多线程编程秘籍:各种方案一网打尽,不要错过!
Java 中实现多线程的方式主要有四种:继承 Thread 类、实现 Runnable 接口、实现 Callable 接口和使用线程池。每种方式各有优缺点,适用于不同的场景。继承 Thread 类最简单,实现 Runnable 接口更灵活,Callable 接口支持返回结果,线程池则便于管理和复用线程。实际应用中可根据需求选择合适的方式。此外,还介绍了多线程相关的常见面试问题及答案,涵盖线程概念、线程安全、线程池等知识点。
418 2
|
安全 算法 Java
Java 17 新功能介绍(LTS)
Java 17 新功能介绍(LTS)
784 0
Java 17 新功能介绍(LTS)
|
Java 测试技术 API
Java 18 新功能介绍
Java 18 新功能介绍
372 0
Java 18 新功能介绍
|
JavaScript 前端开发 算法
超详细 Java 15 新功能介绍
超详细 Java 15 新功能介绍
210 0
超详细 Java 15 新功能介绍

热门文章

最新文章