常用的系统类 包 隐藏与封装.ppt_第1页
常用的系统类 包 隐藏与封装.ppt_第2页
常用的系统类 包 隐藏与封装.ppt_第3页
常用的系统类 包 隐藏与封装.ppt_第4页
常用的系统类 包 隐藏与封装.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、第4讲 面向对象-常用系统类 包 隐藏与封装,上次回顾,熟练掌握静态变量、实例变量和静态方法的使用 (重点) 熟练掌握局部变量的生命周期和作用域 (重点) 熟练掌握this引用 (重点) 熟练掌握参数传递 (重点) 掌握final变量,本讲目标,Object、Random、Math、System及日期时间类的学习 包的概念 包的用途(重点) 一个包内的类访问另一个包内的类(重点) 访问控制符 (重点),Object类,Object类是所有Java类的最终祖先。 如果一个类在声明时没有包含extends(继承)关键字,那么这个类直接继承Object类。,Object类有以下主要成员方法: equ

2、als(Object obj):比较两个对象是否相等。许多Java类都覆盖了这个方法。 notify():唤醒一个线程。 notifyAll():唤醒所有线程。 wait():使当前线程进入等待状态。 hashCode():返回对象的哈希码。 toString():返回当前对象的字符串表示,许多类都覆盖了toString()方法,返回具有实际意义的内容。,Random类,Random类提供了一系列用于生成随机数的方法。,nextInt():返回下一个int类型的随机数。 nextInt(int n):返回下一个int类型的随机数,随机数的值大于或等于0,并且小于参数n。 nextLong():

3、返回下一个long类型的随机数,随机数的值位于long类型的取值范围内。 nextFloat():返回下一个flaot类型的随机数,随机数的值大于或等于0,并且小于1.0。 nextDouble():返回下一个double类型的随机数,随机数的值大于或等于0,并且小于1.0。 nextBoolean():返回下一个boolean类型的随机数,随机数的值为true或false。,TestRandom.java,Math类,Math类保留了所有用于几何学,三角学及几种一般用途的浮点函数,包括:三角函数,指数函数,舍入函数等。 Math类是final类型的,因此不能有子类。 Math类的构造方法是p

4、rivate类型的,因此Math类不能够被实例化。 Math类的常用属性如下: Math.E 取得自然数的值。 Math.PI 显示圆周率。,Math类,Math类的常用方法如下: abs():求绝对值。 ceil(doublea) :取a上限值,如ceil(3.1)=4,ceil(3.6)=4。 floor(doublea) :取a的下限值,如floor(3.1)=3,floor(3.7)=3 round():返回四舍五入的整数值。 exp(doublea) :返回自然对数的幂。 pow(doublea,doubleb) :求a的b次方. sqrt():平方根函数。 .,TestMath.j

5、ava,日期时间类(Date),Date类位于java.util包中,用来表示日期和时间, 该类所表示的时间是精确到毫秒的。,常用方法如下: Date():构造一个Date对象并对其进行初始化以反映当前时间。 Date(String s):从一个字符串构造一个Date实例 Date(long date):构造一个Date对象,并根据相对于GMT 1970年1月1日00:00:00的毫秒数对其进行初始化。 参数: date - 相对于GMT 1970年1月1日00:00:00的毫秒数 。 before(Date when):测试这个日期是否在指定日期之前。 equals(Object obj):

6、比较两个日期是否相等。 ,TestDate.java,日期时间类(DateFormat),DateFormat:抽象类,用于定制日期的格式。 它有一个具体子类为java.text.SimpleDateFormat,TestDateFormat.java,DateFormat类的parse(String text)方法按照特定的格式把字符解析为日期对象。,TestDateParse.java,getDateTimeInstance(int dateStyle,int timeStyle) :静态方法;该方法返回表示标准格式的DateFormat对象,参数dateStyle设定日期风格,参数tim

