java面向对象程序设计吴卿

上传人:tian****1990 文档编号:71694950 上传时间:2019-01-21 格式:PPT 页数:24 大小:1.44MB
返回 下载 相关 举报
java面向对象程序设计吴卿_第1页
第1页 / 共24页
java面向对象程序设计吴卿_第2页
第2页 / 共24页
java面向对象程序设计吴卿_第3页
第3页 / 共24页
java面向对象程序设计吴卿_第4页
第4页 / 共24页
java面向对象程序设计吴卿_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

1、第四章 类和对象,吴卿,目录,抽象与封装 类和对象的定义 对象与基本数据类型变量的区别 静态变量和静态方法 数据成员的初始化 包 访问权限控制 作用域 关键字this,抽象与封装,类对象的抽象、模板;对象是类的实例 Java中除了基本数据类型,一起都是对象 抽象数据抽象、行为抽象 类数据和操作的封装体,实现了数据隐藏。 在Java中,类是一种引用数据类型,描述了该类对象的状态和行为 例4-2,基本与引用数据类型,基本数据类型 变量值 引用数据类型 变量地址 类名 对象名 (只是创建名字,一个地址) new 类名(.) 在堆中创建对象,Cat cat = new Cat(); cat.age =

2、 2; cat.weight=5; cat.meow();,对象与基本数据类型变量的区别,对象的运算 = = != + += P73 例子 把对象传递给方法 形参、实参 传引用 Java值传递,Cat c1 = new Cat(); Cat c2 = new Cat(); c2 = c1,静态变量,对类成员的访问,一般要通过对象。 之前学习的程序,没有创建对象,直接访问了main? static 变量、方法 (类的静态变量类变量,唯一的存储空间) 静态成员属于类及其创建的对象(唯一性) 实例成员只属于具体的对象(多样性) 静态变量的声明及访问 P.76,静态方法,实例方法 静态方法 没有thi

3、s引用(this引用当前创建的对象) 例P.77,数据成员的初始化,变量声明在方法体内,为局部变量 局部变量没有默认值,必须初始化(赋值)后使用。P.78 P.78, 4.5 对比 类中的数据成员,Java可以自行初始化。P.78 例4-7 P.80 ,变量声明顺序注意 一般应在前面已有定义 静态变量例外(可以延后),构造方法,构造函数、构造器初始化类的对象 特殊的方法 名字与类名相同 没有返回值,也不能是void (啥都没有;有就不是) 可以无参、可以有参数、参数类型和个数可以不同构造方法重载(在同一个类中出现的同名方法)P.81 4-9,类中静态变量初始化,静态变量属于类 一个静态变量只存

4、在一个地方,唯一性。 静态变量的声明只在第一次使用其所属类时执行。 如何对类中静态变量初始化? 一般不允许在构造方法中执行。Why? 初始化顺序-静态变量(only once)、实例变量、构造函数 P4-11,静态初始化块,类中静态变量在申明时便指定初始值,保证只被初始化一次。 C#,允许定义静态构造方法,第一次使用该类时使用。Java不允许。 Java使用“静态初始化块”static +体,在类中,不能在任何方法中。 例:4-12 静态初始化块,静态变量初始化语句,二者按照在类中定义的顺序执行。,实例初始化块,,前面无static 一般不使用。在构造函数中初始化类的实例变量。 一般初始化块应

5、放在全部数据成员声明后面。(在构造方法前执行) 例:P85 (创建对象的ID自动增加?) 例子:4-13 顺序:静态、实例. 层层往下,再返回,包,当源代码文件1 ?,定义有重名产生了冲突怎么办? 引用包相关类组织在一起 package 语法:package 包名; 每个源文件只有一个类为public,可以被包内外访问。 一个源文件经编译后,可以有多个.class文件,与源文件中class的个数相同,名称相同。 同一个包中的类文件放在同一个目录下。包名与目录结构一一对应。,有包情况下编译、运行,package myPackage; public class Dog . 设当前路径:C:test

6、 javac d c:test Dog.java 在”c:test”后自动创建myPackage目录,编译后的Dog.class置于其中 c:test java myPackage.Dog (整体性),包的命名,解决冲突、唯一性 和什么相似?域名 例如:域名 包名:cn.edu.hdu.mypackage 对应目录:路径cneduhdumypackage 使用包中的类 mypackage.Dog dog = new mypackage.Dog(); import mypackage.Dog;,Jar文件,对包中的类打包 例如:jar cvf animal.jar mypackage 如何使用

7、? javac cp animal.jar TestPackage.java java cp .;animal.jar TestPackage,访问权限控制,public 公有,(包外、包内,类内部),修饰类、成员变量和方法 protected 保护,(包外子类、包内、类内部),不能修饰顶层类 super 和 this default 【无修饰符】 包访问权限,默认,(包内、类内部) private - 私有,(类内部),私有 private,在编写类时,我们一般将成员变量声明为private,操作变量的方法声明为public? 保护成员变量,对外界隐藏。 公有和私有? 公有变量的局限 私有变

8、量的优点 读取、修改控制 变量合法性检测(在服务端) 升级控制 (改变变量名称、方法的控制逻辑),作用域,标识符在代码中可以使用的范围 类成员的作用域是整个类 顺序不定 一般建议:静态变量、实例变量、静态初始化块、实例初始化块、构造方法、普通方法 局部变量的作用域是从它的声明开始到包含它的代码块结束 Java不允许在嵌套块中声明同名变量 P100,对象的存在时间与垃圾回收,局部变量栈 对象堆 对象引用计数 JVM垃圾回收机制,this 关键字,this 对象自己 属于对象的成员引用 this() this(,) 注意:里面的参数不能是实例成员 P.102, 103 105 例子 4-19 P.103 4-20,类库中的类,类 接口 枚举 API Source目录 Math 类,静态数据成员、方法,习题,P110-114,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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