JAVA语言的抽象封装与类5.1 抽象与封装5.2 Java的类5.3 类的修饰符5.4 域5.5 方法5.6 访问控制符面向对象的程序设计有四大特点:抽象、封装、继承和多态性。一、抽象:即去掉与主题无关的次要的部分,而仅仅抽象取出与工作有关的实质的内容加以研究。 在计算机技术常用的抽象的过程抽象与数据抽象。 过程抽象是将整个系统的功能划分成为若干部分,强调功能完成的过程和步骤。面向过程的程序设计就采用这种方法。 数据抽象是与过程抽象不同的抽象方法,它把系统中需要处理的数据和这些数据的的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型,每个数据类型即包括了数据,又包括了针对这些数据的操作。 面向对象的软件开发方法的主要特点就是采用数据抽象的方法来构建程序中的类、对象的方法。它的优点为:一方面可以去掉与核心问题无关的东西,使开发工作可以集中在比较关键、主要的部分;另一方面,在数据抽象过程中对数据和操作的分析、辨别和定义可以帮助开发者对整个问题有更深入、准确的认识。 例如:人们不会把一辆汽车像想成一大堆成千上万的单个零件,而只会把它看成是一个拥有自己特殊行为的定义好的对象。这种抽象允许人们使用汽车而不管它的部件的复杂性。 我们也可以通过分层抽象,将汽车分成若干个子对象。从而将它分成若干个小对象来管理和使用。 对于一个传统的面向过程的程序,它的数据可以通过抽象转变构成它的对象。一系列过程步骤能够成为这些对象之间的信息集合。所以每一个对象描述它自己的独特行为。消息告诉它对象能够做什么,而我们可以将这些对象看作是对消息产生反应的具体存在。 面向对象概念形成了Java的核心, 我们要理解这些概念是如何转变成程序的。二、封装:就是利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统的其它部分只有通过包裹在数据外部的被授权的操作,才能够与这个抽象数据类型进行交流。 在OOP中,抽象数据类型是利用类这种结构来实现的,每个类里面封装了相关的数据和操作。在实际的开发过程中,类多用来构建系统内部的模块,由于封装特性把类内的数据保护得很好,模块与模块间仅仅通过严格控制的界面进行交互,使它们之间的耦合和交叉大大减少,从而降低了开发过程的复杂性,提高效率和质量,减少了可能的错误,同时也保证了程序中数据的完整性和安全性。 在OOP中,这种封装的特性,使得类或模块的可重用性大地提高,封装使得抽象数据类型对内成为一个结构,可自我管理,对外则是一个功能明确、接口单一,可独立工作的有机单元。这样的有机单元特别有利于构建、开发大型标准化的应用软件系统,可以大幅度地提高生产效率,缩短开发周期和降低开发费用。Java的类库一、系统预定义类: Java的程序设计就是定义类的过程,类库是Java语言的重要组成部分,Java的类库包括系统类和用户自定义的类。Java语言是由语法规则和类库两部分组成的。语法规则确定Java程序的书写规范;类库则提供了Java程序与运行它的系统软件之间的接口。Java的系统类是编写好的Java程序模块,每个模块通常对应一种特定的基本功能和任务,在我们的程序中可以直接使用而不需要从头做起。所以学习Java必须注意两个问题:Java的语言规范和系统类库。 Java类库根据实现的功能不同,可以划分成不同的集合,每个集合是一个包,即类库,称为Java的API。我们介绍的是Java 2的类库。(1)java.lang:它是Java语言的核心在库,包含了运行Java程序必不可少的系统类。系统会自动地加入这个包。(2)java.io:是Java的标准输入输出类库,它实现了Java程序与OS、用户界面以及其它Java程序做数据交换所使用的类。(3)java.util:包含了Java中的一些低级的实用工具。(4)java.awt:是Java语言用来构建GUI界面的类库。(5)java.awt.image:是用来处理和操纵来自于网上的图片的工具类库。(6)java.peer:对等体包,是Java实现跨平台特性的手段之一。(7)java.applet:是用来构建Java Applet程序的类库。(8)java.net:是用来支持网络功能的类库。(9)java.corba、java.corba.orb:是将corba嵌入到Java环境中的工具。(10)java.lang.reflect:反射工具类库。(11)java.rmi、java.rmi.registry、java.rmi.server:是用来实现RMI的工具。 (12)java.security、java.security.acl、java.security.interfaces:是实现安全管理的控制的工具。(13)java.tuil.zip:是用来实现文件压缩的工具。(14)java.awt.datatransfer:是用来处理数据传输的工具类。(15)java.awt.event:事件处理的类库。(16)java.sql:是用来实现JDBC的类库。 对上述类库的使用有三种方式:一是通过继承;二是直接刨建系统类的对象;三是直接使用系统类的方法。 无论采用哪种方式都必须使类库可见,即引入类库。二、用户自定义类: 系统类中虽然预定义了很多类,但用户在实际使用时,仍然要根据特定的问题来自己定义类。 用户的自己定义类包括类头和类体,类体又包括属性和方法两部分。(打开电括类库文件:PhoneCard.java)三、创建对象和类的构造函数: 1、创建对象: 一般格式为: 类名 新对象名=new 类的构造函数;如:TextField input=new TextField(8); phoneCard myCard=new phoneCard();从上面可以看出,对象是以类的模板创建的具体实例。myCard对象中的它自己的五个域和三个方法,即:myCard.cardNumber;myCard.password;myCard.balance;myCard.connectNumber等等。如果另外创建一对象,则它也有自己的域和方法。如果要访问一个对象的域和方法,则格式为: 对象名.域或方法;如:myCard.balance=50.00;