Java面向对象程序设计

上传人:宝路 文档编号:48076523 上传时间:2018-07-09 格式:PPT 页数:85 大小:3MB
返回 下载 相关 举报
Java面向对象程序设计_第1页
第1页 / 共85页
Java面向对象程序设计_第2页
第2页 / 共85页
Java面向对象程序设计_第3页
第3页 / 共85页
Java面向对象程序设计_第4页
第4页 / 共85页
Java面向对象程序设计_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《Java面向对象程序设计》由会员分享,可在线阅读,更多相关《Java面向对象程序设计(85页珍藏版)》请在金锄头文库上搜索。

1、第三章 Java面向对象程序设计面向对象概述 3.1类与对象3.2成员变量和成员方法3.3继承与多态3.4包、接口与内部类3.5万物皆对象 v世界是由什么组成的? 名胜 人物品 动物 ,植物 身边的对象布兰尼朱丽叶顾客 姓名:朱丽叶 年龄:28 体重:52千克操作: 购买商品姓名:布兰尼 职衔:收银员 年龄:35 体重:60千克操作: 收款 打印账单对象的特征属性v属性对象具有的各种特征v每个对象的每个属性都拥有特定值 例如:布兰尼和朱丽叶的体重不一样60kg布兰尼属性 35岁收银员布兰尼 对象的特征方法v方法对象执行的操作打单 收银 方法 刷卡 收银员布兰尼对象的属性和方法v 列出尼古拉斯凯

2、奇驾驶的这辆法拉利F360 Spider的 属性和方法v 列出小狗对象的属性和方法属性:品牌:法拉利型号:F360 Spider颜色:黄色价格:380万元 方法:发动停止加速属性: 颜色:白色 方法: 叫跑吃小结1 v 说一说教室里的对象 v 描述他们的属性和方法 颜色:黑色 品牌:BENQ 投影姓名:张三 年龄:20 学习类型:白炽灯 开 关 变亮 变暗材制: 木质 支撑物品封装v对象同时具有属性和方法两项特性 v对象的属性和方法通常被封装在一起,共同体现 事物的特性, 二者相辅相承,不能分割谁看见过只有“完好 的零件和颜色”而不 能开动的汽车?从对象抽象出“类” 抽取出下列对象的属性和方法

3、的共同特征顾客 类顾客类 轿车类类是模子,确定对象将会拥有的 特征(属性)和行为(方法)v类是对象的类型 不同于int类型:具有方法各种口味的球状冰淇淋球状冰淇淋模子小结2v类和对象有什么区别呢? 类是抽象的概念,仅仅是模板,比如说:“人” 对象是一个你能够看得到、摸得着的具体实体,比如:“ 小布什”小布什普京克林顿“人”类特征(属性)年龄 体重 行为(方法) 衣 食 住 行Java 是面向对象的语言 v所有Java程序都以类class为组织单元v关键字class定义自定义的数据类型public class Hello public static void main(String args)

4、System.out.println(“使用Java语言理解程序逻辑“); Java类模板v类将现实世界中的概念模拟到计算机程序中public class 类名 /定义属性部分属性1的类型 属性1;属性2的类型 属性2;属性n的类型 属性n;/定义方法部分方法1;方法2;方法m; 定义类v定义一个类的步骤 1、定义类名 2、编写类的属性 3、编写类的方法类示例2-1用类的思想输出计算机培训中心信息AccpSchool类属性: 中心全称 中心教室数目 中心机房数目 方法: 展示中心信息类示例2-2public class AccpSchool /定义培训中心的属性String schoolNam

5、e; / 中心的全称int classNum; /教室的数目 int labNum; /机房的数目/ 定义培训中心的方法public String toString() return schoolName + “培训ACCP学员“+ “n“ + “配备:“+ classNum + “教“ + labNum + “机“; 定义类的toString()方法, 用于输出类相关的信息 public String toString()return 字符串; /方法体 成员变量常见错误public class .Book String bookName;String authorName;int page

6、Num;boolean isAvailable; 类命名规则: 1、不能使用Java关键字 2、首字母可以为字母,也可以是“_”或“$ ”(建议不要这样) 3、不能包含空格或“.”号代码错误如何创建和使用对象v使用对象的步骤: 使用new创建类的一个对象 使用对象:使用“.”进行以下操作 给类的属性赋值:对象名.属性 调用类的方法:对象名.方法名()AccpSchool center = new AccpSchool();center.schoolName = “北京中心“; /给属性赋值 center.toString(); /调用类的方法,该方法中的操作将被执行public class I

