实验7类及对象编程.docVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验7 类与对象编程 7.1实验目的 (1) 了解类的成员设计 (2)?掌握类与对象的关系 (3) 理解静态方法与实例方法的使用差异; 7.2 知识要点 7.2.1 类 ?? 作为java程序的基本要素,类由成员变量(也称属性)和成员方法组成。属性包括常量和变量,方法则包括构造方法和一般方法,在定义类时,它们习惯上按如下次序排列: class Order { // final 属性 // 属性 // 构造方法 // 方法 } 类的属性一般定义为私有的,而将类的方法定义为public。   7.2.2? 对象创建与构造方法 类是创建对象的模板,而对象是类的实例。对象是一组属性和方法的封装体。创建对象用到保留字new。 格式为: 引用变量 = new 构造方法(参数) 有关构造方法有以下几点说明: (1)创建对象时将用到构造方法;系统自动调用参数匹配的构造方法为对象初始化。 (2)构造方法的名称必须与类名同名,构造方法没有返回类型; (3)一个类可提供多个构造方法,这些方法的参数不同。 (4)如果程序中未提供构造方法,系统自动提供空的无参构造方法。 7.2.3? 对象引用变量与对象关系 对象创建后,将对象的引用赋值给某个引用变量,就可以通过该变量访问对象的成员属性和方法。 成员的调用通过“.”运算符实现,格式为: 对象名.属性 对象名.方法(参数) 以下结合实例介绍对象引用变量与对象的关系。 class Point { int x,y;? //属性变量 public Point(int x1,int y1) {? //构造方法 ??? x=x1;? //将参数值赋值给对象的属性变量 ??? y=y1; } public static void main(String args[]) { ??? Point p1=new Point(2,3);? //创建点(2,3)用p1引用 ??? Point p2=new Point(3,5);? //创建点(3,5)用p2引用 ??? Point p3=p1;???????????? //p3和p1代表同一对象 ??? p1.x=18;???????????????? //修改p1的x属性值 ??? System.out.println(p3.x);?? //输出 p3的x属性值 ??? p1=p2;?????????????????? //p1“叛变”,改为和p2指向同一点 ??? System.out.println(p1.x); } } 【运行结果】 ? 18 ? 3 【有关说明】 (1)main方法中首先创建两个对象,用带阴影的方框表示,分别用p1和p2两个引用变量存储其引用地址。 (2)语句Point p3=p1;的作用是定义一个Point类型的引用变量p3和p1值向同一对象;如图1所示。 (3)语句p1.x=8;的作用是修改p1所引用对象的x1值,由于p1和p3是“代表”同一对象,因此,输出p3.x和p1.x是一样的,也就是18. (4)? 语句p1=p2将p1改为指向和p2所指的对象,这样,再输出 p1.x则结果为3。 【重要提示】 对象和对象引用变量是两个不同的概念,对象引用变量中存放的是对象的地址。通常访问对象需要借助对象引用变量,将对象的地址赋值给对象引用变量,则该引用变量就“代表”这个对象,但是引用变量与对象并不是固定的关系,通过更改引用变量的值,可让其“代表”另一对象,也可以通过引用变量之间的赋值让多个引用变量指向同一对象。如果一个对象没有任何引用变量指向它,则要访问该对象就再也不可能,Java垃圾回收器将自动回收该对象占用的内存。? 7.2.4 静态空间与实例空间 带有static修饰的属性称为静态属性或称类变量;带有static修饰的方法称为静态方法,在静态方法内可以直接访问静态属性或调用其他静态方法,静态属性在分配空间时与对象无关,静态空间的引用是与类关联,一个类的静态属性成员只有一份,访问静态成员可以通过类名(在自己类中也可以直接访问),也可以通过对象,静态属性是共享的,该类的任何对象均可访问它。 【思考】静态属性外层包裹的是类,因此必须指明是访问哪个类的静态成员,如果是在自己类中则可以省略,由于对象是由类创建,自然对象能标识其所属类,因此也允许用对象做前缀访问静态属性。非静态属性也称实例变量,也就是说,要通过实际的对象才能访问,其外层包裹的是对象,不同对象其实例变量的值通常是不同的。 例如,以下类中y是属于类的属性变量,而x是属于对象的实例变量,y是依托类的,在类装载时将给其分配空间并赋值,整个类只有一个y;而x只有创建了具体对象才存在,不同对象有各自的x属性,如图7-2所示。 class demo { int x; Static int

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档