Java面向对象程序设计4(吴卿).ppt_第1页
Java面向对象程序设计4(吴卿).ppt_第2页
Java面向对象程序设计4(吴卿).ppt_第3页
Java面向对象程序设计4(吴卿).ppt_第4页
Java面向对象程序设计4(吴卿).ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 类和对象 吴卿 目录 抽象与封装 类和对象的定义 对象与基本数据类型变量的区别 静态变量和静态方法 数据成员的初始化 包 访问权限控制 作用域 关键字this 抽象与封装 类对象的抽象、模板;对象是类的实例 Java中除了基本数据类型,一起都是对象 抽象数据抽象、行为抽象 类数据和操作的封装体,实现了数据隐 藏。 在Java中,类是一种引用数据类型,描述了 该类对象的状态和行为 例4-2 基本与引用数据类型 基本数据类型 变量值 引用数据类型 变量地址 类名 对象名 (只是创建名字,一个地址) new 类名(.) 在堆中创建对象 Cat cat = new Cat(); cat.age = 2; cat.weight=5; cat.meow(); 对象与基本数据类型变量的区别 对象的运算 = = != + += P73 例子 把对象传递给方法 形参、实参 传引用 Java值传递 Cat c1 = new Cat(); Cat c2 = new Cat(); c2 = c1 静态变量 对类成员的访问,一般要通过对象。 之前学习的程序,没有创建对象,直接访 问了main? static 变量、方法 (类的静态变量类变量,唯一的 存储空间) 静态成员属于类及其创建的对象(唯一性) 实例成员只属于具体的对象(多样性) 静态变量的声明及访问 P.76 静态方法 实例方法 静态方法 没有this引用(this引用当前创建的对象) 例P.77 数据成员的初始化 变量声明在方法体内,为局部变量 局部变量没有默认值,必须初始化(赋值 )后使用后使用。P.78 P.78, 4.5 对比 类中的数据成员,类中的数据成员,JavaJava可以自行初可以自行初 始化始化。P.78 例4-7 P.80 ,变量声明顺序注意 一般应在前面已有定义 静态变量例外(可以延后) 构造方法 构造函数、构造器初始化类的对象 特殊的方法 名字与类名相同 没有返回值,也不能是void (啥都没有;有就不是) 可以无参、可以有参数、参数类型和个数 可以不同构造方法重载(在同一个类中 出现的同名方法)P.81 4-9 类中静态变量初始化 静态变量属于类 一个静态变量只存在一个地方,唯一性。 静态变量的声明只在第一次使用其所属类 时执行。 如何对类中静态变量初始化? 一般不允许在构造方法中执行。Why? 初始化顺序-静态变量(only once)、实例变量 、构造函数 P4-11 静态初始化块 类中静态变量在申明时便指定初始值,保 证只被初始化一次。 C#,允许定义静态构造方法,第一次使用 该类时使用。Java不允许。 Java使用“静态初始化块”static +体,在 类中,不能在任何方法中。 例:4-12 静态初始化块,静态变量初始化语句,二者按静态初始化块,静态变量初始化语句,二者按 照在类中定义的顺序执行。照在类中定义的顺序执行。 实例初始化块 ,前面无static 一般不使用。在构造函数中初始化类的实 例变量。 一般初始化块应放在全部数据成员声明后 面。(在构造方法前执行在构造方法前执行) 例:P85 (创建对象的ID自动增加?) 例子:4-13 顺序:静态、实例. 层层往下,再返回 包 当源代码文件1 ?,定义有重名产生 了冲突冲突怎么办? 引用包相关类组织在一起 package 语法:package 包名; 每个源文件只有一个类为public,可以被包内外外 访问。 一个源文件经编译后,可以有多个.class文件, 与源文件中class的个数相同,名称相同。 同一个包中的类文件放在同一个目录下。包名 与目录结构一一对应。 有包情况下编译、运行 package myPackage; public class Dog . 设当前路径:C:test javac d c:test Dog.java 在”c:test”后自动创建myPackage目录,编译后 的Dog.class置于其中 c:test java myPackage.Dog (myPackage.Dog (整体性整体性) ) 包的命名 解决冲突、唯一性 和什么相似?域名 例如:域名 包名:.hdu.mypackage 对应目录:路径cneduhdumypackage 使用包中的类 mypackage.Dog dog = new mypackage.Dog(); import mypackage.Dog; Jar文件 对包中的类打包 例如:jar cvf jar cvf animal.jar mypackage 如何使用? javac cp animal.jar TestPackage.java java cp .;animal.jar TestPackage 访问权限控制 public 公有,(包外、包内,类内部), 修饰类、成员变量和方法 protected 保护,(包外子类、包内、类 内部),不能修饰顶层类 super super 和和 thisthis default 【无修饰符】 包访问权限,默认 ,(包内、类内部) private - 私有,(类内部) 私有 private 在编写类时,我们一般将成员变量声明为 private,操作变量的方法声明为public? 保护成员变量,对外界隐藏。 公有和私有? 公有变量的局限 私有变量的优点 读取、修改控制读取、修改控制 变量合法性检测(变量合法性检测(在服务端在服务端) 升级控制升级控制 (改变变量名称、方法的控制逻辑改变变量名称、方法的控制逻辑) 作用域 标识符在代码中可以使用的范围 类成员的作用域是整个类 顺序不定 一般建议:静态变量、实例变量、静态初始化块、静态变量、实例变量、静态初始化块、 实例初始化块、构造方法、普通方法实例初始化块、构造方法、普通方法 局部变量的作用域是从它的声明开始到包含它 的代码块结束 Java不允许在嵌套块中声明同名变量 P100 对象的存在时间与垃圾回收 局部变量栈 对象堆 对象引用计数 JVM垃圾回收机制 this 关键字 this 对象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论