Java课程面向对象基础.pdf

上传人:PIYPING 文档编号:10914983 上传时间:2021-06-12 格式:PDF 页数:27 大小:1.04MB
返回 下载 相关 举报
Java课程面向对象基础.pdf_第1页
第1页 / 共27页
Java课程面向对象基础.pdf_第2页
第2页 / 共27页
Java课程面向对象基础.pdf_第3页
第3页 / 共27页
Java课程面向对象基础.pdf_第4页
第4页 / 共27页
Java课程面向对象基础.pdf_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《Java课程面向对象基础.pdf》由会员分享,可在线阅读,更多相关《Java课程面向对象基础.pdf(27页珍藏版)》请在三一文库上搜索。

1、IT教育系列 用对象来分析世界 面向对象初级 JAVA-第10节 版权声明 本课件由浙江浙大网新集团有限公司(以下简称:网新集团)编制,仅本课件由浙江浙大网新集团有限公司(以下简称:网新集团)编制,仅 供网新集团培训机构的学员学习使用;供网新集团培训机构的学员学习使用; 网新集团享有本课件中的文字叙述、文档格式、插图、照片等所有信息网新集团享有本课件中的文字叙述、文档格式、插图、照片等所有信息 资料的版权,受知识产权法及版权法等法律、法规的保护。任何个人或资料的版权,受知识产权法及版权法等法律、法规的保护。任何个人或 组织未经网新集团的书面授权许可,均不得以任何形式使用本课件的任组织未经网新集

2、团的书面授权许可,均不得以任何形式使用本课件的任 何内容,否则将视为不法侵害,网新集团保留追究侵权人相关法律责任何内容,否则将视为不法侵害,网新集团保留追究侵权人相关法律责任 的权利的权利 如您不接受上述声明,请勿使用本课件,并尽快销毁或删除本课件任何如您不接受上述声明,请勿使用本课件,并尽快销毁或删除本课件任何 形式的备份;如您使用本课件,将被视为您接受并同意遵守上述声明。形式的备份;如您使用本课件,将被视为您接受并同意遵守上述声明。 第2页 内容提要 第3页 对象的属性和行为 2 简单访问权限 3 方法的封装及参数传递 4 编程模式的演化过程 1 换个角度看世界 5 对象的生命周期 6 1

3、. 编程模式的演化过程 第4页 1.1 编程模式面向过程 第5页 。 向左移动(对手车) 向右移动(我的炮) 向右下移动(对手的马) 向上移动(我的车) 1.2 编程模式面向对象 第6页 。 对手.车.向左移动() 我.炮.向右移动() 对手.马.向右下移动() 我.车.向上移动() 对象的特征 万物皆对象 学校领域:学生 成绩单 老师 课程 教室 银行领域:银行账户 出纳员 支票 汇率 现金 验钞机 商城领域:客户 商品 订单 发票 。 每个对象都是唯一的 世界上不存在两片一摸一样的叶子 对象具有属性和行为 小张 女 15岁 1.6M 40KG 能够学习 唱歌 打球 手机 HTC 3000元

4、 银白色 能够拍照 打电话 发短信 对象具有状态,是指某个瞬间对象的各个属性的取值。对象的某些行为往往会 改变对象自身的状态 对象都属于某个类。 同一个类的所有实例具有相同属性和行为 第7页 类之间的关系 关联:类A与类的实例之间存在特定的对应关系 1对1 1对多 多对多 依赖:类访问类提供的服务 类A访问类B的属性或方法,或者类A负责实例化类B,A依赖于B 聚集:类为整体类,类为局部类,类的对象由类的对象组合而成 普通聚集:台灯 灯泡 台式计算机 鼠标 打印机 声卡 网卡 强聚集:台灯 电线 主板集成显卡 声卡 网卡 泛化:类继承类 实现:类实现了接口B 第8页 2.1 换个角度看世界-一切

5、皆对象 第9页 移动 2.2 换个角度看世界-OOA(分析) 第10页 车型 三厢轿车 移动(向前移动,向后移动) 颜色 红色(RED) 2.3 换个角度看世界-OOD(设计) 第11页 对象 (汽车) 属性(车型) = 三厢轿车 属性(颜色) = 红色 行为(移动) = 向前移动 向后移动 2.3 换个角度看世界-OOD(JAVA) 第12页 public class Auto private int type = 1;/车型(三厢轿车) private Color color = Color.RED;/颜色(红) public void move (int flag) if(flag=-1

6、) /TODO 向后移动 else /TOTO 向前移动 2.3 换个角度看世界-OOD(JAVA总结) 第13页 修饰符 class 类名 属性列表 方法(行为)列表 基于我们目前的进度,这里的修饰符仅限于public,更多 高级修饰符请参考面向对象(高级)教程 3.1 对象的属性和行为/方法直观概念 第14页 public class Auto private int type=1;/属性属性 private Color color=Color.RED;/属性属性 public void move(int flag) /行为行为 if(flag=-1) /TODO 向后移动 else /T

