面向对象语言基础.pptx

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象语言基础

江西师范大学·计算机信息工程学院·计算机科学系;;4.1 区分类、对象和对象的引用 4.2 对象的使用 4.3 类的继承 4.4 类及其成员的修饰 4.5 对象的多态 4.6 抽象类和接口 4.7 类中的特殊成员;一个简单的例子 对象和对象引用的存储方式 对象及其引用的创建和初始化 对象的销毁;;与类定义有关的注意事项 若文件中有public类,则类名必须文件名相同; 空类:如: class Species { } Java中类是根据类的名字作区分的,而非内容。 成员变量可以递归定义。;静态内存分配(基于栈的内存管理模式) 即假定函数空间分配在起始地址为0,空间大小为S的内存块上。 当函数执行时,把该空间映射到具体的内存空间 当函数执行结束后,把该函数登记的标记删除 静态内存分配是内存空间自动分配的基础。 特色:自动push/pop各函数空间 哪些数据接受栈式内存管理 在函数中定义的所有变量(基本型或引用型)。;;基于堆的内存管理模式——手动/动态内存管理 堆的含义及特点:各子程序共享的内存空间 引入背景和特点:自动管理僵硬,需手动相辅 接受堆式内存管理的数据:所有对象空间 ;public class S{ String s=abc; int i=5; int[] k={1,2,3}; void a( ){ int i=2; S sh=new S( ); sh.b( ); } void b( ){ char j=p; S sh=new S( ); } main(String[] args){ S sh=new S( ); sh.a( ); } };Java对象的存储示意图;对象 -- 引用 类似 人的实体 -- 人名 可一人多名。能否多人一名? 加前缀,如:java.util.Scanner 注:加全部前缀后,不能再有多人一名现象。 引用的构造和初始化 引用的构造即引用的定义;初始化即首次赋值。;对象的构造及初始化 new 构造函数([参数列表]); 如:String s=new String(abc); 数组、字符串也可特殊构造 如:int[] a={1,2,3}; String s=123;;构造函数的特点 外观:与类同名,无返回值,不能用void声明。 若类中未定义任何构造函数,则系统自动提供一个默认的无参构造函数;反之,将不提供。 通过new调用,不能通过引用名来调用。 其他特色将在后续内容介绍。 如借助this、super调用构造函数等 ;对象的销毁:即回收对象占用的空间。 对象销毁前可能需要扫尾工作,如释放该对象相关的资源、关闭文件或数据库连接等。 扫尾:重写Object类的finalize()方法 注意重写格式,否则是普通方法,扫尾后对象依旧存在。 该方法在对象销毁前由垃圾回收器自动调用,何时销毁由垃圾回收器决定。 这种情形类似你打电话给环保局要求打扫卫生,他可能响应,更可能不搭理你!;对象的引用 赋值 相等判断 对象数组 从存储管理角度解释参数传递 成员变量和局部变量;对象的引用 格式为:对象.成员 如:a.length、abc.length( ) 常量引用 引用不可更改,表示指向哪一对象不能更改,指向对象的内容依旧可能会被更改; 注意事项 空指针异常:引用对象的成员时,对象不存在。 引用必须拥有完整的引用路径。;对象的赋值和引用的赋值 如对类E,有以下语句:注意观察内存分配效果;;相等判断 ==:判别地址是否相同 equals() 直接使用Object类的equals():判别地址是否相同 自定义类中重写此方法:更为通用 String类的equals()方法就是重写Object类的equals() 重新定义equals()(即重载);;4.2.5 从存储管理角度解释参数传递(ch_4_11);成员变量和局部变量 成员变量:类中定义的变量,在该类/对象中属于全局变量; 局部变量:方法中定义的变量,局部于该方法 相关注意 在Java中,对象的所有成员变量都会被初始,默认值为0、false、null;成员常量只能在定义时或是构造函数中赋值。 方法中的局部变量/常量,均不会被自动初始化。;继承的语法 is-A和has-A关系 构造函数的调用顺序 super和this;概述 功用:子类拥有超类的全部内容。 语法:class 子类名 extends 超类名{ } 概念:继承/派生、超类(基类)/子类(派

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档