java教程第8章常用的系统类及内部类_第1页
java教程第8章常用的系统类及内部类_第2页
java教程第8章常用的系统类及内部类_第3页
java教程第8章常用的系统类及内部类_第4页
java教程第8章常用的系统类及内部类_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第8章章 常用的系统类及内部类常用的系统类及内部类 object类 system类 math类 基本数据类型包装类 date、calendar和simpledataformat类 内部类8.1 object类类java中所有类的顶层类;注意=与equals方法的区别;object中的equals方法返回的也是对象地址的比较且不能比较基本数据类型;equals方法的覆盖,根据自己的需要进行特定的重写;object中tostring方法返回的是:对象的类名16进制哈希码;println方法中参数为对象时,实际打印的是tostring方法中的内容;因此,建议按自己的需求覆盖tostring方法。8

2、.1.1 equals方法的覆盖方法的覆盖public boolean equals(object obj);object中的这个方法比较的是地址,因此我们应当在自己的类中按自己的要求覆盖这个方法;步骤:测试形参是否为null;测试类型是否匹配;将obj强转为自己的类所属的类型。最后,比较所有字段。使用=比较基本数据类型,使用equals方法比较对象如果所有字段均匹配返回true,否则返回false。例如:例如:equals方法的覆盖方法的覆盖class pointtest private int x;private int y;public pointtest() public pointt

3、est(int x, int y) this.x = x;this.y = y;public boolean equals(object obj) if(obj instanceof pointtest) & obj!=null) pointtest pt = (pointtest)obj;if(pt.x=this.x) & (pt.y=this.y) return true;return false;8.1.2 tostring方法的覆盖方法的覆盖public string tostring() return x=+x+, y=+y;class test public static void

4、 main(string args) pointtest pt1 = new pointtest(3, 3);pointtest pt2 = null;system.out.println(pt1.equals(pt2);8.2 system类类system类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。具体的成员变量和方法参照帮助文档8.3 math类类java中的math类属于java.lang

5、包中,math的所有方法均用static声明,所以使用该类中的方法时,可以直接使用包名方法名,如:math.sin();math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数、四舍五入函数、随机函数、绝对值函数、n次方函数等等。具体的成员变量和方法参照帮助文档8.4 基本数据类型的包装类基本数据类型的包装类java中基本数据类型分为四类八种。对应每一种基本数据类型java se中都提供了包装类,提供了对应的基本数据类型数据操作的方法。如下表:具体的成员变量和方法参照帮助文档基本数据类型包装类名longlongintintegershortshortbytebytedou

6、bledoublefloatfloatcharcharacterbooleanboolean8.5 date类、类、calendar类、类、dataformat类类java se中的calendar(日历)、date(日期)和simpledateformat(日期格式)组成了java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分,所有的开发者都应该能够计算未来的日期、定制日期的显示格式并将文本数据解析成日期对象。这三个类中提供了非常重要的属性或者方法来实现商业逻辑中关于日期数据的处理。date类:从java开发包(jdk)1.0就开始进化,当时它只包含了几个取得或者设置一个

7、日期数据的各个部分的方法。比如说月、日和年,这些方法现在遭到了批评并且已经被转移到了calendar类里去了。这种改进旨在更好的处理日期数据的国际化格式。 date类实际上只是一个包裹类,它包含的是一个长整型数据,表示的是从gmt(格林尼治标准时间)1970年1月1日00:00:00这一刻之前或者是之后经历的毫秒数。simpledateformat类:为了实现日期格式的定制或者是将字符串日期转换为日期对象,这样的功能simpledateformat类完全可以提供。calendar类:calendar类可以帮助我们设置和获取日期数据的特定部分比如说小时、日或者分钟等等。8.6 内部类内部类内部类

8、可以用protected、private修饰;不管非静态内部类还是静态内部类,都作为外部类的一个成员来对待,与类的非静态成员和静态成员的使用方法基本相同;内部类直接访问外部类的成员。非静态内部类中不允许有静态的成员;创建非静态内部类对象:outer o = new outer();outer.inner i = o.new inner();创建静态内部类对象:outer.inner i = new outer.inner();内部类访问外部类同名成员时用outer.this访问。8.6.1 非静态内部类非静态内部类class outerint a;class inner int a;public void fun1() a+;int b = outer.this.a;public void fun() inner i = new inner();i.fun1();public static void main(string args) outer o = new outer();outer.inner i = o.new inner();i.fun1();方法中的内部类严格按书中的使用要点去做;方法中的内部类作用范围只在方法中;方法中的内部类只能访问方法中的常量,不能访

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论