第八天、idea快捷键

本文介绍了IDEA的快捷键使用,包括主方法提示、打印语句、循环、代码生成等,并讲解了面向对象编程的基础知识,如类、对象的创建,以及面向对象的三大特性。同时,提供了数组toString输出的说明,并给出了几个编程练习。

一、综合小demo(全)

package com.la;
import java.util.Scanner;
public class Project {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("欢迎使用龙哥吃货在线店铺");
        boolean flag=false;
        String[] name=new String[4];
        String[] orderMsg=new String[4];
        String[] time=new String[4];
        String[] address=new String[4];
        String[] totalMoney=new String[4];
        int[] state=new int[4];
        String[] orderName={"红烧带鱼","鱼香肉丝","时令蔬菜"};
        double[] price={38,20,10};
        int[] praise=new int[3];
        name[0]="小龙";
        orderMsg[0]="红烧肉";
        time[0]="2022-4-18-16:46:00";
        address[0]="白云区花园路2号";
        totalMoney[0]="125元";
        state[0]=1;
        do {
            System.out.println("***************************");
            System.out.println("1、我要订餐");
            System.out.println("2、查看钱袋");
            System.out.println("3、签收订单");
            System.out.println("4、删除订单");
            System.out.println("5、我要点赞");
            System.out.println("6、退出系统");
            System.out.println("***************************");
            System.out.print("请选着:");
            int node = scanner.nextInt();
            if(node>6||node<1){
                System.out.println("输入有误,请重新输入");
                flag=true;
            }else {
                switch (node){
                    case 1:
                        if (name!=null&&name.length>0){
                            for (int j = 0; j < name.length; j++) {
                                if (name[j]==null){
                                    System.out.println("*****我要订餐*****");
                                    System.out.print("请输入点餐人的姓名");
                                    String name01 = scanner.next();
                                    System.out.println("序号\t菜名\t单价\t点赞数");
                                    for (int i = 0; i <orderName.length; i++) {
                                        System.out.println((i+1)+"\t"+orderName[i]+"\t"+price[i]+"\t"+praise[i]);
                                    }
                                    System.out.print("请选着你要点的菜单编号:");
                                    int no = scanner.nextInt();
                                    System.out.print("请选择你需要的份数:");
                                    int num = scanner.nextInt();
                                    System.out.print("请输入送餐时间(送餐时间是10~20点间送餐):");
                                    String time01 = scanner.next();
                                    int parseInt = Integer.parseInt(time01);
                                    if (parseInt<10||parseInt>20){
                                        System.out.print("该时间点无法送餐,请重新选择合适的时间:");
                                        time01=scanner.next();
                                    }
                                    System.out.print("请输入送餐地址:");
                                    String address01 = scanner.next();
                                    System.out.println("订餐成功!");
                                    System.out.println("你订的是:"+orderName[no-1]+" "+num+"份");
                                    System.out.println("送餐时间:"+time01);
                                    System.out.println("餐费"+price[no-1]*num+"元,"+"送餐费"+((price[no-1]*num)>30?0:5)+"元,"+"总计:"+((price[no-1]*num)>30?price[no-1]*num:price[no-1]*num+5));
                                    name[j]=name01;
                                    orderMsg[j]=orderName[no-1]+" "+num;
                                    time[j]=time01;
                                    address[j]=address01;
                                    totalMoney[j]=((price[no-1]*num)>30?price[no-1]*num:price[no-1]*num+5)+"";
                                    state[j]=0;
                                    System.out.println("插入的下标为:"+j);
                                    break;
                                }else {
                                    String[] nameTwo=new String[name.length*2];
                                    for (int i = 0; i < name.length; i++) {
                                        nameTwo[i]=name[i];
                                    }
                                    name=nameTwo;
                                }

                            }
                        }
                        break;
                    case 2:
                        System.out.println("*****查看钱袋*****");
                        System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t订单状态");
                        if (name!=null&&name.length>0){
                            for (int i = 0; i < name.length; i++) {
                                if (name[i]!=null){
                                    System.out.println((i+1)+"\t"+name[i]+"\t"+orderMsg[i]+"\t"+time[i]+"\t"+address[i]+"\t"+totalMoney[i]+"\t"+(state[i]==1?"已完成":"进行中"));
                                }

                            }
                        }

                        break;
                    case 3:
                        System.out.println("*****签收订单*****");
                        System.out.println("请选择你要签收的订单号:");
                        int orderNo = scanner.nextInt();
                        for (int i = 0; i < name.length; i++) {
                            if ((orderNo-1)==i&&name[i]!=null&&state[i]==0){
                                System.out.println(orderNo+"号订单签收成功!");
                                state[i]=1;
                                break;
                            }else if ((orderNo-1)==i&&name[i]!=null&&state[i]==1){
                                System.out.println(orderNo+"号订单已经被签收了,不能再次签收");
                                break;
                            }
                        }
                        if (name[orderNo-1]==null){
                            System.out.println("你还没有该订单号,加油消费吧!");
                        }

                        break;
                    case 4:
                        System.out.println("*****删除订单*****");
                        System.out.println("请输入你要删除的订单号:");
                        int dickNo ;
                        while (true){
                            dickNo = scanner.nextInt();
                            if ((dickNo-1)<0||(dickNo-1)>(name.length-1)||name[dickNo-1]==null){
                                System.out.println("输入订单号不合法,请重新输入");
                                continue;
                            }else if (name.length>0&&name[dickNo-1]!=null&&state[dickNo-1]==1){
                                for (int i = dickNo-1; i<name.length-1; i++) {
                                    name[i]=name[i+1];
                                    orderMsg[i]=orderMsg[i+1];
                                    time[i]=time[i+1];
                                    address[i]=address[i+1];
                                    totalMoney[i]=totalMoney[i+1];
                                    state[i]=state[i+1];
                                }
                                if (name[name.length-1]!=null){
                                    name[name.length-1]=null;
                                    orderMsg[name.length-1]=null;
                                    time[name.length-1]=null;
                                    address[name.length-1]=null;
                                    totalMoney[name.length-1]=null;
                                }
                                System.out.println(dickNo+"单号已成功删除");
                                break;
                            }else if(name.length>0&&name[dickNo-1]!=null&&state[dickNo-1]==0){
                                System.out.println("该订单正在进行中,无法删除");
                                System.out.println("请重新输入要删除的订单号");
                                continue;
                            }
                        }
                        break;
                    case 5:
                        System.out.println("*****我要点赞*****");
                        System.out.println("序号\t菜名\t单价\t点赞数");
                        for (int i = 0; i <orderName.length; i++) {
                            System.out.println((i+1)+"\t"+orderName[i]+"\t"+price[i]+"\t"+praise[i]);
                        }
                        System.out.println("请选择你要点赞的菜品序号:");
                        int anInt = scanner.nextInt();
                        if (orderName[anInt-1]!=null){
                            praise[anInt-1]++;
                        }
                        System.out.println("点赞成功!");
                        break;
                    case 6:
                        System.out.println("*****退出系统*****");
                        break;
                }
                if (node==6){
                    System.out.println("退出系统中……");
                    System.out.println("退出成功!");
                }else {
                    System.out.println("返回请按0:");
                    int start = scanner.nextInt();
                    if (start==0){
                        flag=true;
                    }else {
                        System.out.println("输入有误");
                        System.out.println("请重新登入");
                        flag=false;
                    }
                }
            }
        }while (flag);
        System.out.println("欢迎下次再来");
    }
}

