- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 超类名{ }
概念:继承/派生、超类(基类)/子类(派
您可能关注的文档
最近下载
- 小班数学活动《小动物在哪里》PPT课件.ppt
- 全国节约用水知识竞赛题库(含答案).pdf
- 机动护士培训【30页】.pptx
- unit 2(单元测试)-2024-2025学年人教PEP版英语三年级上册.doc VIP
- 控制系统仿真与计算机辅助设计第三版薛定宇习题答案.pdf
- 土地资源管理学(第二版)张正峰,第一至第十二章知识点.docx
- (人教2024版)化学九年级上册 跨学科实践:基于碳中和理念设计低碳行动方案 课件.pptx
- 化工技术经济可行性研究报告书1116.doc
- 宋元考古课件:磁州窑.ppt
- 2023年西南民族大学计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
文档评论(0)