7、nitialAccpSchool public static void main(String args)AccpSchool center = new AccpSchool();System.out.println(center);center.schoolName = “北京中心“;center.classNum = 10;center.labNum = 10;System.out.println(center); 创建和使用对象示例创建“北京中心”对象说一说看到 什么效果? 调用类的toString()方法是特 例:这里使用 center.toString()和center作 用相同 更

8、简便综合案例 v编写学生类,输出学生相关信息 v编写教员类,输出教员相关信息学生类属性: 姓名 年龄 参加的课程 兴趣方法: 显示学员个人信息教员类属性: 姓名 专业方向 教授的课程 教龄方法: 显示教员个人信息小结3v编写一个手机类,并编写测试类显示手机信息为什么需要封装 2-1 v编写一个类,代表教员,要求: 具有属性:姓名、年龄 具有行为:自我介绍 教师的最小年龄要求:22岁public class Teacher1 public String name; / 教员姓名 public int age; /年龄 /* 返回自我介绍的内容*/ public String introducti

9、on() return “大家好!我是“ + name + “,我今年“+ age+“岁“; 为什么需要封装 2-2 v编写一个测试类,要求: 实例化一个教员对象,并对其初始化 在控制台输出该教员的自我介绍public class Teacher1Test public static void main(String args) Teacher1 teacher = new Teacher1(); teacher.name = “李芳“; teacher.age =10; System.out.println(teacher.introduction(); 要满足教员的最小年龄要求,可以通过对

10、属性的封装来实现大家好!我是李芳,我今年10岁什么是封装public class Teacher2 private String name; / 教员姓名 / 返回教员姓名 public String getName() return name; / 设定教员姓名 public void setName(String name) this.name = name; v封装,就是隐藏实现细节 将属性私有化,提供公有方法访问私有属性 通过这些公有方法访问私有属性 Teacher2 teacher = new Teacher2(); teacher.setName (“李芳“); String tN

11、ame = teacher.getName();通过setter、getter方法 访问name属性this代表当前类的实例如何实现封装2-1v封装的实现: 1、修改属性的可见性来限制对属性的访问 2、为每个属性创建一对赋值(setter)方法和取值(getter) 方法, 用于对这些属性的访问 3、在setter和getter方法中,加入对属性的存取限制 public class Teacher3 private String name; / 教员姓名 private int age; /年龄public int getAge() return age; public void setAge

12、(int age) if (age22) System.out.println(“错误!最小年龄应为22岁!“); this.age = 22; /如果不符合年龄要求,则赋予默认值 else this.age = age; /此处省略对name属性的setter、getter方法 123如何实现封装2-2public class Teacher3Test public static void main(String args) Teacher3 teacher = new Teacher3(); teacher.setName (“李芳“); teacher.setAge(10); Syste

13、m.out.println(teacher.introduction(); 使用封装,增加了数据访问限制,增强了程序的可维护性 错误!最小年龄应为22岁! 大家好!我是李芳,我今年22岁测试类通过调用setter方法,为对象的各个属 性赋值小结 4v使用private关键字修饰某个成员变量后,这个 成员变量可以被同一包中的其它类访问吗?v在Java程序中,代码封装带给我们的好处是什 么?小结5请通过代码封装,实现如下需求: 编写一个类Book,代表教材: 具有属性:名称(title)、页数(pageNum),其中页数不 能少于200页,否则输出错误信息,并赋予默认值200 为各属性设置赋值和取

14、值方法 具有方法:detail,用来在控制台输出每本教材的名称和页数 编写测试类BookTest进行测试:为Book对象的属性赋 予初始值,并调用Book对象的detail方法,看看输出 是否正确为什么需要构造方法 2-1v开发教员类Teacher4,要求: 具有属性:姓名、年龄、学历、职位 具有行为:自我介绍public class Teacher4 private String name; / 姓名 private int age; / 年龄 private String education; / 学历 private String position; / 职位public String

15、introduction() return “大家好!我是“ + name + “,我今年” + age + “岁,学历“+education+“,目前职位是“+position; public String getName() return name; public void setName(String myName) name = myName; / 以下是其他属性的setter、getter方法,此处省略 为什么需要构造方法 2-2v编写一个测试类,要求: 实例化一个教员对象,并对其初始化 在控制台输出该教员的自我介绍public class Teacher4Test public static void main(String args) Teacher4 teacher = new Teacher4(); teacher.setName(“李芳“); teacher.setAge(23); teacher.setEducation(“本科“);

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

当前位置:首页 > 中学教育 > 教学课件

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