Eclipse是功能强大Java集成开发工具。它可以极大地提升我们的开发效率。可以自动编译,检查错误。在公司中,使用的就是Eclipse进行开发。
1.1Eclipse的下载、安装、卸载
下载 http://www.eclipse.org
安装 (只需要解压后就能使用)
卸载(只需要将文件夹删除就可以了)
注意: 开发软件的安装目录中,尽量不要出现空格与中文
1.2Eclipse的使用
在当前阶段,我们只需要完成最基本的Java文件编写,其他功能跟随日常教学慢慢渗透学习。
使用步骤:
1.开启,选择工作空间,如下图
工作空间:指的是将来编写的java源文件存放的位置
下图中的复选框“□”,如果选中,表示使用当前工作空间为Eclipse的默认工作空间,以后启动Eclipse时,不在提示选择工作空间。
2.在左侧空白区域右键 或者 选中File菜单栏, 选择new–> 创建java项目编写项目名称,点击Finish 完成。如下图
3.展开项目,选中源包SRC后,在项目的src目录下右键创建类,指定类的名字 Hello,创建main方法并编写源代码System.out.println(“HelloWorld”);
4.编译与执行
编译:自动编译,当java代码保存的时候,自动 编译class文件
执行:
方式1:点击菜单工具栏中的 绿色带有三角形的 run按钮 运行
方式2:点击菜单栏中Run, 点击Run 运行 快捷键是 ctrl+F11
方式3:选中要运行的java文件,或者在编写代码的空白区域,右键选择 Run As --> 运行java程序
1.3针对Eclipse空间的简单配置
程序的编译环境和运行环境
编译环境:Window – Preferences – Java - Compiler
运行环境:Window – Preferences – Java - Installed JREs
如何显示行号与隐藏行号
显示:在代码区域的左边空白区域,右键 – Show Line Numbers
隐藏:将上面的操作再做一遍
如何更改字体大小与颜色
修改java代码的字体大小与颜色
Window – Preferences – General – Appearance – Colors and Fonts – Java – Java Editor Text Font选中后,点击Edit,进行修改
修改其他字体大小与颜色
Window – Preferences – General – Appearance – Colors and Fonts – Bacic – Text Font 选中后 点击Edit ,进行修改
显示的窗口乱了,还原默认显示模式
Window – Perspective – Reset Prespective
如何去掉默认注释
Window – Preferences – Java – Code Style – Code Templates – Comments – Methods,点击Edit ,将注释部分删除 (不建议删除)
Window – Preferences – Java – Code Style – Code Templates – Code – Method body,点击Edit ,将注释部分删除
切换工作空间
File – Switch Workspace – 指定工作空间 – ok
1.4快捷键
内容辅助键 Alt+/
自动补齐main方法 main 然后 Alt+/
自动补齐输出语句 syso 然后 Alt+/
格式化Ctrl+Shift+f
代码区域右键 – Source – Format
自动导包: Ctrl+Shift+o
如果当前类在多个包中都存在,这时候,使用Ctrl+shift+o,进行选择一个包导入即可。
注释
单行注释
加注释: 先选中需要注释的内容,然后 Ctrl+/
取消注释:先选中需要取消注释的内容, 然后 Ctrl+/
多行注释
加注释: 先选中需要注释的内容,然后 Ctrl+Shift+/
取消注释:先选中需要取消注释的内容, 然后 Ctrl+Shift+
Alt +上下箭头:移动当前代码
Ctrl +Alt+上下箭头
Ctrl+D 删除当前行
Ctrl+1 意见提示功能
1.5断点调试
断点: 就是一个标记
如何设置断点
代码区域左边的空白位置 双击即可
在哪里加
想看哪个语句的执行结果就在该语句前面加
怎么运行断点的程序
代码区域右键 – Debug as – Java Application
显示一个页面,提示是否进入调试页面? 是否记住当前操作?是(Yes)是(勾选复选框)
弹出了断点页面
点哪里
点击 工具栏中的Step Over (执行下一行)
快捷键F6 看到每一步程序的执行过程
看哪里
看代码区域: 对照看程序执行步骤
看Debug区域: 对照看程序执行步骤
看varable区域: 观察变量的创建、复制、销毁
如何消除断点
把设置断点的方式再执行一遍
切换到Debug视图,选择 Breakpoints – Remove All Breakpoints 就是2个XX的图标
1.6项目的删除
在项目区域删除
在左侧PackageExplorer区域对指定项目右键,点击delete删除
在硬盘上删除
在左侧PackageExplorer区域对指定项目右键,点击delete删除,同时选中下面的在硬盘上删除(Delete project contents on disk)
1.7项目的导入
在左侧的PackageExplorer区域右键,选择 import
选择 General – Existing Projects into Workspace
选择后,点击 next
在新的窗口中,点击 Browse 找到需要导入的项目(注意,找到项目的名字位置就可以了),选中要导入的项目,点击Copy复选框,点击Finish完成。
注意事项
Eclipse中已经存在的同名项目不能再次导入
第2章超市库存管理系统
2.1案例介绍
模拟真实的库存管理逻辑,完成超市管理系统的日常功能实现,见下图
2.2案例需求分析
根据案例介绍,我们进行分析,首先需要一个功能菜单,然后输入功能序号后,调用序号对应的功能方法,实现想要的操作。分析步骤如下
1.完成超市商品初始化。创建商品,将商品添加到集合
2.显示来到超市能做的操作,也就是显示主菜单
3.根据接收到的功能选项,执行对应的功能
3.1.库存货物查询
3.2.添加新货物
3.3.删除货物
3.4.修改货物
3.5.退出系统,结束main方法的运行
4.循环,回到 2.显示主菜单
public class FruitItem {
int ID; //商品编号
String name; //商品名称
double price; //商品单价
double number; //商品数量
double money; //商品金额
//上述代码中,对商品信息(编号、名称、单价、数量、金额)进行了封装。这样做的好处在于以后只要找到这个商品,就能够知道该商品的每项信息了。
import java.util.ArrayList;
import java.util.Scanner;
/*
* 超市管理系统
*
* 实现:
* 1.商品数据的初始化
* 2.用户的菜单选择
* 3.根据选择执行不同的功能
* creat 增
* update 修改
* read 查看
* delete 删
*
* 要求:所有的功能,必须定义方法实现
* 主方法main 起到调用的功能
* */
public class Shopping {
public static void main(String[] args) {
//定义一个集合,存储商品类型
ArrayList<FruitItem> array = new ArrayList<FruitItem>();
//调用初始化方法
init(array);
while(true){
mainMenu();//调用菜单方法
//调用用户选择序号方法
int chooseNumber = chooseFunction();
switch (chooseNumber) {
case 1:
//调用货物清单
showFruitList(array);
break;
case 2:
//添加货物
addFruitItem(array);
break;
case 3:
//删除货物
deleteFruit(array);
break;
case 4:
//修改货物
updateFruit(array);
break;
case 5:
return;
default:
System.out.println("添加序号有误");
break;
}
}
}
/*
* 定义方法实现主菜单
* 返回值:无
* */
public static void mainMenu(){
System.out.println();//多一个空行
System.out.println("==================欢迎光临ItCast超市===============");
System.out.println("1.货物清单 2.添加货物 3.删除货物 4.修改货物 5.退出");
System.out.println("请输入需要操作的功能序号");
}
/*
* 第一个功能,实现商品的初始化
* 方法名init
* 返回值:无
* */
public static void init(ArrayList<FruitItem> array){
//创建多个FruitItem类型,并且属性赋值
FruitItem array1 = new FruitItem();
FruitItem array2 = new FruitItem();
FruitItem array3 = new FruitItem();
FruitItem array4 = new FruitItem();
array1.ID = 9001;
array2.ID = 9002;
array3.ID = 9003;
array4.ID = 9004;
array1.name ="绿豆饼" ;
array2.name ="泡芙";
array3.name ="肉松小贝";
array4.name ="桃酥";
array1.price =16.4;
array2.price =3.5 ;
array3.price =19.4 ;
array4.price =9.9;
//将创建的4个FruitItem类型变量,存储到集合中
array.add(array1);
array.add(array2);
array.add(array3);
array.add(array4);
}
/*
* 定义一个方法实现键盘的输入
* 返回值:int
* */
public static int chooseFunction(){
Scanner sc = new Scanner(System.in);
return sc.nextInt();
}
/*
* 定义一个方法用于显示清单
* 返回无
* */
public static void showFruitList(ArrayList<FruitItem> array){
System.out.println();
System.out.println("=============商品库存清单============");
System.out.println("商品编号 商品名称 商品单价");
//遍历集合
for(int i = 0;i<array.size();i++){
//集合get方法,获取出每个FruitItem变量,可以使用FruitItem接收get结果
FruitItem item = array.get(i);
System.out.println(item.ID+" "+item.name+" "+item.price);
}
}
/*
* 定义方法,实现商品的添加功能
* 返回值:无
*
* 提示用户选择的是添加商品的功能
* 创建出FruitItem变量,变量调用属性
* 将输入的每个商品进行赋值
*
* */
public static void addFruitItem(ArrayList<FruitItem> array){
System.out.println("选择的是添加商品功能");
Scanner sc = new Scanner(System.in);
System.out.println("请输入商品的编号");
int number = sc.nextInt();//输入商品的编号
System.out.println("请输入商品的名字");
String name = sc.next();
System.out.println("请输入商品的单价");
double price = sc.nextDouble();
//创建FruitItem变量
FruitItem item = new FruitItem();
item.ID = number;
item.name = name;
item.price = price;
array.add(item);
}
/*定义方法,实现商品的删除功能
* 提示用户选择的是删除功能
* 键盘输入商品的编号
* 遍历集合,获取集合中每个FruitItem变量
* 变量调用属性ID,和输入的编号进行对比,若相同则删除
*
* */
public static void deleteFruit(ArrayList<FruitItem> array){
System.out.println("选择的是删除商品功能");
System.out.println("请输入商品的编号");
Scanner sc = new Scanner(System.in);
int ID = sc.nextInt();
//遍历集合
for (int i = 0; i < array.size(); i++) {
//获取每个FruitItem变量
FruitItem item = array.get(i);
//进行比较
if (item.ID == ID){
//移除集合中的元素,集合的方法用remove实现
array.remove(i);
System.out.println("删除成功");
return;//遍历到一个之后不需要进行继续遍历
//这个return表示结束整个方法
}
}
System.out.println("您输入的编号不存在");
}
/*
* 定义方法,实现商品的修改功能
* 返回值: 无
* 参数: 集合
*
* 提示用户选择的是修改功能
* 提示用户输入需要修改的商品编号
* 遍历集合,获取每个FruitItem变量
* 变量调用ID属性,属性和用户输入的编号比较
* 如果相同:
* 修改调FruitItem中的属性值
* 键盘输入
*/
public static void updateFruit(ArrayList<FruitItem> array){
System.out.println("选择的是修改功能");
System.out.println("请输入商品的编号");
Scanner sc = new Scanner(System.in);
int ID = sc.nextInt();
//遍历集合,获取每个FruitItem变量
for(int i = 0 ; i < array.size(); i++){
FruitItem item = array.get(i);
//获取FruitItem的属性ID,和用户输入的ID比较
if(item.ID == ID){
System.out.println("输入新的商品编号");
item.ID = sc.nextInt();
System.out.println("输入新的商品名字");
item.name = sc.next();
System.out.println("输入新的商品价格");
item.price = sc.nextDouble();
System.out.println("商品修改成功");
return ;
}
}
System.out.println("输入的编号不存在");
}