第4章 面向对象程序设计---类与对象.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二、 构造方法 类中有一部分方法称作构造方法,类创建对象时需使用构造方法,以便给类所创建的对象一个合理的初始状态。构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不返回任何数据类型。Java允许一个类中有若干个构造方法,但这些构造方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同或者是参数的顺序不同。下面的Rectangle类有两个构造方法: class Rectangle { double length,width; Rectangle r = new Rectangle(); Rectangle() { } //无参数构造方法 Rectangle(double a,double b) //有参数构造方法 { length=a; width=b; } double computerArea() //求面积的方法 { return length*width; } double computerGirth() //求周长的方法 { return (length+width)*2; } } 方法重载 方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。方法的返回类型和参数的名字不参与比较,也就是说,如果两个方法的名字相同,即使类型不同,也必须保证参数不同。 下面以Area类中getArea方法实现重载为例。 class Area { float getArea(float r)//求圆的面积 { return 3.14f*r*r; } double getArea(float x,int y) )//求矩形的面积 { return x*y; } float getArea(int x,float y) ) { return x*y; } double getArea(float x,float y,float z) ) { return (x*x+y*y+z*z)*2.0; }} public class Example { public static void main(String args[]) { Area zhang=new Area(); System.out.println(求半径是100的圆的面积:+zhang.getArea(100)); System.out.println(求单位立方体的表面积:+zhang.getArea(1,1,1)); }} this关键字 this是Java的一个关键字,可以出现在实例方法和构造方法中,但不可以出现在类方法中。 1.在构造方法中使用this this关键字可以出现在类的构造方法中,代表使用该构造方法所创建的对象。 this关键字 2.在实例方法中使用this this关键字可以出现在类的实例方法中,代表使用该方法的当前对象。 实例方法可以操作成员变量。实际上,当成员变量在实例方法中出现时,默认的格式是: this.成员变量; 意思是当前对象的成员变量,如: class A { int x; void f() { this.x=100; } } 在上述A类中的实例方法f中出现了this,this就代表使用f的当前对象。所以,this.x就表示当前对象的变量x,当对象调用方法f时,将100赋给该对象的变量x。因此,当一个对象调用方法时,方法中的成员变量就是指分配给该对象的成员变量。因此,通常情况下,可以省略成员变量名字前面的“this.”。 类的实例方法还可以调用类的其它方法,调用的默认格式是 this.方法; 例子 class B { void f() { this.g(); //对象调用方法f时又调用了方法g } void g() { System.out.println(ok); } } 在上述B类中的方法f中出现了this,this代表使用方法f的当前对象,所以,方法f的方法体中this.g()就是当前对象调用方法g,也就是说,当某个对象调用方法f过程中,又调用了方法g。由于这种逻辑关系非常明确,一个方法调用另一个方法时可以省略方法名字前面的“this.”。 this关键字 3.在构

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档