java面向对象程序设计第九章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java.awt.event包使得程序以不同方式来处理各种事件; java.awt.image包用来处理来自网上的图片; java.awt.peer包用于实现Java语言跨平台特性; java.awt.datatransfer包用于处理数据传输;
applet包:
java.applet包用来实现浏览器中运行的Java小程序,它仅包 含少量几个接口和一个非常有用的类Applet;
ng包不需要import
JDK中的包(rt.jar)不需要在classpath中指定
自定义包必须在classpath中指定; 在一些应用服务器当中 (如Tomcat),只要将自定义的包放在指定的路径下,不需要 设置classpath,就可以在文件中用import引入使用了。
API的学习
文本包(text)
java.text包中的Format、DateFormat、SimpleDateFormat等 类提供各种文本或日期格式。
输入输出流包(io)
java.io包中包含了实现Java程序与OS、用户界面及其它 Java程序进行数据交换所使用的类,如基本输入/输出流、 文件输入/输出流、过滤输入/输出流、管道输入/输出流、随 机输入/输出流等。
这三个包提供了更完善的Java程序安全性控制,利用 它们可对Java程序加密,也可把特定的Applet标记为 “可信赖的”,使它能够具有与Java Application相近 的安全权限;
java.sql包
java.sql包是实现JDBC(Java database connection)的类库。 利用sql包可使Java程序具有访问不同种类数据库(如 Oracle,DB2,SQLServer等)的功能。
java.corba包和java.corba.orb包
这两个包使得Java程序可以存取、调用CORBA对象,并 与CORBA对象共同工作。简化软件的开发。
javax扩展包
这个包是对JAVA包功能的扩展。
引用Java的包(import)
import语句的格式为: import<包名1>[.<包名2>[.<包名3>·· ·]]<类名>|*; 其中import为关键字,多个包名及类名之间用圆点分隔, “*”表示包中的所有类。包的导入需要注意:
String t=new String(“Hello”);
OX1323443234
栈
String对象特点剖析(Cont)
如果代码更改为 int x = 7; int y = x; String s=new String(“Hello”);
x y s t
内存的分配情况
7 7
OX345654456
“HelloWorld”
java.awt.datatransfer
java.applet java.text Applet应用程序 文本包
java.sercurity.acl
java.sercurity.interfaces java.corba java.corba.orb CORBA体系相关包
语言包(lang)
语言包ng提供Java语言最基础的类:
网络功能包(net)
包是用来实现网络功能的类库。目前已经实现 的Java网络功能主要有:
底层网络通信,如实现套接字通信的Socket类、
ServerSocket类;
编写用户自己的Telnet/FTP邮件服务实现网上通信的类;
用于访问Internet上资源和进行CGl网关调用的类,如URL等。
类层次
类和类的一般目的描述
成员变量列表 构造函数列表Βιβλιοθήκη 方法列表
变量详细列表及目的和用途的描述 构造函数详细列表及描述
方法详细列表及描述
String与StringBuffer
String概述
String不是原始类型,而是一个类,用来表示字符序列。
字符本身符合Unicode标准。与C/C++不同,String无\0
thread方法名说明备注objectclone将当前对象克隆boolenequalsobjectobj判断两个引用是否指向同一对象其参数不能为普通数据类型被很多子类重载用于用语判断对象的内容是否一致如string包装类urlfilejavautil包中的类或接口等voidfinalize对象被释放时使用classgetclass获得当前对象的类对象注意class中的首字母大写inthashcode得到代表对象的一个整数这个整数在应用程序运行时保持不变这个整数的意义类似对象的身份证号码string包装类urlfilejavautil包中的类或接口将本方法覆盖当内容相同时得到的hashcode值相同stringtostring得到代表这个对象的字符串string包装类urlfilejavautil包中的类或接口将本方法覆盖得到的值将是其对象内容voidnotify用于线程同步中唤醒等待的线程voidwait应用于线程同步中的线程等待语言包contobject的克隆?为了获取对象的拷贝我们可以利用object类的clone方法?在派生类中实现cloneable接口
String toString()
得到代表这个对象的字符串
void notify void wait()
用于线程同步中唤醒等待的线程 应用于线程同步中的线程等待
语言包(CONT)——Object的克隆
为了获取对象的拷贝,我们可以利用Object类的clone()方法
在派生类中实现Cloneable接口。
在派生类中覆盖基类的clone()方法,并声明为public 在派生类的clone()方法中,调用super.clone()。
语言包(CONT)——Class类
装载类对象是生产对象的前提。
每个class都有一个相应的Class对象,表示该类的类型
信息,获取Class实例的方式:
利用对象调用getClass()方法获取; 使用Class类的静态方法forName(),通过类的名字获取; 通过.class来获取类对象
newInstance() 调用类中缺省的构造方法。
实用包(util)
日期类:Data、Calendar、GregorianCalandar(公历)类, 提供对日期的多种操作方法,如获得当前日期,比较两个日 期,判断日期的先后等。 集合框架:包括多种集合接口,如Collection(无序)、Set (不重复)、List(有序可重复)、Enumeration(枚举)等, 及表示数据结构的多个类,如LinkedList(链表)、Vector (向量)、Stack(栈)、Hashtable(散列表)、TreeSet (树)等。
Object类:Java类层次的祖先类 基本数据类型包装类: Byte/Short/Integer/Long/Float/Double/Character/Boolean 字符串类:String和StringBuffer Math类:提供常用数学常数和函数,如E、PI、abs()等 系统和运行时类:System和Runtime 类操作类:Class类 错误和异常处理类:Throwable、Exception、Error等 线程类:Thread
“Hello”
String t = s;
t
OX1323443234
???
栈 堆
String对象特点剖析(Cont)
如果代码更改为 int x = 7; int y = x; String s=new String(“Hello”);
x y s t
内存的分配情况
7 7
OX345654456
“Hello” “Hello” 堆
结果是不相等。 原因是:s==t比较的是内存中的引用地址,因为s和t指向 了内存中的两个对象,所以比较结果不相等。
字符串比较(Cont)
public class test{ public static void main(String[] args){ String s = new String("Hello"); String t = new String("Hello"); if (s.equals(t)){ System.out.println("相等"); } else{ System.out.println("不相等"); } } }
public class test{ public static void main(String[] args){ String s = new String("Hello"); String t = new String(“Hello”); if (s==t){ System.out.println("相等"); } else{ System.out.println("不相等"); } } }
void finalize()
Class getClass() int hashCode()
对象被释放时使用
获得当前对象的类对象 得到代表对象的一个整数,这个 整数在应用程序运行时保持不变 注意Class中的首字母大写 这个整数的意义类似对象的身份 证号码,String, 包装类, URL, File, ,java.util包中的类或接口将 本方法覆盖,当内容相同时得到 的hashCode值相同 String, 包装类, URL, File, java.util包中的类或接口将本方法 覆盖, 得到的值将是其对象内容
这段代码进行的是值比较,运行结果是:相等。 注:这个比较是严格区分大小写的,如果忽略大小写, 应调用equalsIgnoreCase方法。
代码片断如下:
String a = "ABCD";
String b = a.toLowerCase(); b.replace('a', 'd'); b.replace('b', 'c'); System.out.println(b);
打印的结果为:abcd
打印的结果为:b
字符串比较:究竟是值比较还是引用比较?
java.rmi包 java.rmi.registry包 java.rmi.server包
这三个包用来实现RMl(remote method invocation)功 能。利用RMI用户程序可在远程计算机(服务器)上创建 对象,并在本地计算机(客户机)上使用该对象;
java.security包 java.security.acl包 java.security.interfaces包
java.util.zip子包:用来实现文件压缩功能。
抽象窗口工具包(awt)
这个包包含用来构建和管理应用程序图形用户界面的类。
java.awt包主要在三个方面提供界面设计支持:
低级绘图操作,如Graphics类等; 图形界面组件和布局管理,如Checkbox类、Container类、 LayoutManager接口等; 界面用户交互控制和事件响应,如Event类;
String对象特点剖析
初始化
int x = 7; int y = x; String s=“Hello”;
内存的分配情况 x y s
7 7
OX1323443234
如果代码更改为:
int x = 7; int y = x; String s = “Hello”; String t = “Hello”;
作为结束。
String的创建方法:
String greeting = “Good Morning!! \n”; String greeting = new String(“Good Morning!! \n”); 也可由字节数组,字符数组,StringBuffer等创建。
String的特点:一旦赋值,不能更改对象的内容,只可 能改变引用变量的指向。
方法名
说明
备注
Object clone()
boolen equals(Object obj)
将当前对象克隆
判断两个引用是否指向同一对象, 被很多子类重载,用于用语判断 其参数不能为普通数据类型 对象的内容是否一致,如String, 包装类, URL, File, ,java.util包中 的类或接口等
Java 高级
第九章 基本类库
主要内容:
基本类库概述 String和StringBuffer System与Runtime
基本类库概述
• Java的常用包有
ng ng.reflect java.util java.awt java.awt.event java.awt.image java.awt.peer 语言包 反射包 实用包 抽象窗口工具包 java.io java.rmi java.rmi.registry java.rmi.server java.sql java.sercurity 数据库API包 输入输出流的文件包 网络功能 远程方法调用
“Hello”
“Hello” 堆
String t=new String(“Hello”);
s = “Hello” + “World”;
OX1323443234
栈
String作为参数传递的特点
代码片断如下:
public changePara(String s){ s = s+”a”; } public invoke(){ String s =”b”; changePara(s); System.out.println(s); }