计算机工程学院课程名称Java工程实训报告
目录
1面向对象的程序设计1
1.1封装1
1.2构造器(构造方法)1
1.3接口 Collection<E>和Map<K,V>1
1.4继承1
2实例1打字游戏1
2.1 实验步骤1
2.2 实验结果1
3实例2弹弹球游戏1
3.1实验步骤1
3.2实验结果1
4实例3贪吃蛇游戏1
4.1实验步骤1
4.2 实验结果1
5实例4女装店管理系统(销售信息管理模块)1 5.1模块功能描述1
5.2销售信息管理模块 ER图1
5.3数据字典1
5.4流程图1
5.5功能点的展示1
5.6原型展示1
总结1
1面向对象的程序设计
1.1封装
对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性)具体来说:
(1)属性:私有 private(提供set和get方法)在
(2)方法:公开或私有public/private
(3)方法声明,然后方法实现。
例如:以显示器为对象,它拥有宽、高、品牌等属性,功能为看电视、电影、显示,所以可先创建属性,然后创建函数(即功能),最后调用函数。
int wide;
int height;
String paizi;
public void xianshi(){
System.out.println("我可以显示,真棒!");
}
1.2构造器(构造方法)
构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。
对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。
当类实例化一个对象时会自动调用构造方法。
构造方法和其他方法一样也可以重载。
(1)构造方法作用:
a、构造出来一个类的实例
b、对构造出来个一个类的实例(对象)初始化。
(2)构造方法的名字必须与其定义的类名完全相同,没有返回类型。
(3)主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的。
(4)类中必定有构造方法,若不写,系统自动添加无参构造函数。
接口不允许被实例化,所以接口中没有构造方法。
(5)不能被static、final、abstract修饰。
(6)构造方法在初始化对象时自动执行,一般不能显式地直接调用.当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应。
完成构造函数的调用。
(7)构造方法分为两种:无参构造方法有参构造方法
(8)自定义类中,如果不写构造方法,java系统会默认添加一个无参的构造方法。
如果写了一个有参的构造方法,就一定要写无参构造方法。
例如:以学生对象为例,学生对象具有姓名(String name)、年龄(int age)、性别(char sex)、地址(String add)等等属性,即需要创建一个无参的构造函数和一个有参数的构造函数来对属性进行赋初值,然后再是各个方法(行为或功能)的实现。
public Person(){
}
public Person(String name,int age,char sex){
=name;
this.age=age;
this.sex=sex; }
1.3接口 Collection<E>和Map<K,V>
1.3.1 接口Collection<E>
(1)List<E>,其中<E>--泛型,类型控制作用,有序的、列表通常允许重复的元素、实现类是大小可变的动态数组,例如:List<String>。
ArrayList和LinkedList的大致区别:
1)ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2)对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3)对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
ArrayList<E>数组形式、放在连续的位置中、可继承、长度可变、所有元素允许为null、适用于查找操作;LinkedList<E>常用的方法
removeFirst() 、removeLast()链表形式、可继承、所有元素允许为null、所有操作都是按照双重链接列表、适用于增删操作。
例如:List<String> list = new ArrayList<String>();
list.add("孟晓军");
list.add("王阳");
set1.add("成青懂");
List<Integer> lin = new LinkedList<Integer>();
lin.add(1);
lin.add(2);
(2)Set<E>无序的、不包含重复元素HashSet<E>
1.3.2 接口Map<K,V>
接口Map<K,V> ,其中K - 此映射所维护的键的类型(键值) ,V - 映射值的类型,一个Map元素就是一个键值对HashMap<Object,Object>。
1.4继承
共性放到父类,特性放到子类;即子类继承父类,其实就是一般继承特殊。
(1)关键字:extends 例如:Cat extends Animal{}
(2)java中一个类最多只能有一个直接的父类,即单继承,java中要实现多继承,通过接口来实现,关键字。
(3)父类中所有属性和方法都能继承给子类;父类中的私有方法不能继承给子类。
(4)不同类型的访问权限与继承。
表1-1访问权限与继承
(5)super()函数的用法
a、super();调用父类的构造方法,只能出现在构造方法的第一行。
b、super.方法名;super表示父类的对象,通过它去调用父类的方法。
2实例1 打字游戏
在打字游戏实例中,创建一个WordGame类;实例要新建一个窗体,所以必须继承一个JFrame 对象,而且还要用到键盘监听接口KeyListener。
2.1实验步骤
2.1.1JFrame创建
在WordGame()构造方法中添加如下代码,既可创建一个窗体:
this.setUndecorated(true);// 设置是否显示边框
this.setAlwaysOnTop(true);// 设置窗口显示在最前端
this.getContentPane().setBackground(Color.BLACK);// 设置窗口内容面板的背景色
this.setSize(400, 600);// 设置窗口大小
this.setLocationRelativeTo(null);// 设置相对位置
2.1.2创建面板并固定
新建一个类MyPanel作为面板,所以MyPane类需要继承一个JPanel对象,创建好面板后需要在窗体中固定,即在WordGame()构造方法声明一个WordGamePanal对象为panal,然后调用this.add(panal);即可将面板固定到窗体中。
class MyPanel extends JPanel implements Serializable{}//创建面板
WordGamePanal panal = new WordGamePanal();// 创建面板的纸张对象
this.add(panal);// 固定纸张。