库存管理_产品库存管理系统的对象设计

上传人:F****n 文档编号:91758463 上传时间:2019-07-01 格式:PPT 页数:145 大小:1.98MB
返回 下载 相关 举报
库存管理_产品库存管理系统的对象设计_第1页
第1页 / 共145页
库存管理_产品库存管理系统的对象设计_第2页
第2页 / 共145页
库存管理_产品库存管理系统的对象设计_第3页
第3页 / 共145页
库存管理_产品库存管理系统的对象设计_第4页
第4页 / 共145页
库存管理_产品库存管理系统的对象设计_第5页
第5页 / 共145页
点击查看更多>>
资源描述

《库存管理_产品库存管理系统的对象设计》由会员分享,可在线阅读,更多相关《库存管理_产品库存管理系统的对象设计(145页珍藏版)》请在金锄头文库上搜索。

1、情境3 产品库存管理系统面向对象设计,学习情境描述,要求根据第一个情境的需求分析结果,学生成立项目开发小组,划分角色,推选项目经理和CTO(首席技术师),程序员。经过讨论给出产品库存管理系统中的实体类:入库单、出库单、库存和用户类和控制类接口的详细设计;利用情境2搭建好的环境,对每个类予以编程实现。,所需知识,类的定义与对象的创建 构造方法的作用及应用 面向对象三大特征:封装性、继承性和多态性的Java语言实现 抽象类与接口的应用 包的创建与使用 访问控制符的应用 异常处理,重点及难点,构造方法的作用及应用 面向对象三大特征:封装性、继承性和多态性的Java语言实现 抽象类与接口的应用 异常处

2、理,能力目标,培养学生面向对象的编程能力 培养学生良好的团队合作意识及沟通协调能力、接收新知识的能力 培养学生分析问题、解决问题的能力、创新能力以及逻辑思维能力,任务一,用Java语言描述现实世界中的Person。,学生讨论确定Person的特征 譬如:name-姓名,age-表示年龄,sex-表示性别等。 确定Person相关的行为 譬如:吃饭、睡觉等。,用Java语言实现Person类,复习引入,面向对象与面向过程的区别?,面向对象编程,面向对象编程是软件设计与实现的有效方法,它将客观世界中存在的事物看作对象,每个客观事物都有自己的特征和行为。,对象的基本概念,变量,方法,客观世界的实体,

3、程序中对象,对象具有两方面的含义(考虑从哪些方面描述对象),面向对象的基本概念,类是抽象的,对象是具体的,具有相同特征和行为的对象被抽象为类。 类是对象的模板,包括一个对象的所有数据和代码。,类的示例,形状类,动物类,汽车类,对象,“对象是存在的具体实体,具有明确定义的状态和行为。”,对象的示例,收银员对象,顾客对象,顾客 姓名:朱丽叶 年龄:28 体重:52千克 操作: 购买商品,状态,姓名:布兰尼 职衔:收银员 年龄:35 体重:60千克 操作: 收款 打印帐单,行为,消息传递,“消息指一个对象为执行某项特定操作而向另一个 对象发送的请求”,类和对象的示例,雇员,收银员,系统管理员,仓库管

4、理员,面向对象技术的实现,对象、类和实体的关系,类是创建对象的模板,对象是类的实例,类的基本概念,现实生活中的对象,class Car int color; int name; int speed; void brake() void speedUp() void slowDown() ,抽象数据类型,程序中的对象,映 射,描述,实 现,类定义,类定义中必须要写类名,应该使用Java语言合法的标识符来命名 类名不能与java中已定义好的类名相同,格式: 修饰符class 类名 extends 父类名 implements 接口名表 成员变量声明 方法成员声明 ,其中class、extends和

5、implements都是Java的关键字。,类中的方法 6-1,方法的名称,参数列表,方法的主体,方法返回的对象类 型或原始类型,方法体,若局部变量与类的成员变量同名, 则类的成员变量被隐藏。,方法体是对方法的实现,它包括局部变量的声明以及所有合法的Java指令。方法体中声明的局部变量的作用域在该方法内部。,类的定义举例,class Car int color; int name; int speed; void brake() void speedUp() void slowDown() ,类的实现,任务一实现,class Person String name; int age; Strin

6、g sex; public void eat() System.out.println(“Its delicious!“); ,【实战】:定义一个名为Rectangle表示长方形的类,它包含double类型的长length和宽width两个数据成员和设置长方形长宽值的方法setDim()、计算长方形面积的方法area()。,类的实现,对象的创建,声明,类名 对象名;,声明并不为对象分配内存空间,而 只是分配一个引用空间,实例化,类名 对象名 = new 类名(),例:Person p=new Person();,运算符new为对象分配内存空间,它调用对象的构造方法,返回引用,初始化,另外执行构

