欢迎来到天天文库
浏览记录
ID:36197929
大小:1.44 MB
页数:24页
时间:2019-05-07
《java面向对象程序设计吴卿》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章类和对象吴卿目录抽象与封装类和对象的定义对象与基本数据类型变量的区别静态变量和静态方法数据成员的初始化包访问权限控制作用域关键字this抽象与封装类——对象的抽象、模板;对象是类的实例Java中除了基本数据类型,一起都是对象抽象——数据抽象、行为抽象类——数据和操作的封装体,实现了数据隐藏。在Java中,类是一种引用数据类型,描述了该类对象的状态和行为例4-2基本与引用数据类型基本数据类型变量值引用数据类型变量地址类名对象名(只是创建名字,一个地址)new类名(….)在堆中创建对象Catcat=newCat();cat.age=2;cat.weight=5;cat.meow()
2、;对象与基本数据类型变量的区别对象的运算===!=++=P73例子把对象传递给方法形参、实参传引用Java——值传递Catc1=newCat();Catc2=newCat();c2=c1静态变量对类成员的访问,一般要通过对象。之前学习的程序,没有创建对象,直接访问了main?static变量、方法(类的静态变量—类变量,唯一的存储空间)静态成员属于类及其创建的对象(唯一性)实例成员只属于具体的对象(多样性)静态变量的声明及访问P.76静态方法实例方法静态方法没有this引用(this引用当前创建的对象)例P.77数据成员的初始化变量声明在方法体内,为局部变量局部变量没有默认值,必须初始化(
3、赋值)后使用。P.78P.78,4.5对比类中的数据成员,Java可以自行初始化。P.78例4-7P.80,变量声明顺序注意一般应在前面已有定义静态变量例外(可以延后)构造方法构造函数、构造器初始化类的对象特殊的方法名字与类名相同没有返回值,也不能是void(啥都没有☺;有就不是)可以无参、可以有参数、参数类型和个数可以不同构造方法重载(在同一个类中出现的同名方法)P.814-9类中静态变量初始化静态变量属于类一个静态变量只存在一个地方,唯一性。静态变量的声明只在第一次使用其所属类时执行。如何对类中静态变量初始化??一般不允许在构造方法中执行。Why?初始化顺序->[静态变量(onl
4、yonce)、实例变量、构造函数]P4-11静态初始化块类中静态变量在申明时便指定初始值,保证只被初始化一次。C#,允许定义静态构造方法,第一次使用该类时使用。Java不允许。Java使用“静态初始化块”static+{}体,在类中,不能在任何方法中。例:4-12静态初始化块,静态变量初始化语句,二者按照在类中定义的顺序执行。实例初始化块{},前面无static一般不使用。在构造函数中初始化类的实例变量。一般初始化块应放在全部数据成员声明后面。(在构造方法前执行)例:P85(创建对象的ID自动增加?)例子:4-13顺序:静态、实例….层层往下,再返回包当源代码文件>1???,定义有重名产
5、生了冲突怎么办?引用包相关类组织在一起package语法:package包名;每个源文件只有一个类为public,可以被包内外访问。一个源文件经编译后,可以有多个.class文件,与源文件中class的个数相同,名称相同。同一个包中的类文件放在同一个目录下。包名与目录结构一一对应。有包情况下编译、运行packagemyPackage;publicclassDog{….}设当前路径:C:testjavac–dc:testDog.java在”c:test”后自动创建myPackage目录,编译后的Dog.class置于其中c:test>javamyPackage.Dog(整体性)包的
6、命名解决冲突、唯一性和什么相似?域名例如:域名hdu.edu.cn包名:cn.edu.hdu.mypackage对应目录:路径cneduhdumypackage使用包中的类mypackage.Dogdog=newmypackage.Dog();importmypackage.Dog;Jar文件对包中的类打包例如:jarcvfanimal.jarmypackage如何使用?javac–cpanimal.jarTestPackage.javajava–cp.;animal.jarTestPackage访问权限控制public–公有,(包外、包内,类内部),修饰类、成员变量和方法pro
7、tected–保护,(包外子类、包内、类内部),不能修饰顶层类super和thisdefault–【无修饰符】包访问权限,默认,(包内、类内部)private-私有,(类内部)私有private在编写类时,我们一般将成员变量声明为private,操作变量的方法声明为public?保护成员变量,对外界隐藏。公有和私有?公有变量的局限私有变量的优点读取、修改控制变量合法性检测(在服务端)升级控制(改变变量名称、方法的控制逻辑
此文档下载收益归作者所有