二、idea简介

  1. idea是一个集成开发工具
  2. idea可创建一个工程,一个工程下可以创建多个模块
  3. idea调试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jc4MG17f-1651307754027)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220419192822791.png)]

  1. idea常用快捷键

    • psvm/main:提示主方法
    • sout:提示打印语句
    • fori:提示循环for
    • .var: 获取返回值
    • shift+shift:万能查询
    • alt+enter:万能提示
    • Ctrl+d:复制到下一行
    • Ctrl+insert:快速生成代码
    • ctrl+alt+t:快速包裹一段代码
    • Ctrl+alt+m:抽离选中的代码为方法
    • Ctrl+alt+l:格式化代码
    • ctrl+alt+i:自动缩进行
    • shift+enter:开始新的行
    • Ctrl+alt+enter:在当前行开始新的行
    • Ctrl+shift+u:大小写转换
    • Ctrl+left/right:左/右移动一个单词
    • alt+down/up:下/上一个方法
    • Ctrl+p:方法参数类型提示
    • Ctrl+q:快速文档
    • Ctrl+f:当前文件进行查找
    • Ctrl+shift+f:所有文件进行查找
    • Ctrl+r:替换字符(当前文件)
    • Ctrl+shift+r:替换字符(所有文件)
    • Ctrl+shift+n:查找文件并跳转
    • Ctrl+f12:打开文件结构
    • Ctrl+shift+b:跳转到声明类处
    • Ctrl+u:跳转到超级方法
    • Ctrl+alt+b:跳转到实现方法

