java第4章抽象、封装与类.ppt

上传人:小** 文档编号:89364163 上传时间:2019-05-24 格式:PPT 页数:78 大小:627.50KB
返回 下载 相关 举报
java第4章抽象、封装与类.ppt_第1页
第1页 / 共78页
java第4章抽象、封装与类.ppt_第2页
第2页 / 共78页
java第4章抽象、封装与类.ppt_第3页
第3页 / 共78页
java第4章抽象、封装与类.ppt_第4页
第4页 / 共78页
java第4章抽象、封装与类.ppt_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《java第4章抽象、封装与类.ppt》由会员分享,可在线阅读,更多相关《java第4章抽象、封装与类.ppt(78页珍藏版)》请在金锄头文库上搜索。

1、第4章 抽象、封装与类,4.1 抽象与封装 4.2 Java 的类 4.3 类的修饰符 4.4 域 4.5 方法 4.6 访问控制符 4.7 小结 习题,抽象:找出研究对象的实质内容,即研究的重点; 过程抽象(面向过程):强调实现的过程和步骤; 数据抽象(面向对象):把数据和对数据的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型;比如:银行日常业务和银行内部员工考勤系统应该有不同的数据抽象。,4.1 抽象与封装 4.1.1 抽象,抽象,所有编程语言都提供“抽象”功能。 你所能解决问题的复杂程度取决于抽象的种类和质量。 汇编语言对于计算机(机器语言)是一步很小的抽象。 过程化

2、语言(高级语言)对于汇编语言的抽象迈了一大步。但你所考虑的仍然是机器的结构而非问题的结构。 面向对象方法为程序员提供了一种表示问题空间元素的全新的方法,而且不受问题类型的约束。,对象,现实世界中的对象: 它们都有自己的状态 它们又都有自己的行为 程序中的对象 用属性表示状态 用方法(代码)实现行为,4.1.2 封装 面向对象方法的封装特性是一个与其抽象特性密切相关的特性。具体地,封装就是指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统的其他部分只有通过包裹在数据外面的被授权的操作,才能够与这个抽象数据类型交流和交互。,封装:利用抽象数据类型将数据及相关操

3、作封装在一起,数据被保护在其内部; 封装的目的:实现数据隐藏,只能通过接口中授权的函数访问数据; 优点:耦合性降低,可重用性提高,安全性提高; 例子:银行日常业务系统中的“账户”把金额和交易情况封装在类里。,4.2 Java的类 4.2.1 系统定义的类 Java程序设计就是定义类的过程,但是Java程序中定义的类的数目和功能都是有限的,编程时还需要用到大量的系统定义好的类,即Java类库中的类。,根据功能的不同,Java的类库被划分为若干个不同的包,每个包中都有若干个具有特定功能和相互关系的类和接口。 1. java.lang包 java.lang包是Java语言的核心类库,包含了运行Jav

4、a程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等。每个Java程序运行时,系统都会自动地引入java.lang包,所以这个包的加载是缺省的。,2. java.io包 java.io包是Java语言的标准输入/输出类库,包含了实现Java程序与操作系统、用户界面以及其他Java程序做数据交换所使用的类,如基本输入/输出流、文件输入/输出流、过滤输入/输出流、管道输入/输出流、随机输入/输出流等。凡是需要完成与操作系统有关的较底层的输入输出操作的Java程序,都要用到java.io包。 3. java.util包 java.util包包括了Java语言中的一些低

5、级的实用工具,如处理时间的Date类,处理变长数组的Vector类,实现栈和杂凑表的Stack类和HashTable类等,使用它们开发者可以更方便快捷地编程。,4. java.awt包 java.awt包是Java语言用来构建图形用户界面(GUI)的类库,它包括了许多界面元素和资源,主要在三个方面提供界面设计支持:低级绘图操作,如Graphics类等;图形界面组件和布局管理,如Checkbox类、Container类、LayoutManager接口等;以及界面用户交互控制和事件响应,如Event类。利用java.awt包,开发人员可以很方便地编写出美观、方便、标准化的应用程序界面。 5. ja

6、va.awt.image包 java.awt.image包是用来处理和操纵来自于网上的图片的Java工具类库。,6. java.awt.peer包 java . awt . peer包很少在程序中直接用到,它的作用是使得同一个Java程序在不同的软硬件平台上运行时,具有基本相同的用户界面。java . awt . peer包是程序代码与平台之间的中介,它将不同的平台包裹、隐藏起来,使这些平台在用户程序面前呈现相同的面貌。java . awt . peer包是实现Java语言跨平台特性的手段之一。 7. java.applet包 java.applet包是用来实现运行于Internet浏览器中的

7、Java Applet的工具类库,它仅包含少量几个接口和一个非常有用的类:java . applet . Applet。,8. 包 包是Java语言用来实现网络功能的类库。目前已经实现的Java网络功能主要有:底层的网络通信,如实现套接字通信的Socket类、ServerSocket类;编写用户自己的Telnet、FTP、邮件服务等实现网上通信的类;用于访问Internet上资源和进行CGI网关调用的类,如URL等。,9. java.corba包和java.corba.orb包 这两个包将CORBA(common object request broker architecture,是一种标准

8、化接口体系)嵌入到Java环境中,使得Java程序可以存取、调用CORBA对象,并与CORBA对象共同工作。 10. java.lang.reflect包 java.lang.reflect包提供了用于反射对象的工具,反射允许程序监视一个正在运行的对象并获得它的构造函数、方法和属性。,11. java.rmi包、java.rmi.registry包和java.rmi.server包 这三个包用来实现RMI(远程方法调用)功能。利用RMI功能,用户程序可以在远程计算机(服务器)上创建对象,并在本地计算机(客户机)上使用这个对象。 12. java.security包、java.security.

