第三章面向对象编程精选文档.ppt
第三章面向对象编程第三章面向对象编程本讲稿第一页,共六十三页本章知识要点:本章知识要点:定义继承、多态、重载、覆盖和虚拟方法调用定义继承、多态、重载、覆盖和虚拟方法调用使用访问修饰符使用访问修饰符protectedprotected和和“友元包友元包”描述构造器和方法重载的概念描述构造器和方法重载的概念描述完整的对象构造和初始化操作描述完整的对象构造和初始化操作在在javajava程序中识别下列内容程序中识别下列内容重载方法和构造器重载方法和构造器使用使用thisthis来调用重载的构造器来调用重载的构造器覆盖方法覆盖方法调用超类方法调用超类方法父类构造器父类构造器调用父类构造器调用父类构造器类设计本讲稿第二页,共六十三页面向对象的思想概述面向对象的思想概述1.1.面面向向对对象象的的编编程程思思想想力力图图使使对对计计算算机机语语言言中中对对事事物物的的的的描描述述与与现现实实世世界界中中该该事事物的本来面目尽可能的一致。物的本来面目尽可能的一致。2.2.类类(class)class)和和对对象象(object)object)是是面面向向对对象象方方法法的的核核心心概概念念。类类是是对对一一类类事事物物描描述述,是是抽抽象象的的、概概念念上上的的定定义义;对对象象是是实实际际存存在在的的该该类类事事物物的的每每个个个个体体,因因而而也也称称实例实例(instance)instance)。本讲稿第三页,共六十三页类和对象类和对象(1)对象表示现实世界中某个具体的事物。对象表示现实世界中某个具体的事物。抽象是从特定的实例中抽取共同的性质以形抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程。成一般化概念的过程。对象具有两方面的含义:对象具有两方面的含义:9 在现实世界中:是客观世界中的一个实体是客观世界中的一个实体9 在计算机世界中:是一个可标识的存储区域本讲稿第四页,共六十三页类和对象类和对象(2)类是具有共同属性类是具有共同属性和行为的对象的抽和行为的对象的抽象。象。类可以定义为数据类可以定义为数据和方法的集合。和方法的集合。类也称为模板,因类也称为模板,因为它们提供了对象为它们提供了对象的基本框架。的基本框架。类对象抽抽象象实实例例化化属性或状态属性或状态操作或行为操作或行为数据或变量数据或变量方法方法封装的实体=数据+方法本讲稿第五页,共六十三页创建类创建类 classnametypevariable1;typevariableN;typemethodname1(parameter-list)/方法体方法体typemethodnameN(parameter-list)/方法体方法体 在类中,属性是通过成员变量在类中,属性是通过成员变量体现的,而操作是用成员函数体现的,而操作是用成员函数(又称为方法)实现的。(又称为方法)实现的。Java中定义类的通用格式:中定义类的通用格式:成员变量(对象属性)成员方法(对象行为或操作)本讲稿第六页,共六十三页类和对象举例定义一个类定义一个类:class Person int age;int getAge()return age;void setAge(int i)age=i;声明并创建一个声明并创建一个Person类的对象,将该对象命名为类的对象,将该对象命名为a:Person a=new Person();调用对象调用对象a中的方法中的方法:a.setAge(36);本讲稿第七页,共六十三页声明属性语法格式:type =defaultValue;举例:public class Person private int age;public String name=“Lila”;本讲稿第八页,共六十三页定义方法定义方法定义方法的一般格式:定义方法的一般格式:accesstypemethodname1(parameter-list)/方法体方法体发往某个对象的消息对应于一个方发往某个对象的消息对应于一个方法调用。作为对消息的响应,对象法调用。作为对消息的响应,对象将执行一个类似于过程体的方法。将执行一个类似于过程体的方法。方法是包含在类中的函数。方法是包含在类中的函数。方法名称返回类型修饰符,可选参数列表,可选举例:举例:publicvoidsetdate(intday,intmonth,intyear)day=23;month=7;year=2003;本讲稿第九页,共六十三页构造方法构造方法构造函数名称与类名称相同构造函数名称与类名称相同构造函数没有返回类型构造函数没有返回类型其任务是在创建对象时初始化其内部状态其任务是在创建对象时初始化其内部状态classFruitbooleanseedLess;booleanseasonal;floatprice;Fruit(booleanseed,booleanseason,floatp)seedLess=seed;seasonal=season;price=p;本讲稿第十页,共六十三页默认的构造方法(默认的构造方法(1)JavaJava语言中,每个类都至少有一个构造方法;语言中,每个类都至少有一个构造方法;如如果果类类的的定定义义者者没没有有显显式式的的定定义义任任何何构构造造方方法法,系系统统将将自动提供一个默认的构造方法:自动提供一个默认的构造方法:默认构造方法没有参数默认构造方法没有参数默认构造方法没有方法体默认构造方法没有方法体JavaJava类类中中,一一旦旦类类的的定定义义者者显显式式定定义义了了一一个个或或多多个个构构造方法,系统将不再提供默认的构造方法;造方法,系统将不再提供默认的构造方法;本讲稿第十一页,共六十三页默认的构造方法(默认的构造方法(2)类的定义类的定义:public class Person private int age;public void setAge(int w)age=w;等价于:等价于:public class Person private int age public Person()public void setAge(int w)age=w;应用举例:应用举例:public class Test public static void main(String args)Person d=new Person();d.setAge(120);本讲稿第十二页,共六十三页创建对象创建对象使用下列语法可创建对象:使用下列语法可创建对象:new 构造函数构造函数关键字关键字 new 通常称为创建运算符,用于分通常称为创建运算符,用于分配对象内存,并将该内存初始化为缺省值。配对象内存,并将该内存初始化为缺省值。一旦一旦 new 完成分配和初始化内存,它就将完成分配和初始化内存,它就将调用构造函数来执行对象初始化。调用构造函数来执行对象初始化。当创建一个类时,只是创建当创建一个类时,只是创建了一种新的数据类型。对象了一种新的数据类型。对象是类的一个实例。是类的一个实例。classFruitDemopublicstaticvoidmain(Stringargs)Fruitf=newFruit(true,false,50.0F);创建对象本讲稿第十三页,共六十三页练习分析并编译、运行下面的源文件,体会类的定义、对象的创建、对象成分析并编译、运行下面的源文件,体会类的定义、对象的创建、对象成员方法的调用、类的定义和应用程序在源文件结构上的不同;员方法的调用、类的定义和应用程序在源文件结构上的不同;/源文件源文件A.javapublic class A public void m1()System.out.println(hi);/源文件源文件Test.javapublic class Test public static void main(String args)A hello=new A();hello.m1();本讲稿第十四页,共六十三页面向对象的应用举例(1)程序程序BirthDate.java:public class BirthDate private int day;private int month;public int year;public void setDay(int d)day=d;public void setMonth(int m)month=m;public void setYear(int y)year=y;public int getDay()return day;public int getMonth()return month;public int getYear()return year;public void show()System.out.println(day+-+month+-+year);本讲稿第十五页,共六十三页面向对象的应用举例(2)程序程序ObjectOperating.java:public class ObjectOperating public static void main(String args)BirthDate b=new BirthDate();b.setDay(25);b.setMonth(12);b.setYear(2003);b.day=2;b.year=2003;b.show();本讲稿第十六页,共六十三页Java中的访问修饰符JavaJava中共有四种访问修饰符:中共有四种访问修饰符:1 1、public public:完全公开,没有类或包的限制完全公开,没有类或包的限制2 2、protectedprotected:强调继承关系,没有包的限制强调继承关系,没有包的限制3 3、defaultdefault:有包的限制,没有类的限制,有包的限制,没有类的限制,对于同一包中对于同一包中的类来说,相当于的类来说,相当于publicpublic修饰符。也可叫做修饰符。也可叫做package privatepackage private4 4、private:private:有包的限制,同时也有类的限制,只能被同一个类有包的限制,同时也有类的限制,只能被同一个类中的成员函数或内部类访问。中的成员函数或内部类访问。本讲稿第十七页,共六十三页关于访问权限的习题测试privatefriendlyprotectedpublic同一类同包不同类同包子类不同包子类不同包不同类calssuseYYYYNYYY NYYY NNYYNNNY下题每空下题每空5 5分,测测您的分数:分,测测您的分数:本讲稿第十八页,共六十三页实例验证在同在同一个一个类中类中package accessdemo;public class SuperClasspublic void testPublic()System.out.println(a public method in superclass);protected void testProtected()System.out.println(a protected method in superclass);void testFriendly()System.out.println(a friendly method in superclass);private void testPrivate()System.out.println(a private method in superclass);public static void main(String args )SuperClass sc=new SuperClass();sc.testPublic();sc.testProtected();sc.testFriendly();sc.testPrivate();本讲稿第十九页,共六十三页实例验证同一同一包不包不同类同类package accessdemo;import accessdemo.SuperClass;public class SamePackOtherClasspublic static void main(String args)SuperClass s=new SuperClass();s.testPublic();s.testProtected();s.testFriendly();s.testPrivate();s.testPrivate();本讲稿第二十页,共六十三页实例验证同一同一包子包子类类package accessdemo;import accessdemo.SuperClass;public class SamePackSubClass extends SuperClasspublic static void main(String args)SamePackSubClass s1=new SamePackSubClass();s1.testPublic();s1.testProtected();s1.testFriendly();s1.testPrivate();s1.testPrivate();本讲稿第二十一页,共六十三页实例验证不同不同包子包子类类package accessdemo.otherpack;import accessdemo.SuperClass;public class OtherPackSubClass extends SuperClasspublic static void main(String args)OtherPackSubClass s1=new OtherPackSubClass();s1.testPublic();s1.testProtected();s1.testFriendly();s1.testPrivate();s1.testFriendly();s1.testPrivate();本讲稿第二十二页,共六十三页实例验证不同不同包不包不同类同类package accessdemo.otherpack;import accessdemo.SuperClass;public class OtherPackOtherClasspublic static void main(String args)SuperClass s=new SuperClass();s.testPublic();s.testProtected();s.testFriendly();s.testPrivate();s.testProtected();s.testFriendly();s.testPrivate();本讲稿第二十三页,共六十三页继承 继承表示一个类从其它类中获得结构和行为(子类/父类)又名普遍化 交通工具是一个父类 地面交通工具和空中交通工具是子类VehicleGroundVehicleAirVehicleThe arrow points toward the superclass本讲稿第二十四页,共六十三页继承继承通常被称为“is-a”或“kind-of”一个子类的实例也“is a”父类的实例 一个子类的实例是“kind-of”父类本讲稿第二十五页,共六十三页多层次ACarisakindofGroundVehiclewhichisakindofVehicleVehicle and AirVehicle areancestors of AirplaneAirVehicle and Airplane are descendants of VehicleVehicleGroundVehicleAirVehicleCarTruckAirplaneHelicopter本讲稿第二十六页,共六十三页继承操作属性在继承结构的最高一层定义属性在继承结构的最高一层定义所有子类的实例能够继承这些操作所有子类的实例能够继承这些操作每个子类可以增加或重新定义继承的属性每个子类可以增加或重新定义继承的属性GroundVehiclelicenseNumberweightregister()CarTrucktonnagecalculateTax()A truck has three attributes:licenseNumberweighttonnageand two operations:registercalculateTax本讲稿第二十七页,共六十三页继承关系 关系也可以继承 每个子类都可以分享继承的关系GroundVehiclelicenseNumberweightregister()A truck has an ownerCarTrucktonnagecalculateTax()OwnerPerson1.*and a car has an owner1owner本讲稿第二十八页,共六十三页覆盖方法 子类可以修改从父类继承的行为。子类可以创建同父类的方法不同功能的方法,但方法名、返回值类型、参数列表必须一致。要求:1.方法声明形式一致 2.方法权限不允许缩小 3.覆盖的方法不允许抛出比父类方法更多的异常本讲稿第二十九页,共六十三页方法覆盖的示例classA1voidcallme()System.out.println(“在在A1的的callme()成员函数里成员函数里”);classB1extendsA1voidcallme()System.out.println(“在在B1的的callme()成员函数里成员函数里”);publicclassDispatchpublicstaticvoidmain(Stringargs)A1a=newA1();a.callme();A1b=newB1();b.callme();示例示例II:6-10 练习练习本讲稿第三十页,共六十三页Super关键字super关键字引用使用该关键字的类的超类。它用于引用超类的成员变量和方法。1).点取父类中被子类隐藏了的数据成员2).点取已经覆盖了的方法 3).作为方法名表示父类构造方法注:在创建子类对象时,缺省沿继承链调用所有父类无参的构造方法,也可以用super关键字来显示调用直接父类的构造方法 本讲稿第三十一页,共六十三页使用super关键字示例classApublicinti;publicA()publicA(inti)this.i=i;intget()returni;classBextendsApublicB()super(3);publicstaticvoidmain(Stringargs)Bb=newB();intx=b.get();System.out.println(“所得值为:所得值为:+x);示例示例II:6-12 练习练习本讲稿第三十二页,共六十三页执行结果本讲稿第三十三页,共六十三页多 态1 1、方法的重载(、方法的重载(overloadoverload)2 2、方法的覆盖(、方法的覆盖(overrideoverride)3 3、一个引用变量可以指向多个不同形式的对象、一个引用变量可以指向多个不同形式的对象本讲稿第三十四页,共六十三页成员方法的重载方法的重载:方法的重载:就是在一个类的定义中有多个名称相同的成员方就是在一个类的定义中有多个名称相同的成员方法,每个方法的参数列表必须不同。返回值类型可以法,每个方法的参数列表必须不同。返回值类型可以不同。不同。方法的重载如下例所示:方法的重载如下例所示:void getArea(int w,int h);void getArea(int w,int h);void getArea(float w,float h);void getArea(float w,float h);程序实例见备注。程序实例见备注。本讲稿第三十五页,共六十三页成员方法重载实例 class Test public int max(int a,int b)return ab?a:b;public double max(double a,double b)return ab?a:b;public String max(String a,String b)return a.length()b.length()?a:b);public static void main(String s)A a=new A();a.max(5,6);a.max(4.5,6.7);a.max(“abc”,“def”);本讲稿第三十六页,共六十三页构造器重载classpersonStringname=“neusoft;intage=45;person()person(Stringa)name=a;person(Stringa,intb)name=a;age=b;publicvoiddisplay()System.out.println(Name=+name+,+Age=+age);publicclassOverloadedDemopublicstaticvoidmain(Stringargs)persond1=newperson();persond2=newperson(zhou);persond3=newperson(zhou,27);d1.display();d2.display();d3.display();本讲稿第三十七页,共六十三页重载时使用this关键字 class A int i=0,j=0;public A(int i,int j)this.i=i;this.j=j;public A(int k)this(k,k);public static void main(String s)A a1=new A(3,5);A a2=new A(8);表示方法名时,只能出现在构造方法里,且为第一句本讲稿第三十八页,共六十三页父类构造器的调用控制 class Bee extends Queen int a;Bee(int a)this.a=a;Bee()this(12);class Queen int a;Queen(int a)this.a=a;class Bee extends Queen int b;Bee(int b)super(15);this.b=b;本讲稿第三十九页,共六十三页调用构造器的相关规则从一个类创建对象时,可以调用此类的父类的构造器。从一个类创建对象时,可以调用此类的父类的构造器。调用方法为在类的构造器的方法体中的第一条语句使用调用方法为在类的构造器的方法体中的第一条语句使用supersuper。如果一个类的构造器中的第一条语句没有用如果一个类的构造器中的第一条语句没有用supersuper来调用来调用其父类的构造器,其父类的构造器,编译器将在构造器中使用编译器将在构造器中使用supersuper调用父类的调用父类的不带参数的构造器不带参数的构造器。但如果父类中所有的构造器都是必须带参。但如果父类中所有的构造器都是必须带参数的,将会产生错误。数的,将会产生错误。如果某个类的构造器的第一条语句使用了如果某个类的构造器的第一条语句使用了thisthis来调用本类的来调用本类的另一个构造器,另一个构造器,则则JavaJava系统就不会默认此构造器需要调用父类的系统就不会默认此构造器需要调用父类的构造器了构造器了。一个构造器用一个构造器用thisthis调用本类的另一个构造器时,如果被调用的调用本类的另一个构造器时,如果被调用的构造器又是调用父类的构造器而又没有用构造器又是调用父类的构造器而又没有用supersuper,此时,此时,JavaJava编编译器将会默认它含有译器将会默认它含有supersuper语句语句。如父类中没有不带参数的构造。如父类中没有不带参数的构造器,编译将出错。器,编译将出错。本讲稿第四十页,共六十三页方法的覆盖 子类可以修改从父类继承的行为。子类可以创建同父类的方法不同功能的方法,但方法名、返回值类型、参数列表必须一致。要求:1.方法声明形式一致 2.方法权限不允许缩小 3.覆盖的方法不允许抛出比父类方法更多的异常本讲稿第四十一页,共六十三页Instanceof操作符一个引用变量可以指向多个不同形式的对象一个引用变量可以指向多个不同形式的对象本讲稿第四十二页,共六十三页 final和和abstract关键字关键字理解关键字的意义理解关键字的意义举例(略)举例(略)本讲稿第四十三页,共六十三页接口接口就是一种标准!接口就是一种标准!本讲稿第四十四页,共六十三页接口的特点接口使用接口使用interfaceinterface关键字定义关键字定义接口中定义的变量都是最终的静态变量接口中定义的变量都是最终的静态变量 public static final public static final int aint a;接口没有自己的构造函数,它所定义的方法均是抽接口没有自己的构造函数,它所定义的方法均是抽象方法象方法 public abstractpublic abstract speak();speak();JavaJava中类采用单一继承的机制,接口则采用多中类采用单一继承的机制,接口则采用多重继承的机制。重继承的机制。JavaJava通过接口实现了多重继承的通过接口实现了多重继承的功能。功能。本讲稿第四十五页,共六十三页接口的多重实现本讲稿第四十六页,共六十三页接口的应用实例(一)接口的应用实例(一)本讲稿第四十七页,共六十三页多重接口的应用实例本讲稿第四十八页,共六十三页关关于于接接口口的的注注意意事事项项1 1、如果一个类实现了一个接口,则该类必须实现该接口的所、如果一个类实现了一个接口,则该类必须实现该接口的所有方法。有方法。2 2、如果一个类实现了一个继承其它接口的接口,则该类、如果一个类实现了一个继承其它接口的接口,则该类必须实现这个接口和其父接口的所有方法。必须实现这个接口和其父接口的所有方法。3 3、接口不是类,不能使用、接口不是类,不能使用newnew操作符来实例化。但可以操作符来实例化。但可以声明一个接口变量。声明一个接口变量。例如:例如:MyInterface x;/MyInterface x;/正确正确 MyInterface x=new MyInterface();/MyInterface x=new MyInterface();/错误错误4 4、一个接口变量必须指向一个实现了该接口的类的对象。、一个接口变量必须指向一个实现了该接口的类的对象。本讲稿第四十九页,共六十三页接口与抽象类的区别接口:接口:拥有的成员函数均为抽象函数,支拥有的成员函数均为抽象函数,支持多重继承。持多重继承。抽象类:抽象类:拥有能够具体实现功能的成员拥有能够具体实现功能的成员函数,支持单继承。函数,支持单继承。区区别别本讲稿第五十页,共六十三页接口练习题接口练习题Given the folowing classes which of the following will compile without error?interface IFace class CFace implements IFace class Base public class ObRef extends Basepublic static void main(String argv)ObRef ob=new ObRef();Base b=new Base();Object o1=new Object();IFace o2=new CFace();1)o1=o2;2)b=ob;3)ob=b;4)o1=b;本讲稿第五十一页,共六十三页嵌套类(内部类)内部类:内部类:就是将类定义放在其他类的定义中!就是将类定义放在其他类的定义中!内部类的优势:内部类的优势:1 1、对于同一个包中的其它类来说,内部类可以隐藏起来、对于同一个包中的其它类来说,内部类可以隐藏起来(使用(使用privateprivate关键字)。关键字)。2 2、实现、实现C+C+中友元类的功能。内部类可以访问其所中友元类的功能。内部类可以访问其所在的外部类的变量和方法。在的外部类的变量和方法。注意:注意:1 1、如想实例化一个内部类,需这样使用内部类类名:、如想实例化一个内部类,需这样使用内部类类名:外部类类名外部类类名.内部类类名内部类类名2 2、如内部类有和外部类同名的变量和方法,则内部类的、如内部类有和外部类同名的变量和方法,则内部类的变量和方法将获得比外部类的变量和方法高的优先级。变量和方法将获得比外部类的变量和方法高的优先级。本讲稿第五十二页,共六十三页内部类(Inner Class)内部类是一个定义在另一个类内部的类,例如:class OuterClass static class A /静态内部类 class B /非静态内部类 public void disp()class C /局部内部类 编译后:OuterClass.class OuterClass$A.class OutClass$B.class OuterClass$1$C.class本讲稿第五十三页,共六十三页内部类使用示例class OuterClass static class A/静态内部类 public A()System.out.println(Test$A!);class B /非静态内部类 public B()System.out.println(Test$B!);public void disp()final int a=10;int b;class C /成员函数中的局部内部类 public C()System.out.println(“in class C a=+a);/System.out.println(b);C c=new C();本讲稿第五十四页,共六十三页内部类的使用示例(续)public class Test extends OuterClass public static void main(String args)OuterClass.A a=new OuterClass.A();B b=new OuterClass().new B();OuterClass t=new OuterClass();t.disp();本讲稿第五十五页,共六十三页运行结果本讲稿第五十六页,共六十三页嵌套类特性嵌套类名必须充分有效。定义在方法中的嵌套类称为局部类。局部类可以访问final的局部变量。嵌套类可以是抽象类。接口可以嵌套,即可以存在内部接口,一般被内部类实现。嵌套类可以访问所在域的静态成员。非局部类可以有任意的访问保护。嵌套类及其所在的类被同时编译。使用内部类可以方便的编写事件驱动程序。本讲稿第五十七页,共六十三页package语句(语句(1)为便于管理大型软件系统中数目众多的类,解决类为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,的命名冲突问题,JavaJava引入包引入包(package)(package)机制,提机制,提供类的多重类命名空间。供类的多重类命名空间。java io lang System String Object本讲稿第五十八页,共六十三页package语句(语句(2)package语句作为语句作为Java源文件的第一条语句,指明该文件中源文件的第一条语句,指明该文件中定义的类所在的包。定义的类所在的包。(若缺省该语句,则指定为无名包若缺省该语句,则指定为无名包)。它的格式为:它的格式为:package pkg1.pkg2.pkg3;举例:举例:Test.javapackage p1;public class Test public void display()System.out.println(in method display();Java编译器把包对应于文件系统的目录管理,编译器把包对应于文件系统的目录管理,package语句中,用语句中,用.来指明包来指明包(目录目录)的层次;的层次;本讲稿第五十九页,共六十三页编译和生成包编译和生成包如果在程序如果在程序Test.java中已定义了包中已定义了包p1,编译时采用如下编译时采用如下方式:方式:javac Test.java 则编译器会在当前目录下生成则编译器会在当前目录下生成Test.class文件,再在适合位置文件,再在适合位置(destpath目录目录)手动创建一个名为手动创建一个名为p1的子目录,将的子目录,将Test.class复制复制到该到该p1目录下。目录下。javac-d destpath Test.java则编译器会自动在则编译器会自动在destpath目录下建立一个子目录目录下建立一个子目录p1,并将生并将生成的成的.class文件都放到文件都放到destpath/p1下。下。本讲稿第六十页,共六十三页import语句语句为使用定义在不同包中的为使用定义在不同包中的Java类,需用类,需用import语句来引入所需语句来引入所需要的类。要的类。语法格式:语法格式:import package1.package2.(classname|*);应用举例:应用举例:import p1.Test;/import p1.*;public class TestPackagepublic static void main(String args)Test t=new Test();/Test类在类在p1包中定义包中定义 t.display();本讲稿第六十一页,共六十三页import 语句分析语句分析对于对于 import java.awt.*;将按照路径:将按照路径:CLASSPATH javaawt 来查找所需来查找所需的外部类。的外部类。环境变量环境变量CLASSPATH是用来指示是用来指示Java程序所引用的程序所引用的外部类所在的一系列相对路径外部类所在的一系列相对路径本讲稿第六十二页,共六十三页JDK中主要的包介绍中主要的包介绍1.1.java.lang-java.lang-包包含含一一些些JavaJava语语言言的的核核心心类类,如如StringString、MathMath、IntegerInteger、SystemSystem和和ThreadThread,提供常用功能。,提供常用功能。2.2.java.awt-java.awt-包包 含含 了了 构构 成成 抽抽 象象 窗窗 口口 工工 具具 集集(abstract abstract window window toolkitstoolkits)的的多多个个类类,这这些些类类被被用用来来构构建建和和管管理理应应用用程程序序的的图图形形用用户户界界面面(GUI)(GUI)。3.3.java.applet-java.applet-包含包含appletapplet运行所需的一些类。运行所需的一些类。-包含执行与网络相关的操作的类。包含执行与网络相关的操作的类。5.5.java.io-java.io-包含能提供多种输入包含能提供多种输入/输出功能的类。输出功能的类。6.6.java.util-java.util-包包含含一一些些实实用用工工具具类类,如如定定义义系系统统特特性性、使使用用与与日日期期日日历历相相关关的函数。的函数。本讲稿第六十三页,共六十三页