java 第三章 类的封装、继承和多态.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. 声明set()和get()存取对象的属性 public void setXxx(参数列表) { }——设置对象的属性 public int getXxx( ) { }——获取对象的属性 3.2.4 访问控制 原则:信息的最小化公开。即尽量通过方法来操作对象,而不直接存取对象的成员变量。 好处:如果存取私有成员的流程有所改动,只要在公开方法中修改即可,对于调用方法的应用程序不受影响。 3. 类的访问权限 只有public和缺省两种。 public class Person //公有的类 { } class Person //缺省的类 { } 3.2.4 访问控制 只能有一个,且该类名必须和文件名相同,可被所有类访问 可被当前包(当前文件夹)中的类访问 3.2.5 方法的参数传递 1. 基本数据类型的参数传递 方法的形式参数,就相当于方法中定义的局部变量,方法调用结束时也就被释放了,不会影响到主程序中同名的局部变量。 PassValue.java change方法被调用的内存状况如下图所示: 结论:基本数据类型的变量作为实参传递的是该数据的值本身,并不能改变这个变量的值。 栈内存 5 x main方法的内存状态 ??? x change方法的内存状态 5 x 5 x 5 x 3 x 5 x change方法被调用时,定义了一个名为x的变量,它只在change方法中有效 取出main方法中的x的值,赋值给change中的x 改变change中的x的值 change方法结束,方法中x所占内存被释放 2. 引用数据类型的参数传递 对象的引用变量并不是对象本身,只是对象的句柄(名称)。 change方法被调用的内存状况如下图所示: 结论:引用数据类型的变量作为实参传递的也是这个变量的值本身,即对象的引用,而非对象本身,通过方法调用,可以改变对象的内容,但是对象的引用是不能改变的。(数组类似) 3.2.5 方法的参数传递 main方法中的obj指向的对象内容 把main方法的obj的值赋给change方法中的obj,使其指向同一内容 栈内存 0x3000 obj main方法的内存状态 ??? change方法的内存状态 x 堆内存 5 0x3000 obj 堆内存 0x3000 obj 0x3000 obj x 5 0x3000 通过change方法中的obj引用而改变堆内存中对象的内容 change方法结束,change中的obj变量被释放,但堆内存的对象仍然被main方法中的obj引用 堆内存 0x3000 obj 0x3000 obj x 3 0x3000 堆内存 0x3000 obj x 3 0x3000 栈内存 main方法的内存状态 change方法的内存状态 3.2.6 静态成员 1. Java类中的成员种类 实例成员和静态成员; 用static修饰的成员称为静态成员(类成员),否则为实例成员; 静态成员属于类,直接使用类名加上.运算符来存取静态成员;静态成员也可以在声明对象之后,通过对象名加上.运算符来存取(不被鼓励,避免与非静态成员混淆)。 实例成员属于对象,只有创建了对象,才能通过对象访问实例成员; 2. 静态成员变量与实例成员变量 public class Chinese{ String name; //实例成员变量 int age; static String country=中国; //静态成员变量 } 3.2.6 静态成员 李小明 21 name age 中国 country ch1 ch2 name age 王大伟 19 3. 使用成员方法时注意 在静态成员方法中不允许使用非静态成员;反之,则可以。不能使用this引用。——因为静态成员方法可以通过类名直接调用,这时,可能还没有任何对象产生。 如果要直接在main()中调用其他的方法,则该方法必须是静态方法。 不能声明方法的局部变量为static。 TestChinese.java 3.2.6 静态成员 4. 静态代码块 如果在加载类时,希望先进行一些类的初始化动作,可以使用static定义一个静态代码块(不包含在任何方法体中),并在其中编写类载入时的初始化动作; 当类被加载时,会先执行静态代码块中的程序代码,且只会执行一次。 StaticCode.java 结论:类是在第一次被使用的时候才被装载,而不是在程序启动时就加载程序中所有要用到的类。 3.2.6 静态成员 5. 理

文档评论(0)

整理王 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档