Java实现查看手机配置与功能(保姆级教程)

"感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友。您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!🚀✨"

代码

实现思路

0X1 设计功能所需

0X2 获取用户输入判断

0X3 退出功能结束

总结以上


代码

```Java
import java.util.Scanner;
class once{
    private  String brand ; // 品牌 不写死应该是可以后续写出有参构造方法自己去控制
    private  int price;  // 价格
    private  String os; // 操作系统
    private  String type; // 型号

    //  构造方法函数
    public once(String brand, int price, String os, String type) {
        this.brand = brand;
        this.price = price;
        this.os = os;
        this.type = type;
    }
    // 配置类
    public void configuration(){
        System.out.println("手机品牌:"+brand+"\n价格:"+price+"\n操作系统:"+os+"\n型号:"+type+"\n===================");
    }
    // 拨号功能
    public void dial(){
        System.out.println("[1]自动拨打联系人电话 \t[2]来电转接听 \t[3]骚扰电话屏蔽 \t[4].........\n================" );
    }
    // 游戏功能
    public void gage(String you1,String you2,String you3)
    {
        System.out.println("[1]"+you1+"\t[2]"+you2+"\t[3]"+you3+"\t[4]..........\n=======================");
    }
    // 音乐功能
    public void music(String yin1,String yin2,String yin3){
        System.out.println("[1]"+yin1+"\t[2]"+yin2+"\t[3]"+yin3+"\t[4]...........\n=======================");
    }

}




public class phone {
    public static void main(String[] args) {
       once box1 = new once("小米",2999,"ios","13promax");
       once box2 = new once("华为",4999,"鸿蒙","13promax冷锋蓝");
        Scanner sc = new Scanner(System.in);   // 键盘录入控制参数
        System.out.println("请输入品牌名称查看配置 \n [1]\t小米 \n [2]\t华为\n输入e键退出程序 \n==========================");
        String console = sc.nextLine();
       while (true){
           if (console.equals("小米")){
               // 选择调用
               box1.configuration();
               System.out.println("编号获取功能:\t[1]电话功能\t[2]游戏功能\t[3]音乐功能");
               int number = sc.nextInt();
               if (number ==1){
                   box1.dial();
               }else if(number ==2){
                   box1.gage("王者农药","和平精英","明日之后");
               }else if(number ==3){
                   box1.music("晴天","七里香","落泪");
               }else {
                   System.out.println("非法输入");
               }
           }else if(console.equals("华为")){
               box2.configuration();
               System.out.println("编号获取功能:\t[1]电话功能\t[2]游戏功能\n[3]音乐功能");
               int number = sc.nextInt();
               if (number ==1){
                   box1.dial();
               }else if(number ==2){
                   box1.gage("第五人格","节奏大师","保卫萝卜");
               }else if(number ==3){
                   box1.music("花海","退后","半岛铁盒");
               }else {
                   System.out.println("非法输入");
               }
           }else if (console.equals("e") | console.equals("E")){
               System.out.println("退出查看 \n=====================");
                break;
           }else {
               System.out.println("非法字符");
               break;
           }

       }
    }
}
```

实现思路

 (1) 分析程序不包含数据的交互改查,所以不需要封装的get和set方法,定义,只需要定义普通的成员属性即可,创建once类定义

 (2) 使用有参构造函数初始化实例对象传入4个定义好的成员变量分别是 品牌(brand),价格(price),操作系统(os),型号(type),实例化2次数据也是独立的,需要写入两部手机的参数

(3) 在once类中写入我们的普通方法,方法是我们的功能 分别是 dial(拨号功能) gage(游戏) music(音乐),同时里面加入形参,利用对象调用还可以传入自己写的实参,形成复用

(4) 在mian中使用Scanner配合if来判断何种手机,再进行方法的调用

0X1 设计功能所需

1 行我们引用好的键盘录入的类

2-14 我们定义好了once类 里面定义了需要有的四个属性,这些都是没有交互的所以我并没有定义set和get方法下方还有有参构造函数,将四个属性全部加入,后续需要实例化

38- 41回到主类的mian方法中,我们实例化有参构造函数,传入两部手机相应的配置,参数全部都是可控的,实例化出box1和box2这两个对象,通过这两个对象就可以调用后续的各种功能,并且不会产生冲突的现象因为实例化后都是独立的

 回到class once中,上方已经实例化对象,那么类里面我们开始定义功能

16-18 查看手机功能,用户在选择好何种手机号会通过对象.方法() 的形式调用这个方法,方法内部写的就是之前有参构造函数传递而来的数据,当然要分清是box1还是box2的数据

19-20 dial拨号功能,定义的只是简单的打印语句,用户选择拨号功能后会自动调用这个方法,利用 \t进行空格和 \n换行让程序更加观

 24-27 gage定义游戏功能,但是写入了形参,这里没有写死是因为游戏不像拨号肯定会有不同,这里定义了3个String类型形参,我们调用时可以自定义的写入我们想要的游戏名称

28-31 music音乐功能选择何种游戏,写法和gage功能一致,定义形参,实参留给我们自定义去写入。

到这里我们once类中已经写完,使用功能均在main方法中。

0X2 获取用户输入判断

42-44 进入在main方法中,在这里首先引入了键盘录入语句Scanner 对应上文 图1-1,获取到了参数,那么就是常规打印语句把条件输出到控制台,有小米和华为通过还有ese退出选项,这样更人性化,退出功能是直接breack,44 行获取到输入的字符串 给到console变量保存

45-59 此步就是判断代码,这个功能能不能实现就看判断到不到位,我还是喜欢if的形式去判断输入,配合while(true) 达到非常好的效果,并且退出程序也是可选的。

为了更加明了我将代码拆分来逐步讲解,

46 这里是第一个if判断,equals比较两个字符串是否相等,用户输入小米而正常进入程序

48 调用手机功能方法,我们小米是box1类则是 box1.configuration() 我们有参的数据也会传递输出手机的各项配置

49-50 完成第一个判断后输出该输出的,进行第二个判断,也就是手机的功能 是电话还是游戏还是音乐,使用int 类型变量存储,因为是编号获取保存到 number 中

51-59 利用number 变量去进行编号的判断,1 2 3 分别对应手机的功能, 1为拨号功能,调用 dial方法即可,直接打印;2 是游戏game功能,调用方法写入我们自定义的实参,3 音乐 music 同样如此, 如果是不正常输入直接截停,并且利用 while(true) 继续开始选择编号

运行结果

输入完一个编号还可以继续选择,非法输入会自动的回到选择编号位置,也可以加入 出功能,退出两个if则是定义一个定量为flag来控制,退出则讲变量变成 false,我这里没有写入感兴趣的可以自己动手写一写

0X3 退出功能结束

60-72 这里和上文判断一致,我也就不过多赘述

73-75 输入E/e 键退出程序,配合 逻辑或| 和equals 这里 大小写都可以判断到退出

76-79 非法字符强制退出结束程序没有什么操作

总结以上

以上就是程序全部讲解,实现其实并没有多复杂,把握基础多花点时间,与其抱怨不如提升自己;如有不正确不恰当之处 望老师同学不吝赐教!

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); } } } }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值