三、面向对象

  1. java是基于面向对象进行编程的,注重于解决问题的主体,而面向过程注重于解决问题的执行步骤;
  2. 面向对象与面向过程相辅相成,面向过程是面向对象的基础
  3. 面向对象的三大特征:封装、继承、多态
  4. 类:是一组行为和属性的集合
  5. 对象:是类的一个具体的表现
  6. 对象创建
    • 遇到new指令时,首先检查是否能在常量池中定位到该类的符号引用,并检查该符号引用代表的类是否已经被加载、解析、初始化过。若没有,执行相应的类加载
    • 加载通过后,为新对象分配内存
    • 内存空间分配完成后进行初始化为0,然后填充对象头(类、锁、元数据、哈希码、GC年龄等),实例数据,并进行对其填充。

四、数组的toString输出

package com.la;
public class Work01 {
    public static void main(String[] args) {
        int[] a={3,7,8,2,1};
        String toString="";
        for (int i = 0; i < a.length; i++) {
            if (i==0){
                toString=toString+"["+a[0]+",";
            }else if (i==a.length-1){
                toString=toString+a[a.length-1]+"]";
            }else {
                toString=toString+a[i]+",";
            }
        }
        System.out.println(toString);
    }

}

五、练习

5.1 将一组乱序的字符排序
package com.la;
public class Work02 {
    public static void main(String[] args) {
        char[] b={'a','c','u','b','e','p','f','z'};
        char[] sort = sort(b);
        System.out.println("升序:"+sort);
        System.out.println("降序:"+sort1(b));
    }
    public static char[] sort(char[] a){
        for (int i = 0; i < a.length; i++) {
            for (int j = 1; j < a.length-i ;j++) {
                if (a[j]<a[j-1]){
                    char temp=0;
                    temp=a[j];
                    a[j]=a[j-1];
                    a[j-1]=temp;
                }
            }

        }
        return a;
    }
    public static char[] sort1(char[] a){
        for (int i = 0; i < a.length; i++) {
            for (int j = 1; j < a.length-i; j++) {
                if (a[j]>a[j-1]){
                    char temp=0;
                    temp=a[j];
                    a[j]=a[j-1];
                    a[j-1]=temp;
                }
            }

        }
        return a;
    }
}

5.2 在有序字符插入新的字符后任然有序
package com.la;
public class Work3 {
    public static void main(String[] args) {
       char m='m';
        char[] a={'a','b','c','e','f','p','u','z'};
        char[] b=new char[a.length+1];
        for (int j = 0; j < a.length; j++) {
            b[j]=a[j];
        }
        int index=-1;
        for (int i = 0; i < a.length; i++) {
            if (a[i]>m){
                index=i;
                break;
            }
        }
        for (int k = b.length-1; k>index; k--) {
            b[k]=b[k-1];
        }
        b[index]= m;
        System.out.println(b);
    }
}

5.3 定义一个Vehicle类
package com.la;
public class Vehicle {
     double speed;
     double size;
    public Vehicle(){

    }
    public void move(){
        System.out.println("体积:"+this.size);
        System.out.println("速度:"+this.speed);
    }
    public void setSpeed(double speed){
        this.speed=speed;

    }
    public void speedUp(){
        this.setSpeed(++this.speed);

    }
    public void speedDown(){
        this.setSpeed(--this.speed);
    }
}
class Test{
    public static void main(String[] args) {
        Vehicle vehicle = new Vehicle();
        vehicle.size=1000;
        vehicle.speed=100;
        vehicle.move();

        vehicle.setSpeed(200);
        vehicle.move();

        vehicle.speedUp();
        vehicle.move();

        vehicle.setSpeed(200);
        vehicle.move();

        vehicle.speedDown();
        vehicle.move();
    }
}

in(String[] args) {
Vehicle vehicle = new Vehicle();
vehicle.size=1000;
vehicle.speed=100;
vehicle.move();

    vehicle.setSpeed(200);
    vehicle.move();

    vehicle.speedUp();
    vehicle.move();

    vehicle.setSpeed(200);
    vehicle.move();

    vehicle.speedDown();
    vehicle.move();
}

}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值