9、acl包和java.security.interfaces包 这三个包提供了更完善的Java程序安全性控制和管理,利用它们可以对Java程序加密,也可以把特定的Java Applet标记为“可信赖的”,使它能够具有与Java Application相近的安全权限。,13. java.util.zip包 java.util.zip包用来实现文件压缩功能。 14. java.awt.datatransfer包 java.awt.datatransfer包提供了处理数据传输的工具类,包括剪贴板、字符串发送器等。 15. java.awt.event包 java.awt.event包是对JDK 1.0

10、版本中原有的Event类的一个扩充,它使得程序可以用不同的方式来处理不同类型的事件,并使每个图形界面的元素本身可以拥有处理它上面事件的能力。,16. java.sql包 java.sql包是实现JDBC(Java database connection)的类库。利用这个包可以使Java程序具有访问不同种类的数据库的功能,如Oracle,Sybase,DB2,SQLServer等。只要安装了合适的驱动程序,同一个Java程序不需修改就可以存取、修改这些不同的数据库中的数据。JDBC的这种功能,再加上Java程序本身具有的平台无关性,大大拓宽了Java程序的应用范围,尤其是商业应用的适用领域。,使

11、用类库中系统定义好的类有三种方式: 一种是继承系统类,在用户程序里创建系统类的子类,例如每个Java Applet的主类都是java.applet包中的Applet类的子类; 另一种方法是创建系统类的对象,例如图形界面的程序中要接受用户的输入时,就可以创建一个系统类TextField类的对象来完成这个任务; 最后一种方法是直接使用系统类,例如在字符界面向系统标准输出输出字符串时使用的方法System.out.println( ),就是系统类System的静态属性out的方法。,类库使用的三种方式,1. 继承 如:public class myApplet extends Applet 2. 实

12、例化对象 如:TextField text = new TextField (“Hello !”) ; 3. 直接使用类的静态属性、方法 如:System.out.println(“How are you !”) ;,import语句: 用户程序在使用系统类之前需要用该语句来引入系统类或系统类所在的包,这样才能保证系统类对用户程序是可见的。 import 包名或系统类名的效率不同,前者会将这个包中所有系统类的字节码加入到用户程序中。,例如使用图形用户界面的程序,应该用语句: import java.awt.*; import java.awt.event.*; 引入java.awt包和java

13、.awt.event包。类库包中的程序都是字节码形式的程序,利用import语句将一个包引入到程序里,就相当于在编译过程中将该包中所有系统类的字节码加入到用户的Java程序中,这样用户Java程序就可以使用这些系统类及其中的各种功能。,4.2.2 用户程序自定义类 系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。用户程序定义自己的类有定义类头和定义类体两个步骤,其中类体又由属性(域)和方法组成。下面的程序片断定义了一个电话卡类。 例 4-1,4.2.3 创建对象与定义构造函数 1. 创建对象 在前面的例子中,为了完成图形界面的输入输出功能,曾创建

14、了若干系统类的对象。如语句:TextField input = new TextField(6); 同理,创建例4-1中定义的PhoneCard类的对象可以使用如下的语句: PhoneCard myCard = new PhoneCard( );,创建对象的一般格式为: 类名 新建对象名 new 构造函数( ); new是为新建对象开辟内存空间的算符。,创 建 对 象,创建对象(类的实例化) 例: Button btn=new Button(“计算”); PhoneCard myCard = new PhoneCard(); 格式:类名 对象名 = new 构造函数(参数列表); 创建的每个对

15、象都拥有自己的成员变量,保存各自的状态,表明拥有独立的内存空间; 算符“.”(访问对象的属性): myCard.cardNumber、myCard.password 等;,2. 构造函数 创建对象与声明变量的另一个不同之处在于,创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。声明变量时可以用赋值语句为它赋初值,而一个对象可能包括若干个域,需要若干个赋值语句,把若干个赋初值的语句组合成一个方法在创建对象时一次性同时执行,这个方法就是构造函数。构造函数是与类同名的方法,创建对象的语句用 new算符开辟了新建对象的内存空间之后,将调用构造函数初始化这个新建对象。,构造函数是类的一种特殊方

16、法,它的特殊性主要体现在如下的几个方面: (1) 构造函数的方法名与类名相同。 (2) 构造函数没有返回类型。 (3) 构造函数的主要作用是完成对类对象的初始化工作。 (4) 构造函数一般不能由编程人员显式直接调用。 (5) 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。,构 造 函 数,功能:类的特殊方法,完成对象的初始化工作; 特点: 只能在创建对象时,在 new 算符后调用(由系统自动调用),不能由编程人员显式调用,如: PhoneCard myCard = new PhoneCard(12345678,1234,50.0,“300”); 方法名与类名相同; 无返回值;,构造函数的重载:一个类可以有多个构造函数,用来完成不同的初始化任务。不同构造函数的形式参数个数、类型、顺序不同;,class UsePoint Point point_A=new Point(); Point point_B=new Point(5,7); ,class Point int x,y; Point() x =

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号