一、综合小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简介
- idea是一个集成开发工具
- idea可创建一个工程,一个工程下可以创建多个模块
- idea调试
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jc4MG17f-1651307754027)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220419192822791.png)]
-
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:跳转到实现方法
三、面向对象
- java是基于面向对象进行编程的,注重于解决问题的主体,而面向过程注重于解决问题的执行步骤;
- 面向对象与面向过程相辅相成,面向过程是面向对象的基础
- 面向对象的三大特征:封装、继承、多态
- 类:是一组行为和属性的集合
- 对象:是类的一个具体的表现
- 对象创建
- 遇到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();
}
}
本文介绍了IDEA的快捷键使用,包括主方法提示、打印语句、循环、代码生成等,并讲解了面向对象编程的基础知识,如类、对象的创建,以及面向对象的三大特性。同时,提供了数组toString输出的说明,并给出了几个编程练习。
2475

被折叠的 条评论
为什么被折叠?