7、造方法,可进行初始化,当一个变量被创建时,会对其中各种类型的成员变量自动按下表进行初始化赋值。,对象的使用,访问对象成员的一般形式为: 对象名.成员变量名 对象名.成员方法名(),运算符”.”在这里称为成员运算符,创建对象举例,class TestPerson public static void main(String args) Person p1=new Person(); p1.name=“Tom“; p1.age=12; p1.sex=“male“; p1.eat(); ,按照前面设计Person类来充当生产车间,创建Person对象,任务二,通过构造方法,初始化Person类的实例

8、,为其成员变量赋初值。,构造方法,在Java中,任何变量在被使用前都必须先设置初值。Java提供了为类的成员变量赋初值的专门功能:构造方法。,构造方法的特点,构造方法名与类名相同。 构造方法不返回任何值,也没有返回类型。 每一个类可以有零个或多个重载的构造方法。若没有为一个类显式的定义构造方法,则当创建类对象时,编译器将自动为它创建一个没有参数的默认构造方法. 构造方法只能在创建对象时通过new关键字来自动调用。,注意:一旦我们自己定义了构造方法,系统将不再为我们提供默认的不带参数的构造方法 。,class Person String name; int age; String sex; pu

9、blic Person(String s1) name = s1; public Person(String s1,int x) name = s1; age = x; ,任务二实现,public Person(String s1,int x,String s2) name= s1; age = x; sex = s2; public void eat() System.out.println(“Its delicious!“); ,class TestPerson public static void main(String args) Person p1=new Person(“Tom“)

10、; Person p2=new Person(“John“,20); Person p3=new Person(“Bob“,22,“male“); System.out.println(p1.name+p1.age+p1.sex); System.out.println(p2.name+p2.age+p2.sex); System.out.println(p3.name+p3.age+p3.sex); ,通过构造方法赋初值,This引用句柄,构造方法的形式参数与类的成员变量名相同 在构造方法中调用其他重载的构造方法,用this(参数列表)的形式,自主学习内部类的定义和使用。,面向对象的基本特征

11、,封装性、继承性、多态性是面向对象的三个主要特性。,封装性的引入,class Person String name; int age; String sex; public void eat() System.out.println(“Its delicious!“); ,class TestPerson public static void main(String args) Person p1=new Person(); p1.name=“Tom“; p1.age=-12;/非法的值 p1.sex=“male“; System.out.println(“p1的年龄是:”+p1.age);

12、,通过实例启发学生思考为什么引入封装性?,封装性的实现,外部世界,所谓封装,就是信息隐藏,隐藏对象的实现细节, 不让用户看到,封装的示例 3-1,接口,采购经理,罗杰斯先生,法拉力公司,.,迪斯尼汽车公司,.,市场经理,雪莉女士,要求,封装的示例 3-2,有选择地提供数据,法拉力公司,迪斯尼汽车公司,封装的示例 3-3,实体法拉力公司,实体迪斯尼汽车公司,Auti Ltd,.,Buto Ltd,.,设置器和访问器方法,封装举例,class Person private int age; public void setAge(int i) if(i130) return; age = i; pu

13、blic int getAge() return age; ,将其设为私有的,方法设为公有,封装的好处,任务三,定义Person类的子类Student类,继承性,类继承是指一个类可以继承其他类的非私有成员,实现代码复用。 被继承的类称为父类,继承父类后产生的类称为子类。,继承,父 类,子类,继承的实现,class SubClass extends SuperClass ,Java中的继承是通过extends关键字来实现的。,关键字,任务三实现,class Student extends Person String school; public void study() System.out.p

14、rintln(“Studding“); public static void main(String args) Person p=new Person(); p.name=“Tom“; p.age=30; p.getInfo(); Student s=new Student(); s.name=“John“; s.age=16; s.school=“清华大学”; s.getInfo(); s.study(); ,继承的特点,注意:在Java语言中,只允许单继承。,继承的优点,构造方法的继承,构造方法不能继承,但子类在创建对象时要对继承来自父类的成员进行初始化,因此,在创建子类时除了执行子类的

15、构造方法外,还需要调用父类的构造方法,具体遵循原则如下:,当子类未定义构造方法时,创建对象时将无条件地调用父类的无参构造方法; 对于父类的含参数构造方法,子类可以在自己构造方法中使用super调用它,但super调用语句必须是子类构造方法中的第一个可执行语句; 子类在自己的构造方法中如果没有用super明确调用父类的构造方法,则在创建对象时,将自动先执行父类的无参构造方法,然后再执行自己定义的构造方法。,任务四,对上例中Student 类继承了父类的所有非私有方法进行重写,多态性,方法重写实现的 动态多态性 (运行时多态),方法重载实现 的静态多态性 (编译时多态),多态性,方法重写,class Rectangle int length; int width; Rectangle(int len , int wid) length = len; width = wid; /* 计算矩形的周长.*/ void getPerimeter() System.out.println(“矩形的周长为“ + (2 * (length + width); ,方法重写,class Square extends Rectangle Square(int len) length = len;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号