Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元3Java的面向对象编程

上传人:E**** 文档编号:89189178 上传时间:2019-05-21 格式:PPT 页数:129 大小:1.93MB
返回 下载 相关 举报
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元3Java的面向对象编程_第1页
第1页 / 共129页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元3Java的面向对象编程_第2页
第2页 / 共129页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元3Java的面向对象编程_第3页
第3页 / 共129页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元3Java的面向对象编程_第4页
第4页 / 共129页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元3Java的面向对象编程_第5页
第5页 / 共129页
点击查看更多>>
资源描述

《Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元3Java的面向对象编程》由会员分享,可在线阅读,更多相关《Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元3Java的面向对象编程(129页珍藏版)》请在金锄头文库上搜索。

1、单元3Java的面向对象编程,任务导入,任务一:用面向对象的方法实现一个企业内部员工管理系统的员工建模。员工具有两种身份:普通员工和经理,经理也是员工,他具有员工的一切属性,此外也有属于自身的属性。要求如下。 1)首先设计一个员工类Employee,并描述它的一些基本属性:员工号、姓名、工资等,同时提供一个print()方法用于输出员工的基本信息。 2)创建员工类Employee的对象,并访问其成员。 3)为类Employee定义构造方法,并调用不同的构造方法创建对象。 4)为类Employee增加静态成员变量公司名(company)。 5)实现员工类Employee的数据封装。 6)定义类E

2、mployee的子类Manager,在子类中定义新的属性奖金bonus,增加新的成员方法printBonus()。 7)在子类Manager中重写父类的print()方法。,教学目标,知识目标 理解类与对象的概念。 掌握类的定义和对象的创建。 理解构造方法的概念和定义。 理解面向对象的三大特征:封装、继承和多态。 技能目标 能够利用面向对象的方法设计Java程序,相关知识,类与对象 构造方法 类成员 内部类 Java实现面向对象的三大特征,类与对象,面向对象编程是软件设计与实现的有效方法,它将客观世界中存在的事物看作对象,每个客观事物都有自己的特征和行为。,对象的示例,收银员对象,顾客对象,顾

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

4、模板,对象是类的实例,类定义,类定义中必须要写类名,应该使用Java语言合法的标识符来命名 类名不能与java中已定义好的类名相同,格式: 修饰符class 类名 extends 父类名 implements 接口名表 成员变量声明 方法成员声明 ,其中class、extends和implements都是Java的关键字。,类中的方法 6-1,方法的名称,参数列表,方法的主体,方法返回的对象类 型或原始类型,方法体,若局部变量与类的成员变量同名, 则类的成员变量被隐藏。,方法体是对方法的实现,它包括局部变量的声明以及所有合法的Java指令。方法体中声明的局部变量的作用域在该方法内部。,任务一第

5、一步,【实战】:定义一个名为Rectangle表示长方形的类,它包含double类型的长length和宽width两个数据成员和设置长方形长宽值的方法setDim()、计算长方形面积的方法area()。,练习,对象的创建,声明,类名 对象名;,声明并不为对象分配内存空间,而 只是分配一个引用空间,实例化,类名 对象名 = new 类名();,例:Employee e1=new Employee ();,运算符new为对象分配内存空间,它调用对象的构造方法,返回引用,初始化,另外执行构造方法,可进行初始化,当一个变量被创建时,会对其中各种类型的成员变量自动按下表进行初始化赋值。,对象的使用,访问

6、对象成员的一般形式为: 对象名.成员变量名 对象名.成员方法名(),运算符”.”在这里称为成员运算符,任务一第二步,按照前面设计Employee.类来充当生产车间,创建Employee类的对象,构造方法,在Java中,任何变量在被使用前都必须先设置初值。Java提供了为类的成员变量赋初值的专门功能:构造方法。,构造方法的特点,构造方法名与类名相同。 构造方法不返回任何值,也没有返回类型。 每一个类可以有零个或多个重载的构造方法。若没有为一个类显式的定义构造方法,则当创建类对象时,编译器将自动为它创建一个没有参数的默认构造方法. 构造方法只能在创建对象时通过new关键字来自动调用。,注意:一旦我

7、们自己定义了构造方法,系统将不再为我们提供默认的不带参数的构造方法 。,class Employee int id; String name; float salary; public Employee() public Employee(int x) id = x; ,任务一第三步,public Employee(int x,String s) id = x; name = s; public Employee(int x,String s,float y) id = x; name = s; salary = y; public void print() System.out.printl

