- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章-类与对象
this ---出现在类的实例方法或构造方法中,用来代表使用该方法的对象 (1)把当前对象引用作为参数传递给另一个方法。 如:obj.f(this) (2)可以调用当前对象的其它方法或访问当前对象的实例变量。 如: this.g(); (3)使用this可以区分当前作用域中同名的不同变量。 String x; //实例变量 ?? public Test(String x , int a) { ??? this.x=x; ??? } (4)一个构造方法中调用另一个构造方法。 public Test(final int x) { this(x,0); } ★ 例5-5 Point类的再设计 public class Point { private int x, y; public Point(int x, int y) { this.x = x; this.y = y; } public Point() { this(0,0); } public double distance(Point p) { return Math.sqrt((x-p.x)* (x-p.x) + (y-p.y)*(y-p.y)); } ★ / * 以下两个方法在利用上面方法求距离,纯粹为了演示概念 */ public double distance2(Point p) { return this.distance(p); //调用当前对象另一方法 } public double distance3(Point p) { return p.distance(this); //p到当前点的距离 } …… } 思考: 以上程序中哪些地方可省略this ? 1、包的组织 采用分层结构 同一包中不能有两个同名的类 在缺省情况下,系统会为每一个源文件创建一个无名包 lang util awt applet event System类 Applet类 Graphics类 java (核心包的根) String类 2、用户自定义包 package语句放在源文件的第一行。 package test; public class Point{ …… } 当前文件夹 Point.java test Point.class 创建包就是在指定目录路径下创建一个 子文件夹 ,这个包中所有类的字节码文件将存放在该文件夹下 ★ 3、对定义包程序的编译 方法1:创建一个test子目录,将源程序文件存放到该目录,在该目录下利用javac编译源代码,或者在别处编译完程序后将字节码文件拷贝到该目录即可。 方法2:采用带路径指示的编译命令: 格式:javac –d destpath Point.java 编译器将自动在destpath指定的目录下建一个test子目录,并将产生的字节码文件保存到该子目录下 典型用法是源程序放在当前目录下,用如下命令编译 javac –d . Point.java 编译后将在当前目录自动创建test子目录 当前目录 ★ 4. 引用其它包的类的方法? (1) 在引用类时使用包名作前缀。 例 :new java.util.Date() (2) 用import语句加载需要使用的类。 例:import java.util.Date; 然后在程序中可以直接通过类名创建对象 如:new Date(); (3) 用import语句加载整个包---用“*”号代替类名位置。? 它将加载包中的所有的类。例如:import java.util.*; ★ 【例5-6】编写一个代表圆的类,其中包含圆心(用Point表示)和半径两个属性,利用本章Point类提供的方法,求两个圆心间的距离,编写一个静态方法判断两个圆是否外切。用两个实际圆验证程序。 import test.Point; //引入test包中的Point类 public class Circle { Point center; double r; public Circle(Point p,double r) { center = p; this.r = r; } public static boolean is
文档评论(0)