<少女> 2022-10-08 18:11 采纳率: 90.9%
浏览 51
已结题

有谁可以解释一下注释里面的问题?必采纳

有谁可以解释一下这个项目里面的一些注释?我有点不理解,希望有详解

package PJ1;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Scanner;

public class Project {
    static Collection<Phone> c = new ArrayList();//这里为什么需要用static

    public static void main(String[] args) {
        //这里为什么add里面添加的要先建立一个Phone?不能直接c.add()添加吗?
        c.add(new Phone("小米9", "玫瑰金", 3999.00, 15));
        c.add(new Phone("小米9", "幻彩紫", 3699, 28));
        c.add(new Phone("华为P30", "白金色", 5699, 2));
        c.add(new Phone("华为P30", "绚彩白", 5999, 18));
        c.add(new Phone("VIVO PLus9", "幻彩紫", 2699, 28));
        c.add(new Phone("魅族 16th", "紫金黑", 5229, 10));
        c.add(new Phone("苹果 11", "土豪金", 8999, 51));
        //这里true是怎么进行判断的?
        while (true) {
            System.out.println("欢迎使用库房管理系统,请选择要进行的操作");
            System.out.println("1. 商品入库");
            System.out.println("2. 商品显示");
            System.out.println("3. 删除商品");
            Scanner sc = new Scanner(System.in);
            int num = sc.nextInt();//从键盘上收录数据
            if (num == 1) {
                add();
                System.out.println("商品入库成功,入库后仓库商品如下:");
                show();
            } else if (num == 2) {
                show();
            } else if (num == 3) {
                System.out.println("请您输入需要删除的商品编号:");
                Scanner s = new Scanner(System.in);
                int index = s.nextInt();
                delete(index);
                System.out.println("商品出库成功,出库后仓库商品如下:");
                show();
            } else {
                System.out.println("操作失败");
            }
        }
    }

    //这里和下面为什么要添加私有静态方法,而上面的却是公有静态
    private static void add() {
        //这里为什么又有while(true)为什么写这个?怎么判断了true的啊?有没有输入true。
        while (true) {
            System.out.println("您是否录入商品?");
            Scanner s2 = new Scanner(System.in);
            String w = s2.next();
            if (!w.equals("no")) {
                Scanner s=new Scanner(System.in);
                System.out.println("请输入商品的名称:");
                String name=s.next();
                System.out.println("请输入商品的颜色:");
                String color=s.next();
                System.out.println("请输入商品的价格:");
                double price=s.nextInt();
                System.out.println("请输入商品的数量:");
                int num=s.nextInt();
                //这一句里面的是什么意思?
                c.add(new Phone(name,color,price,num));
                break;
            }else{
                break;
            }
        }

    }
    private static void show(){
        Iterator it=c.iterator();
        while(it.hasNext()){
            //下面这句什么意思?为什么括号里面要加phone
            Phone p=(Phone)it.next();
            System.out.println(p.getName()+"...."+p.getColor()+"...."+p.getPrice()+"...."+p.getNum()+"....");
        }
    }
    private  static  void delete(int index){
        c.remove(index);

    }
}


  • 写回答

3条回答 默认 最新

  • kane木易 2022-10-08 18:46
    关注

    第一个注释(这里为什么需要用static),因为你的main方法里有用到他,main方法是静态方法,所有它要用static修饰;
    第二个注释(这里为什么add里面添加的要先建立一个Phone?不能直接c.add()添加吗?),可以直接c.add(),他怎么写也是为了方便,不然要在外面new一堆Phone对象,再一个一个的放到add()里面,比如:Phone phone1 = new Phone("小米9", "玫瑰金", 3999.00, 15);c.add(phone1);,那么多个数据要加到集合里面,还不如他这么写方便;
    第三个注释(这里true是怎么进行判断的?),这个是直接为true了,他是弄了个死循环,一直可以跑while里的业务;
    第四个注释(这里和下面为什么要添加私有静态方法,而上面的却是公有静态),上面的是main方法本来就是公有的,设置私有就不是main方法了,下面私有的你也可以设置成公有的,会出现什么问题可以看一下方法公开和私有的区别,对于你现在给的代码来看没有什么区别;
    第五个注释(这里为什么又有while(true)为什么写这个?怎么判断了true的啊?有没有输入true。),同样的道理,死循环,一直可以跑while里的业务;
    第六个注释(这一句里面的是什么意思?),这个和第二个注释的c.add()一样,只是Phone里面的数据不再是代码里写死的,是根据你输入的数据来填充属性创建Phone再加到集合里;
    第七个注释(面这句什么意思?为什么括号里面要加phone),因为it.next()返回的是Object类,所以要转换到程序预设的类(Phone),括号里加Phone是表示要把这个对象强制转换成Phone类

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 创建了问题 10月8日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号