7、OTO 向前移动 3.2 对象的属性和行为/方法抽象概念 第15页 属性 用来保存对象或类的相关属性值时使用的“域”或“属性” 的变量 在Java中,属性可以是任何类型的数据,比如对象,简单类 型,数组等 行为 行为常称作方法 方法是用来为自身或者其他对象提供处理数据的一种能力, 这里的数据可以是自身的属性或者其他来源的数据 3.3 对象的属性和行为/方法属性举例 第16页 1.人的相关属性人的相关属性 private int age = 18; /年龄 默认值18 private int sex; /性别 没有默认值 private Date birthday; /生日 没有默认值 priv

8、ate String name = null; /姓名 默认值为null . 2.学生相关属性学生相关属性 private String no; /学号 没有默认值 private int age = 18; /年龄 默认值18 private String name = null; /姓名 默认值为null . 3.4 对象的属性和行为/方法方法举例 第17页 1.人的相关方法人的相关方法 public void eat(Food food) public int getAge() return age; 2.学生相关方法学生相关方法 public int getAge() return a

9、ge; 3.5 对象的属性和行为/方法总结 第18页 1.属性定义属性定义 修饰符 类型 变量名 = 默认值 ; 2.方法定义方法定义 修饰符 返回值类型 方法名(参数列表) 方法体 4.1 简单访问权限 第19页 1.public 可以被所有类访问,用于修饰对外完全公开的方法或属性。 简单来说,访问该成员的相关代码可以写在任何地方。 2.private 只能被自己访问,用户修饰完全私有的属性或方法,任何 其他类相关的代码都不可访问。 注:更多高级访问权限请参考注:更多高级访问权限请参考面向对象(高级)教程面向对象(高级)教程 5.1 方法的封装 第20页 1.封装的目的封装的目的 为了提高程

10、序的复用程度,提高开发效率,降低开发维护成本,我们在设计对 象时,要考虑方法的封装。 在面向对象编程中,封装就是为了隐藏实现细节,优化代码分工。 2.封装的实现封装的实现(举例举例) /实现求n的阶乘 public long factorial(int n) long tmp = 1; for(int i=1;i=n;i+) tmp*=i; return tmp; 简单类型包括:int long,boolean,float, double,byte,short, char 1.简单传值简单传值 /传递简单类型数据时,我们认为是传值参数传递简单类型数据时,我们认为是传值参数 public lon

11、g add(long a , long b) /. a = 100;/注意此处代码 return a+b; public static void main(String.args) long first = 1; long second = 3; *.add(first,second); System.out.println(first);/此处打印仍然为1 5.1 方法的封装参数传递 第21页 所有类的实例都称作 对象类型数据 2.传引用传引用 /传递对象类型数据时,我们认为是传引用传递对象类型数据时,我们认为是传引用 public StringBuffer concat(StringBuf

12、fer a , StringBuffer b) /. b.append(“!”);/注意此处代码 return .; public static void main(String.args) StringBuffer first = new StringBuffer(“Hello”); StringBuffer second = new StringBuffer(“World”); StringBuffer tmp = *.concat(first,second); System.out.println(second);/此处打印”World!” 注意:在java中并没有传引用这种说法,而是我

13、们在实际编程过程中发现有类似传引用 的这种形式,有心的同学可以注意以上两种参数传递的本质 5.2 方法的封装参数传递 第22页 3.可变参数可变参数 /传递对象类型数据时,我们认为是传引用传递对象类型数据时,我们认为是传引用 public String concat(String.words) StringBuffer tmp = new StringBuffer(); /words 实际上是个数组,我们用数组形式来访问即可 for(String word:words) tmp.append(word); tmp.append(“ ”); tmp.delete(tmp.length()-1,t

14、mp.length(); return tmp; public static void main(String.args) StringBuffer tmp = *.concat(“Hello”,”Kitty”,”,”,”I”,”am”,”Kerry”,”!”); System.out.println(tmp);/此处打印”Hello Kitty,I am Kerry !” 5.3 方法的封装参数传递 第23页 1.简单传值简单传值 当传递参数类型为简单类型时,参数为传值参数,在方法内部不能改变原值。 2.传引用传引用 当传递参数为对象类型是,参数为传引用参数,在方法内部对对象的改变会影响原对

15、象, 注意,如果对参数变量进行赋值,并不会影响原值。 3.可变参数可变参数 定义形式:修饰符 返回类型 方法名(固定参数列表,可变参数类型可变参数类型.可变参数名可变参数名) 可变参数实质上是数组,我们可以使用数组的形式进行访问。 注意:可变参数的定义只能出现在参数列表的末尾。 5.4 方法的封装参数传递(总结) 第24页 方法的封装参数传递 1、对于原始数据类型,也就是int、 long、char之类的类型,是传值的,如果 你在方法中修改了值,方法调用结束后,那个变量的值没用改变。 2、对于对象类型,也就是Object的子类,如果你在方法中修改了它的成员的值, 那个修改是生效的,方法调用结束

16、后,它的成员是新的值,但是如果你把它指 向一个其它的对象,方法调用结束后,原来对它的引用并没用指向新的对象。 第25页 方法的封装参数传递 public class Tester public static void main(String args) int primitive = 2; changePrimitive(primitive); MyClass myClass = new MyClass(); changeObject(myClass); System.out.println(primitive); System.out.println(myClass.i); public static void changePrimitive(int primitive) primitive = 3; public static void changeObject(MyClass myClass) myClass.i = 3; myClass = new MyClass(); class MyClass int I; 第26页 第27页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1