8、n(“工号:“+id+“姓名:“+name+“工资:“+salary); ,class TestEmployee public static void main(String args) Employee e1=new Employee(1); Employee e2=new Employee(2,“王强“); Employee e3=new Employee(3,“李明“,3500f); e1.print(); e2.print(); e3.print(); ,通过构造方法赋初值,关键字this的作用,this代表对当前对象的引用。利用关键字this,可以在构造方法和非静态方法中引用当前对象

9、的任何成员。 构造方法的形式参数与类的成员变量名相同 在构造方法中调用其他重载的构造方法,用this(参数列表)的形式 参照P72、P73的代码,类成员 静态成员变量,假如要表示IBM公司的所有员工,在Employee类中增加一个成员变量公司(company),如何实现 ?,思考?,类变量,Company=“IBM”,static,静态变量或类变量,静态变量的访问:类名.变量名,任务一的第四步为Employee类增加静态成员变量company,class Employee int id; String name; float salary; static String company=“IBM

10、“; public Employee(int id) this.id=id; public Employee(int id,String name) this(id); this.name=name; public Employee(int id,String name,float salay) this(id,name); this.salary=salay; public void print() System.out.println(“工号:“+id+“姓名:“+name+“工资:“+salary); class TestEmployee public static void main(

11、String args) Employee e1=new Employee(1); Employee e2=new Employee(2,“王强“); Employee e3=new Employee(3,“李明“); e1.print(); e2.print(); e3.print(); System.out.println(Epany); ,类变量的应用访问量统计,class Count public static void main(String args) User u1=new User(); u1.login(); User u2=new User(); u2.login(); ,

12、class User static int count=0; void login() count+; System.out.println(“你是第“+count+“位访问者“); ,静态成员方法 static修饰符,static修饰符修饰的方法叫静态方法,目的:使方法独立于类的实例,使用类去访问,类方法,调用静态方法的语法为: classname.methodname( );,类方法的应用,思考,为什么main()方法要用static来修饰?,内 部 类,在类的内部定义的类称为内部类,内部类的主要作用是将逻辑上相关联的类放在一起。在解决一个复杂的问题时,可能希望创建一个类,用来辅助自己的程

13、序方案,但是又不希望将其公开,内部类则可以实现这一点。内部类经常用于GUI(图形用户界面)的事件处理。,内部类的定义,简单的内部类定义如下: class A class B() 此时类B就是类A的内部类,类A称为类B的外部类。,内部类的特性,名字不能与包含它的类名相同。 可以使用包含它的类的静态和实例成员变量,也可以使用它所在方法的局部变量。 可以定义为abstract类型。 可以声明访问权限为private或protected。 若想在内部类中声明任何static成员,则该内部类必须声明为static类型。,内部类的定义和使用案例3-2,Java实现面向对象的三大特征,封装性、继承性、多态性

14、是面向对象的三个主要特性。,封装性的引入,class Employee int id; String name; float salary; static String company=“IBM“; public Employee() public Employee(int id) this.id=id; public Employee(int id,String name) this(id); this.name=name; ,public Employee(int id,String name,float salay) this(id,name); this.salary=salay; p

15、ublic void print() System.out.println(“工号:“+id+“姓名:“+name+“工资:“+salary); class TestEmployee public static void main(String args) Employee e1=new Employee(1); e1.name=“刘华“; e1.salary=-1000f; e1.print(); ,通过实例启发学生思考为什么引入封装性?,封装性的实现,外部世界,所谓封装,就是信息隐藏,隐藏对象的实现细节, 不让用户看到,封装的示例 3-1,接口,采购经理,罗杰斯先生,法拉力公司,.,迪斯尼

16、汽车公司,.,市场经理,雪莉女士,要求,封装的示例 3-2,有选择地提供数据,法拉力公司,迪斯尼汽车公司,封装的示例 3-3,实体法拉力公司,实体迪斯尼汽车公司,Auti Ltd,.,Buto Ltd,.,设置器和访问器方法,任务一的第五步,实现封装的Employee类,class Employee int id; String name; private float salary;/数据私有化 public void setSalary(float i) if(i5000)/规定员工的工资在10005000之间 return; else salary = i; public float getSalary() return sal

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

当前位置:首页 > 高等教育 > 大学课件

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