Download presentation
Presentation is loading. Please wait.
1
第二部分 Java语言基础篇 第4章 Java语言与面向对象 (之一)
2
学习目的 学习了解面向对象编程特点,理解面向对象的基本概念以及Java系统对类与对象概念的实现,从而能进一步掌握面向对象的程序开发技术。
3
主要内容 Java语言的类和对象 Java类的继承与封装 Java语言的接口和包 Java语言的异常处理 【综合案例】 本章小结
4
4.1 Java语言的类和对象 Java的程序设计就是定义类的过程。Java语言作为一种面向对象的程序设计语言,具备面向对象技术的基本属性。
5
4.1.1【综合案例4-1】 小型商贸进货系统的Java应用程序。
import java.lang // 为使用数据类型、基本数学函数、字符串处理、线程、 // 异常处理类包而引入系统核心类包。(此包可省略引用) import java.io.*; // 为正确输入输出而引用系统输入输出的类包 public class SaleCount extends Object //用户定义的应用程序SaleCount类 { public static void main(String[] args) { //Java应用程序以main()作为程序执行起点 int totalCount; //类的属性 int Count; //类的属性 InputStreamReader stdin=new InputStreamReader(System.in); //类的对象 BufferedReader bufin=new BufferedReader(stdin); totalCount=0;
6
小型商贸进货系统的Java应用程序。 try { do //类的方法:
{ System.out.println("当前电器类商品存货量为:"+totalCount+"件"); System.out.print("请输入进货数量(输入任意一个负数程序退出)"); Count=Integer.parseInt(bufin.readLine()); if(Count<0) break; else totalCount=totalCount+Count; }while(true); stdin.close(); bufin.close(); } catch (IOException E) { System.out.println("发生I/O错误"); } } //程序代码分析,后续课将继续讲解
7
4.1.2 用户程序自定义的类 程序段4-1:商品类的描述。 class Goods // class指出这是一个类
类的属性(静态特征:名称、品种)类的操作 (动态特征:统计商品、显示商品)Goods类 class Goods // class指出这是一个类 { String name; int type; public void count( ) { …… } public void Showgoods( ) } 类属性 类操作 Good类
8
一个基本类三方面的内容: (1) 类名 (2) 属性说明(数据成员) (3) 操作说明(方法成员) 用户定义类的简单格式1为: class 类名 { 数据成员(或成员变量); 方法成员(或成员方法); }
9
(类中属性与方法封装关系图) 私有数据 公有方法 方法1 方法n 属性1 属性2
10
4.1.3 类的成员 类的对象成员主要有两种: 数据成员和方法成员。 说明: 数据成员同义词: 类的属性、成员变量、类的字段、静态特征等
方法成员同义词: 类的操作、成员方法、成员函数等、动态特征等
11
数据成员 数据成员 数据成员是描述事物的静态特征的。设计数据成员时,应该给出这个数据成员(或称为变量)的名称,同时应该指出他的数据类型。
实例变量: 它是用来存放所有实例都需要的属性信息的,不同实例的属性值可能会有不同。 类变量: 它是用static 修饰的变量。类变量被保存在类的内存区的公共存储单元中,而不是被保存在某个对象的内存区中。因此,一个类的任何对象访问它的时候,取到的都是相同的数值。 数据成员
12
数据成员变量在声明六种修饰符: public, friendly, protected, private, final, static。
上述四种访问修饰在访问级别上是依次降低的。 (5)final,它可以保证所修饰的变量在使用中不被改变。被它声明的变量必须在声明时给定初值,而且在以后的引用中只能读取,不可修改。 上述五种访问修饰的变量均为类的实例变量。 (6)static,它表示该成员变量为类变量。不需要创建对象,就可以利用“类的引用”来访问static成员。
13
程序段4-3: 实例变量与类变量 class Exp4_3 { int x=10; // 实例变量声明与初始化
static int y=2; // 类变量声明与初始化 } class Exp4_3Test { public static void main(String args[]) { System.out.println("y="+Exp4_3.y ); // 类变量输出(类外调用) Exp4_3 A=new Exp4_3(); // 类对象声明 A.x*=2; // 实例变量取新值 System.out.println( "x="+A.x ); // 实例变量输出(类外调用) 程序运行结果: y=2 x=20
14
方法成员 构造方法 在Java程序设计中,任何成员变量在被使用前都必须先设置初值。Java提供了为类对象的成员变量赋初值的专门功能——构造方法。它是一种特殊的方法成员,特性如下: (1) 构造方法名与类名相同。 (2) 构造方法不返回任何值,也没有返回类型。 (3) 每一个类可以有零个或多个构造方法。 (4) 构造方法它在创建对象时被自动执行,一 般不能显式地直接调用。
15
程序段4-4 完成创建一个员工成员变量时,起始工资都是800元。 pubuli class Employee
{ float empSal; // 声明职工工资为浮点型的成员变量 …… // 声明实例变量 …… // 声明实例方法 Employee( ) // 声明构造方法,构造方法名与类名一致 { empSal=800.00; // 为员工工资成员变量赋初值 System.out.println( “你已经为Empleyee中的empSal属性赋了值!”); // 类库成员方法引用,打印相关信息 }
16
类方法(又称为静态方法) 实例方法(没有static修飾的方法) 用static修饰的方法称为类方法。
(1)main方法是静态方法,所有Java的应用程序中,都必须有且只能有一个该方法,它是Java程序运行的入口点。 (2)static方法是属于整个类的,它在内存中的代码段将随着类的定义而分配和装载; (3)引用static方法时,可以使用对象名作为前缀,也可以使用类名作为前缀; (4)static方法只能访问static数据成员,不能访问非static数据成员; (5)static方法只能访问static方法,不能访问非static方法; (6)static方法不能被覆盖,也就是说,这个类的子类不能有同名、相同参数的方法。 实例方法(没有static修飾的方法)
17
程序段4-5 class Exp_Static { int a1; // 非静态数据变量(实例变量)
void f( ) // 非静态方法成员(实例方法) { System.out.println(“Function f in program1 is referenced. ”); } //类库成员方法 static void f1( ) // 静态方法成员(类成员方法) { Systeme.out.println(“Function f1 in program1 is referenced.”); } static void f2( ) // 静态方法成员(类成员方法) { f1( ); // 合法引用 a1=15; // 错误,引用了非静态数据成员 f( ); // 错误,应用了非静态方法成员 a2=16; } // 合法引用 } class A extends Exp_Static { void f1( ) // 错误,不能覆盖类的方法 System.out.println(“Function f1 in program1 is referenced. ”);
18
方法成员设计格式 方法的参数在Java中是比较简单的,它仅仅采用的是参数传值的方式。
[修饰符] 返回值类型 方法名(形式参数表)[throw异常表] { 说明部分 执行语句部分 }
19
1 方法成员的修饰符 final最终方法它能被子类继承和使用,但不能在子类中修改或重新定义。
native用其它语言编写的方法在Java中称为本地方法。 abstract抽象方法是指不能实现的方法,因为它没有方法体,所以抽象方法不能出现在非抽象类中。 Synchronized同步方法用于多线程编程;多线程在运行时可能会同时出现存取一个数据,为避免数据的不一致性,应将方法声明为同步方法,对数据进行加锁,以保证线程的安全。
20
2 方法成员名、形式参数和异常处理 方法成员名:它的起名遵循标识符定义规则命名的标识符。
形式参数:方法成员可以分为带参和无参两种。无参时方法成员名后的一对圆括号不能省略;对于带参的方法成员来说,形式参数表应指明该方法所需要的参数个数、参数的名字及参数的数据类型等,其格式为: (形式参数类型1 形式参数名1, 形式参数类型2 形式参数名2,……) throw异常表:它指出当该方法遇到方法设计者未曾想到的一些问题时如何处理这部分将在后续第7章中专门介绍。
21
4.1.4 类的对象 对象是对客观事物实体的抽象,抽象成相对应的属性和行为。对象是对客观世界实体的软件模型,由数据和方法组成。对象也可称为是数据与方法的封装体。 类与对象的关系是,类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。在面向对象的程序设计中,对象被称作类的一个实例;而类是创建对象的模板(template)。
22
类的概念 类——class 类是对一组相似对象的描述,这些对象具有相同的属性和行为、相同的变量(数据结构)和方法实现。类定义就是对这些变量和方法实现进行描述。
23
对象的概念 对象——object 实体抽象——属性和行为。 属性:表示实体的静态特征,所有属性的组合反映 实体的状态;
行为:表示实体的动态特征,一个行为的过程可能 会影响或改变实体的状态。
24
对象的概念 对象——object 是对客观世界里的任何实体的抽象。 是对客观世界实体的软件模型, 由数据和方法组成。 是数据与方法的封装体。
25
程序段4-6 商品类的应用:利用案例段1的类定义一个Goods类的继承类Show_Goods,来显示商品信息。
创建对象包括: 对象声明、 对象实例化、 对象的使用、 对象消除等。 程序段4-6 商品类的应用:利用案例段1的类定义一个Goods类的继承类Show_Goods,来显示商品信息。 public class Show_Goods extends Goods { public static void main(String args[]) { Goods G1; // 声明对象 G1 = new Goods( ) ; // 建立对象,为对象分配存储空间 G1.name = “electrical_equipment ”; // 初始化对象,为对象数据成员赋值 G1.ShowGoods( ); } // 调用对象方法成员,显示商品信息 } 对象具有的基本特征:对象名字,对象数据和对象方法。
26
对象的创建1 用类名定义所引用的对象 格式:类名 对象名; 举例:Textfield input; 创建并初始化对象
格式:类名 对象名; 举例:Textfield input; 创建并初始化对象 格式:new 构造方法(实参表); 举例:new Textfield(10); 把new运算的返回值赋给引用的对象 格式:引用对象名=new 构造方法(实参表) 举例:input=new Textfield(10); 构造方法的无参数:类名 对象名 = new 构造方法( );系统将取默认值。 对象创建时的简化格式—上述三步汇总 类名 对象名=new 构造方法([实参表]); 举例:Textfield input=new Textfield(10);
27
对象的创建2 创建对象有3个部分组成: 创建对象小结 声明对象、实例化、初始化
<类名><对象名>=new <类名>([参数列表]) 举例: (1)声明对象: <类名><对象名> 例:MyBox b1; (2)实例化对象和初始化对象 <对象名>=new <类名>( [参数列表] ) 例:MyBox b2=new MyBox(20,20,100,100)
28
对象的初始化 对象的初始化实际上就是为对象的数据成员进行初始化。 它是在创建对象的时候由系统直接完成的。
(1)系统自动初始化(0,空格,空,假); (2)利用构造方法进行初始化。 重点记忆 !
29
例如:class MyBox MyBox( ) { x=0; y=0; width=0; height=0; } 对象初始化的说明
(默认构造方法) 例如:class MyBox MyBox (int xx,int yy, intWidth,int Height ) { x=xx; y=yy; width=Width; height=Height; } (构造方法)
30
给对象赋值1 利用“.”运算符给对象属性赋值 对象名.数据成员名=数值; 或:对象名.变量名=数值;
例如:Your_Clouth.color= “white”; //服装对象的颜色变量值取白色 Your_Clouth.name= “ ”; //服装对象的名称取空 利用实例方法中的形参代入实参时给对象属性赋值 例如:若已声明了一个实例方法setEmpNum(Num); 代入实参值时,<类名.setEmpNum(1001); > 则它所在类内声明的<对象.属性Num>的值就为1001。
31
给对象赋值2 将A对象应用变量赋值给B对象应用变量,完成对象赋值 例如:取A对象名=B对象名程序说明: 类名 A=new 类名();
类名 B=new 类名(); A=B; 这种对象的赋值,实际上是将A对象引用地址赋给 B对象引用地址,而不是将A对象堆内存空间复制粘 贴到B对象堆内存空间,即两个对象引用指向同一个 内存空间。
32
对象的操作1 对象调用 例题: (1)<对象名>.<变量名>
(2)<对象名>.<方法名>([参数列表]) 例题: Graphics g; g.drawRect (x, y, width, height);
33
对象的操作2 对象比较 参考相等是指两个对象指向相同的内存空间,具有共同的实例变量。当需要判断两个对象是否参考相等时,使用关系运算符==来组成 if 语句的表达式。 数值相等是指两个同类对象的所有实例变量值都一一对应相等(对象可以指向各自不同的一个空间,但是它们的实例变量的初始化值完全相同)。当需要判断两个对象是否数值相等时,是通过调用对象实例方法equals()来实现的。
34
对象的操作3 对象参数和默认值 每种类型变量都有其默认值,例如: int类型变量的默认值为0; boolean类型变量的默认值为false;
对象变量的默认值为null,创建该变量后null被具体的对象取代。当对象变量的值为null时,不可以通过其调用任何实例变量和实例方法,否则发生错误(Null Pointer Exception)。
35
对象的操作4 对象数组 数组对象定义: 类名 数组名[ ]; 或 类名[ ] 数组名; 数组对象的创建形式:
类名 数组名[ ]; 或 类名[ ] 数组名; 数组对象的创建形式: 数组名=new 类名[数组元素的个数]; 对象数组与普通类型数组的不同之处: 在于数组元素的初始化。因为对象数组的每一个元素实际上就是类的一个对象,所以需要按创建对象的方法来初始化数组元素,也就是需要使用关键字new来调用类的构造方法。
36
对象的清除 把一个空值赋给要清除的对象。 例如: Rectangle r=new Rectangle(5,5,5,5); ……
r = null;
37
4.1.5【综合案例4-2】 职工信息管理应用程序。 对象的操作、类的标识和访问控制综合应用。
创建一个职工类,在完成各种类成员声明后,根据需要完成类数据成员和方法成员的调用。
38
综合案例4-2-1 class Employee //声明职工类 { public int Num; //职工编号 public String Name; //姓名 protected int Age; //年龄 double Salary; //工资 Employee ( ) //构造方法 { Num=0; Name= "空"; Age=0; Salary=0; }
39
综合案例4-2-2 public int setEmpNum(int n) //设置职工编号方法 { Num=n; return Num; } public int getEmpNum() //获取职工编号方法 { return Num; } public String setEmpName(String name) //设置职工姓名方法 { Name=name; return Name; } public String getEmpName() //获取职工姓名方法 { return Name; } public int setEmpAge(int e) //设置职工年龄方法 { Age=e; return Age; } public int getEmpAge() //获取职工年龄方法 { return Age; } public double setEmpSalary(double f) //设置职工工资方法 { Salary=f; return Salary; } public double getEmpSalary () //获取职工工资方法 { return Salary; } }
40
综合案例4-2-3 public class TestEmployee //声明一个调用职工类信息的类 { public static void main(String[] args) //主方法 { Employee Exp1=new Employee (); //声明Employee类对象 System.out.print("职工编号初始化值为:"); System.out.println(Exp1.Num); System.out.print("职工姓名初始化值为:"); System.out.println(Exp1.Name); System.out.print("职工年龄初始化值为:"); System.out.println(Exp1.Age); System.out.print("职工工资初始化值为:"); System.out.println(Exp1.Salary); Exp1.setEmpNum(1001); //对象成员方法引用 Exp1.setEmpName("王晓红"); //对象成员方法引用 Exp1.setEmpAge(28); //对象成员方法引用 Exp1.setEmpSalary( ); //对象成员方法引用
41
程序运行结果: 综合案例4-2-4 System.out.print("\n职工编号为:");
System.out.println(Exp1.getEmpNum()); System.out.print("职工姓名为:"); System.out.println(Exp1.getEmpName()); System.out.print("职工年龄为:"); System.out.println(Exp1.getEmpAge()); System.out.print("职工工资为:"); System.out.println(Exp1.getEmpSalary()); } 程序运行结果: 职工编号初始化值为:0 职工姓名初始化值为:空 职工年龄初始化值为:0 职工工资初始化值为:0.0 职工编号为:1001 职工姓名为:王晓红 职工年龄为:28 职工工资为:3870.0
42
数据成员的调用 对实例成员(非静态成员)的访问 对类成员(静态成员)的访问: 在类体外访问:
<引用类型成员名> <实例成员名> 在类体内访问: <实例成员名> // 直接调用方式 this . <实例成员名> 对类成员(静态成员)的访问: <类名>.<类成员名> 在类体内访问: <类成员名> // 直接调用方式
43
方法成员的调用 在类体内调用: 在类体外调用: 方法调用说明: <方法名>([实参表]) // 直接调用方式
<方法名>([实参表]) // 直接调用方式 在类体外调用: <对象名>.<方法名>([实参表]) <类名>.<方法名>([实参表]) 方法调用说明: (1)在类体内不管是实例方法还是类方法都可以 直接调用其他类方法; (2)在类体外则可以通过实例对象也可以通过类 名调用类方法; (3)实例方法与类方法不同,实例方法总是通过 实例调用。
44
4.1.6 类与对象的关系 类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。
* 在面向对象的程序设计中,对象被称作类的一个 实例(instance); * 而类是创建对性的模板(template)。 抽象 实例化 类:汽车 属性:颜色 型号 马力 生产厂 服务:运输 对象:桑塔纳 静态 黑色 特征:2000 80 上海大众 动态特征:载人 数据成员 方法成员 数据值 执行操作 (类与对象的关系示例)
45
类与对象的关系 可用一种“is-a(是一)”的关系来描述。 例如: “这是一张桌子”; “那是一条鱼”。
即:上述两句陈述句的主语部分表示实际的对象(实例),宾语部分表示给对象所属的类。 类和对象的主要区别: 类是对对象的一种抽象,而对象是对类的一种具体化。
46
类变量与实例变量的区分 难点说明 1 产生的时间不同: 2 变量的所属性不同: 类变量是所有对象共有的; 3 访问方式不同:
实例变量在实例化对象时产生; 类变量在定义时产生。 2 变量的所属性不同: 类变量是所有对象共有的; 实例变量是各个对象所独有的。 3 访问方式不同: 类变量可以通过类名访问类变量__即: 类名. 类变量 (或者) 对象名.类变量 实例变量是通过对象名进行访问的__即: 对象名.实例变量 难点说明
47
静态成员方法与非静态成员方法的区分 难点说明 1 属性不同: 静态成员方法属于整个类,非静态成员方法在对象被创建时具体属于某个对象。
2 访问方式不同: (1)静态成员方法使用: 类名.静态成员方法 或者 对象名.静态成员方法 (2)非静态成员方法的使用: 对象名.非静态成员方法。 3 访问的限制: (1)静态方法只能访问静态数据成员和静态方法,不能访问非静态数据成员和静态方法; (2)非静态方法可以访问静态或非静态数据成员及静态方法或非静态方法。 4 方法的覆盖 (1)静态方法不能被覆盖; (2)非静态方法可以被覆盖。 难点说明
48
4.1.7 类与类成员的访问控制1 类的修饰符 (1)无修饰符的情况。如果一个类前无修饰符,则这个类只能被同一个包里的类使用。
(2)public修饰符。由public修饰的类为公共类。它可以被其它包中类使用。 (3)final修饰符。由final修饰的类为最终类。它不能被任何其它类所继承,即它不能派生子类。 (4)abstract修饰符。由abstract修饰的类为抽象类。其作用在于将许多有关的类组织在一起,提供一个公共的基类,为派生类奠定基础。
49
4.1.7 类与类成员的访问控制2 类成员的修饰符 (1)public修饰符。 (2)private修饰符。
(3)protected修饰符。 (4)无修饰符(默认的)。 需要注意有些修饰符不能同时使用: (1)abstract不能与final并列修饰同一个类。 (2)abstract不能与private,static,final或native并列修饰同一个方法。 (3)abstract类中不能有private的成员(包括属性和方法)。 (4)abstract方法中不能处理非static的属性
50
4.1.8【综合案例4-3】 银行信息管理系统应用。 (类成员的调用设计、类的标识和访问控制综合)
class BankAccount //银行账号类定义 { private String ownerName; private int accountNum; private float Balance; public BankAccount() //无参构造方法 { this(“ ”, 0, 0); } public BankAccount(String _Name, int _Num, float _Balance) //有参构造方法 { ownerName= _Name; accountNum=_Num; Balance=_Balance; }
51
public void setOwnerName (Sring newName) //设置姓名方法
{ ownerName=newName; } public String getOwnerName() //获取姓名方法 { return ownerName; } public void setAccountNum (int newNum) //设置账号方法 { accountNum=newNum; } public int getAccountNum() //获取账号方法 public void setBalance (float newBalance) //设置存款方法 { balance=newBalance; } public float getBalance() //获取存款方法 { return Balance; } public String toString() //字符串转换输出 { return(“Account #”+accountNum+ “with balance $”+balance); } public float deposit(float anAmount) //存款方法 { Balance=Balance+ anAmount; return Balance; } public float withdraw(float anAmount) //取款方法 { Balance=Balance- anAmount;
52
public class AccountTest //测试类定义
{ public static void main(String args[]) { BankAccount anAccount; anAccount=new BankAccount("Zhangqiang", 10023, 0); anAccount.setBalance(anAccount.getBalance()+100); System.out.println(anAccount); System.out.println(); System.out.println("Here is the account:"+ anAccount); System.out.println("Account name:"+ anAccount.getOwnerName()); System.out.println("Account number:"+anAccount.getAccountNum()); System.out.println("Balance:$"+anAccount.getBalance()); anAccount=new BankAccount("Wanghong", 10024, 0); anAccount.deposit(225.67f); anAccount.deposit(300.00f); anAccount.withdraw(400.17f); } 程序运行结果: Here is the account:Account #10023with balance $100.0 Account name:Zhangqiang Account number:Zhangqiang Balance:$100.0 Account #10024with balance $0.0 Account #10024with balance $525.67 Account #10024with balance $
53
4.1.9 系统定义的类 系统定义好的类就是Java类库中的类。 根据实现功能不同,划分不同的集合,每个集合是一个包,合称为类库。又称为:API---application program interface SUN 公司提供的类库称为基础类库JFC。
54
使用系统类前提 使用系统类的前提条件: * 必须用import语句引入所用到的系统类等。 类库包中的程序都是字节码形式的程序,利用import语句将一个包引入到程序里来,就相当于在编译过程中将该包中所有系统类的字节码加入到用户的Java程序中,这样用户Java程序就可以使用这些系统及其类中的各种功能。
55
Java.sun.com/j2se/1.4.1/docs/api/index.html 列出Java中所有软件包页面 参考资料:
自学所有类库的查找方法 列出Java中所有软件包页面 软件包(总说明、包内容说明)页面: 接口Interfaces/类classes/异常Exceptions/错误Errors 所有不推荐使用类的功能页面提示。 说明有哪些软件包、类、方法等用了该类的任何一部分内容的页面。 类和接口页面: 最顶级的类为Object/直接继承的类是Panel/... 按字母顺序列出Java中的所有类、接口、构造方法、方法和域。 软件包、类和接口的层次图页面。 (比class页面详细) 参考资料: Java2 API大全 电子工业出版社
56
常用系统定义的包简介 1) java.lang 2) java.lang.reflect 3) java.io 4) java.util
5) java.util.zip 6) java.awt 7) java.awt.image 8) java.awt.datatransfer 9) java.awt.event 1. 核心类库: 含数据类型、 基本数学函数、 字符串 、 处理、 线程、 异常处理类等 2.核心类库: 是反射对象工具, 监视正在运行的对象并获得它的构造函数、方法和属性。 3.标准I/O类库: 基本I/O流、 文件I/O流、 过滤I/O流、 管道I/O流、 随机I/O流等。 4低级实用工具类库: 处理时间Date类 变长数组Vector类 栈Stack类 杂凑表HashTable类 6.构建图形用户: 低级汇图操作 图形界面组件、 布局管理 界面用户交互、 事件响应等 5低级实用工具类库 实现文件压缩类 7.构建图形用户 处理、操作网上图片的工具 8.构建图形用户 处理剪贴板、字符串发送器等 9.构建图形用户 Event类的扩充 处理不同类型的事件
57
常用系统定义的包简介 10) java.applet 11) java.net 12) java.corba
13) java.corba.orb 14) java.rmi 15) java.rmi.reistry 16) java.rmi.server 17) java.security 18) java.security.acl 19) java.security.interfaces 20) java.sql 10. 实现运行于 Internet浏览器中的Java Applet的工具 类库。 11.网络功能类库低层网络通信编写FTP,Telnet等网上通信类访问网上资源进行CGI网关调用的类等。 12,13.其他面向对象语言开发的 部件。(可方便、动态地利用已经存在的软件) 14~16.远程方法调用用户程序可以在远程计算机(服务器)上创建对象,在本地计算机上使用该对象。 17~19.安全控制管理对程序加密把Java Applet 进行标记,使之具有与完整的Java程序有相同的安全性。 20. 访问各种数据库包JDBC。 可访问: Oracle, Sybase, DB2, SQLServer等
58
常用java子包汇总 包 接口和类的用途 包 接口和类的用途 java.applet applet java.rmi 远程方法调用
包 接口和类的用途 包 接口和类的用途 java.applet applet java.rmi 远程方法调用 java.awt 图形和图形用户接口 java.rmi.dgc 支持java.rmi java.awt.datatranster 剪切和粘贴功能 java.rmi.registry 同上 java.awt.event 事件处理 java.rmi.server 同上 java.awt.image 图像处理 java.security 安全 java.awt.peer 平台无关图形 java.security.acl 支持java.security java.beans 软件组件 java.security.interfaces 同上 java.io 输入输出 java.sql 数据库 java.lang 语言的核心功能 java.text 国际化 java.lang.reflect 映射(“自省”) java.util 各种工具 java.math 任意精度算术运算 java.util.zip 压缩和解压缩 java.net 连网
59
常用javax子包汇总 包 包中接口和类的用途 javax.accessibility 判定技术
包 包中接口和类的用途 javax.accessibility 判定技术 javax.swing “轻便”的图形和图形用户 javax.swing.border 专用边界 javax.swing.colorchooser 颜色选择 javax.swing.event 扩展java.awt.event的事件处理 javax.swing.filechooser 文件选择 javax.swing.plaf 可插入的外观和效果 javax.swing.plaf.basic 基本的外观和效果 javax.swing.plaf.metal 金属的外观和效果 javax.swing.plaf.multi 复合体的外观和效果 javax.swing.table 数据的表单表示 javax.swing.text 文本的表示和处理 javax.swing.text.html HTML文本 javax.swing.text.rtf RTF(Rich Text Format)文本 javax.swing.tree 数据的树型表示 javax.swing.undo 文本编辑中的撤消功能
60
使用系统定义类的三种方式 1 继承系统类 例:每个Java Applet的主类都是Java.applet 包中 Applet类的子类。
2 直接使用系统类 例:字符界面系统标准输出的方法引用 System.out.println( ) 3 创建系统类的对象 例:图形界面接受输入时创建系统类的对象 TextField input 第3点讲完,引出下一节内容。
Similar presentations