7、eStyle设定时间风格,TestGetDateTimeInstance.java,日期时间类(Calendar ),Java.util.Calendar类的set()和get()方法可用来设置和读取日期的特定部分,比如年、月、日、时、分和秒等。 Calendar类是抽象类,不能实例化,它有一个具体的子类,即java.util.GregorianCalendar。 GregorianCalendar采用梅林尼治标准时间,它的add()方法可用来在日期的特定部分加上一些值。,TestCalendar.java,System类,System 类是一个抽象类,所有的字段和方法都是静态的。其中包含一些

8、有用的类字段和方法,它不能被实例化。 在 System 类提供的设施中,有三个静态的变量in、out、err,分别对应标准输入、标准输出和错误输出流。,System 类中常用的静态方法: exit(int status) :终止当前正在运行的 Java 虚拟机。 currentTimeMillis(): 返回以毫秒为单位的当前时间。 gc(): 运行垃圾回收器。 getenv(String name): 获得指定的环境变量值。 setInt(InputStream in):重新分配“标准”输入流。 setOut(OutputStream out):重新分配“标准”输出流。 .,Java包,当编

9、译Java源程序时,对其中的每个类都生成一个.class文件,为统一组织和管理它们,Java使用了包的管理慨念。 包类似于文件夹,一组相关的类被放在一起,就象一些文件放在一个文件目录下。,包允许你将类文件组织起来,便于查找和使用合适的类。 包不仅包含类和接口,还能包含其它包,从而形成有层次的包空间。 包有助于避免命名冲突。当你使用很多类时,确保类和方法名称的唯一性是非常困难的。包能够形成层次命名空间,缩小了名称冲突的范围,易于管理名称。,包的用途,package mypackage ; public class Calculate public int add(int x, int y) re

10、turn( x + y ) ; ,包用下面的方式来创建 package package_name ;,创建包,导入整个包: import package_name.*; 导入单个类: import package_name . class_name ; 导入位置如上图表示的类 import My_Package . MySub_Package . My_Class ;,导入包,为了计算两个整数之和,我们不需要专门写计算和的代码。 我们可导入包 “mypackage”,并使用其中的 public int add(int x, int y)方法来计算。,使用包,package语句可有可无。若无,则

11、Java提供一个无名包;若有,则必须是第一条可执行语句。 同一个包中类名必须唯一,不同包中类名可以相同 如:包中不能有两个都叫的类,但包中可以有都叫的类,我们可以通过包结构层次来访问不同的类 包名一律用小写字母,注意事项,类访问修饰符 private,protected:只能用于内部类 public:可以被同一包或不同包的类访问 缺省:可以被同一包的类访问,但不能被其它包的类访问,即使用import引入或用包名.类名也不行,访问控制,访问控制,使用访问控制符可以将对象中不允许外部程序直接访问的重要属性,隐藏在对象内部。这一过程在Java中叫封装(面向对象三大特征之一,另外两个是继承和多态)。

12、对一个类或对象实现良好的封装,可以实现以下目的: 1.隐藏类的实现细节。 2.让使用都只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问 3.可进行数据检查,从而有利于保证对象信息的完整性。 4.便于修改,提高代码的可维护性。 实现良好的封装,需要从两个方面考虑: 1.将对象的属性和实现细节隐藏起来,不允许外部直接访问 2.把方法暴露出来,让方法来操作或访问这些属性。,public成员:所有的类都可以访问,类成员访问修饰符,protected成员: 可被子类访问,不管是同一个包还是不同包 同一个包中非子类需要通过对象访问,private成员:只有自身类才能访问,其它类一概不能访问,缺省:称为friendly,可被同一包的所有的类访问,类成员访问修饰符总结,包名中的字母一律小写,如:mypackage 类名、接口名每个单词的首字母要大写,如MyClass。 方法名,第一个单词小写,后面每个单词的首字母大写,如:upToDown。 变量名,第一个单词小写,后面每个单词的首字母大写,如:studentName。 常量名中字母一律大写

温馨提示

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

评论

0/150

提交评论