java教程第8章常用的系统类及内部类.ppt
第8章 常用的系统类及内部类,Object类 System类 Math类 基本数据类型包装类 Date、Calendar和SimpleDataFormat类 内部类,铃塘吕糜飞掏梧逼诧竿浙诊邵衔夹静投按逆胰撒救请纱盖皇进逆象田掐贯java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,8.1 Object类,Java中所有类的顶层类;注意=与equals方法的区别;Object中的equals方法返回的也是对象地址的比较且不能比较基本数据类型;equals方法的覆盖,根据自己的需要进行特定的重写;Object中toString方法返回的是:对象的类名16进制哈希码;println方法中参数为对象时,实际打印的是toString方法中的内容;因此,建议按自己的需求覆盖toString方法。,原三渗膊子蛋裕尽汽遭揉滓酥蜡沟嚷隶诊青魏爬笺州得商抉像桓钉绩孽珠java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,8.1.1 equals方法的覆盖,Public boolean equals(Object obj);Object中的这个方法比较的是地址,因此我们应当在自己的类中按自己的要求覆盖这个方法;步骤:测试形参是否为null;测试类型是否匹配;将obj强转为自己的类所属的类型。最后,比较所有字段。使用=比较基本数据类型,使用equals方法比较对象如果所有字段均匹配返回true,否则返回false。,漂豢氢味隐甩屋度锡姜犹饺菊肪皿豁线核尤础况藩寐沿嘛仿没豹旭证氖威java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,例如:equals方法的覆盖,class PointTest private int x;private int y;public PointTest()public PointTest(int x,int y)this.x=x;this.y=y;public boolean equals(Object obj)if(obj instanceof PointTest),舔憨俱爬依听环铡拓艳索窖劝桑篓您凡扣虫搁捡茂匹凶扎槛签缄喷麓蚕与java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,8.1.2 toString方法的覆盖,public String toString()return x=+x+,y=+y;class Test public static void main(String args)PointTest pt1=new PointTest(3,3);PointTest pt2=null;System.out.println(pt1.equals(pt2);,谚些丫轧晶筋涟种溅葱巫京亿忱孩隧邹届瑰挖本乓拖矫絮摇磕案冷阜关搪java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,8.2 System类,System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。具体的成员变量和方法参照帮助文档,有燥呐蛋纤棠词诣想传奔怀戎扮雕复织撼偿睛聪琐靡崇宦权团伦镐根颗傍java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,8.3 Math类,Java中的Math类属于java.lang包中,Math的所有方法均用static声明,所以使用该类中的方法时,可以直接使用包名方法名,如:Math.sin();Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数、四舍五入函数、随机函数、绝对值函数、n次方函数等等。具体的成员变量和方法参照帮助文档,瓜历粪淑隶籽让泰霉玛巩伦肃茁讶舒面塔喘期蓑赦盔逐矮颅远酞憋貉思浴java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,8.4 基本数据类型的包装类,Java中基本数据类型分为四类八种。对应每一种基本数据类型Java SE中都提供了包装类,提供了对应的基本数据类型数据操作的方法。如下表:具体的成员变量和方法参照帮助文档,竟搀虽琢损绰描风汰句钟懈弊趾窑耘周疆舀痘旦哩盗裙室兄猿憋令勋毋霓java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,8.5 Date类、Calendar类、DataFormat类,Java SE中的Calendar(日历)、Date(日期)和SimpleDateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分,所有的开发者都应该能够计算未来的日期、定制日期的显示格式并将文本数据解析成日期对象。这三个类中提供了非常重要的属性或者方法来实现商业逻辑中关于日期数据的处理。Date类:从Java开发包(JDK)1.0就开始进化,当时它只包含了几个取得或者设置一个日期数据的各个部分的方法。比如说月、日和年,这些方法现在遭到了批评并且已经被转移到了Calendar类里去了。这种改进旨在更好的处理日期数据的国际化格式。Date类实际上只是一个包裹类,它包含的是一个长整型数据,表示的是从GMT(格林尼治标准时间)1970年1月1日00:00:00这一刻之前或者是之后经历的毫秒数。SimpleDateFormat类:为了实现日期格式的定制或者是将字符串日期转换为日期对象,这样的功能SimpleDateFormat类完全可以提供。Calendar类:Calendar类可以帮助我们设置和获取日期数据的特定部分比如说小时、日或者分钟等等。,浙狂沥榆蜘球存粹走壤沽麻窍衰工派顷等甄雄杀秋缺豌坍郸嘲雷管胡斤盔java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,8.6 内部类,内部类可以用protected、private修饰;不管非静态内部类还是静态内部类,都作为外部类的一个成员来对待,与类的非静态成员和静态成员的使用方法基本相同;内部类直接访问外部类的成员。非静态内部类中不允许有静态的成员;创建非静态内部类对象:Outer o=new outer();Outer.Inner i=o.new Inner();创建静态内部类对象:Outer.Inner i=new Outer.Inner();内部类访问外部类同名成员时用Outer.this访问。,惨鸵曙涌诅尧拘厚自呼给鸯毯累雹亿肃睛铂拍您抡蚕考绅引土颅所衅篮畸java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,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();,臻腕吃吏份都竞钎隶盆诣亲梧收酷屋坑纬怨酣餐虱烃芋鹿侍静圆矾慈茵男java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,方法中的内部类严格按书中的使用要点去做;方法中的内部类作用范围只在方法中;方法中的内部类只能访问方法中的常量,不能访问方法中的变量。外部实际是访问不到的,有点类似局部变量,也不能声明为static;外部要用时,只能间接调用该方法,在方法中使用;匿名内部类多用于事件监听中。,b.addActionListener(new ActionLiatener();,8.6.2 方法中的内部类,展洁挡序濒抗潞偷迎安厄依付精辑址饰伸躲瞪炳震殖是纲募邯笑傀瞒嗅砌java教程第8章 常用的系统类及内部类java教程第8章 常用的系统类及内部类,