多功能手机-课后程序(JAVA基础案例教程-黑马程序员编著-第三章-课后作业)

【案例3-3】多功能手机

记得 关注,收藏,评论哦,作者将持续更新。。。。

【案例介绍】

  1. 案例描述

随着科技的发展,手机的使用已经普及到每个家庭甚至个人,手机的属性越来越强大,功能也越来越多,因此人们在生活中越来越依赖于手机。

任务要求,使用所学知识编写一个手机属性及功能分析程序设计,测试各个手机的属性及功能。使用手机时,输出当前手机的各个属性参数以及正在使用的功能。

  1. 运行结果

 

【实现思路】

1)通过任务描述可知,需要定义一个手机类Phone实现手机的概念。

2)手机具有属性:品牌(brand)、型号(type)、价格(price)、操作系统(os)和内存(memory)。因此,需要在手机类中定义品牌(brand)、型号(type)、价格(price)、操作系统(os)和内存(memory)的变量。

3)手机具有功能:查看手机信息(about())、打电话(callString no))、玩游戏(playGame())、下载音乐(downloadMusic())、播放音乐(playMusic())。所以,可以定义对应的方法about()、call()、playGame()downloadMusic()playMusic()

【实现代码】

Phone.java

  1. public class Phone {
  2.     String brand;  // 品牌
  3.     String type;   // 型号
  4.     String os;     // 操作系统
  5.     int price;    // 价格
  6.     int memorySize;   // 内存
  7.     // 无参构造
  8.     public Phone(){  
  9.     }
  10.     // 有参构造
  11.     public Phone(String brand, String type, String os, int price, int
  12.  memorySize) {
  13.         this.brand = brand;
  14.         this.type = type;
  15.         this.os = os;
  16.         this.price = price;
  17.         this.memorySize = memorySize;
  18.     }
  19.     // 关于本机
  20.     public void about() {
  21.         System.out.println("品牌:"+brand+"\n"+"型号:"+type+"\n"+
  22.                             "操作系统:"+os+"\n"+"价格:"+price+"\n"+"内存:
  23. "+memorySize+"\n");
  24.     }
  25.     // 打电话
  26.     public void call(int num) {
  27.         System.out.println("使用自动拨号功能:");
  28.         String phoneNo = "";
  29.         switch (num) {
  30.         case 1: phoneNo = "爸爸的号。";break;
  31.         case 2: phoneNo = "妈妈的号。";break;
  32.         case 3: phoneNo = "爷爷的号。";break;
  33.         case 4: phoneNo = "奶奶的号。";break;
  34.         }
  35.         System.out.println(phoneNo);
  36.     }
  37.     // 打游戏
  38.     public void playGame() {
  39.         System.out.println("玩扫雷游戏。");
  40.     }
  41.     // 下载音乐
  42.     public void downloadMusic(String song) {
  43.         System.out.println("开始下载。。。。");
  44.         System.out.println("下载完成。。。。");
  45.     }
  46.     // 播放音乐
  47.     public void playMusic(String song) {
  48.         System.out.println("播放歌曲:"+song);
  49.     }
  50. }

上述代码中,定义了手机的品牌brand、型号type、价格price、操作系统os、内存memorySize等属性,并提供了手机类的无参和参构造,以及打电话call()、打游戏playGame()、下载音乐downloadMusic()、播放音乐playMusic()等方法。

PhoneTest.java

  1. public class PhoneTest {
  2.     public static void main(String[] args) {
  3.         // 通过无参构造创建手机对象一
  4.         Phone p1 = new Phone();
  5.         p1.brand = "苹果";
  6.         p1.type = "iphoneX";
  7.         p1.os = "ios";
  8.         p1.price = 8888;
  9.         p1.memorySize = 16;
  10.         // 测试p1的各项功能
  11.         p1.about();
  12.         p1.call(3);
  13.         p1.playGame();
  14.         p1.playMusic("我的中国心");
  15.         System.out.println("********************");
  16.         Phone p2 = new Phone("华为","华为荣耀20","Android",6666,16);
  17.         // 测试p2 的各项功能
  18.         p2.about();
  19.         p2.call(4);
  20.         p2.playGame();
  21.         p2.playMusic("北京欢迎你");
  22.     }
  23. }

上述代码中,创建了两个手机对象,并输出了这两个手机对象的属性及功能。

 

import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Image; import javax.microedition.lcdui.ImageItem; import javax.microedition.lcdui.Item; import javax.microedition.lcdui.TextField; public class PhoneAdd extends Form { private UIController controller; private Command BACK_COMMAND; private Command SAVE_COMMAND; private TextField nameField; private TextField phoneField; private TextField QQField; private TextField sexField; private TextField ageField; // private ImageItem iconQQ; // private Image icon; public PhoneAdd(String title, UIController control) { super(title); controller = control; this.setCommandListener(new PhoneAddListener()); BACK_COMMAND = new Command("返回", Command.BACK, 1); SAVE_COMMAND = new Command("确认", Command.OK, 2); this.addCommand(BACK_COMMAND); this.addCommand(SAVE_COMMAND); /* try{ icon=Image.createImage("/icon/7.png"); }catch(java.io.IOException e){ icon=null; System.out.println("图片导入异常"); } */ nameField = new TextField("名字", "", 16, TextField.ANY); phoneField = new TextField("电话", "", 16, TextField.PHONENUMBER); QQField = new TextField("QQ", "", 11, TextField.NUMERIC); sexField = new TextField("性别", "", 2, TextField.ANY); ageField = new TextField("年龄","",3,TextField.NUMERIC); // iconQQ=new ImageItem("",icon,Item.LAYOUT_LEFT,"图片无法显示"); this.append(nameField); this.append(phoneField); this.append(sexField); // this.append(iconQQ); this.append(QQField); this.append(ageField); } public void clear() { nameField.setString(""); phoneField.setString(""); sexField.setString(""); QQField.setString(""); ageField.setString(""); } private class PhoneAddListener implements CommandListener { public void commandAction(Command command, Displayable disp) { if (command == BACK_COMMAND) { controller.handleEvent(UIController.EventID.EVENT_VIEW_BACK, null); } else if (command == SAVE_COMMAND) { String name = nameField.getString(); String phone = phoneField.getString(); String QQ = QQField.getString(); String sex = sexField.getString(); String age= ageField.getString(); if ((name == null || name.equals("")) || (phone == null || phone.equals(""))) { return; } Object[] args = { name, phone, QQ, sex ,age}; controller.handleEvent(UIController.EventID.EVENT_NEW_SAVE, args); } } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaozhima-dun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值