《第三章面向对象编程PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第三章面向对象编程PPT讲稿.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章面向对象编程第三章面向对象编程第1页,共63页,编辑于2022年,星期二本章知识要点:本章知识要点:定义继承、多态、重载、覆盖和虚拟方法调用定义继承、多态、重载、覆盖和虚拟方法调用使用访问修饰符使用访问修饰符protectedprotected和和“友元包友元包”描述构造器和方法重载的概念描述构造器和方法重载的概念描述完整的对象构造和初始化操作描述完整的对象构造和初始化操作在在javajava程序中识别下列内容程序中识别下列内容重载方法和构造器重载方法和构造器使用使用thisthis来调用重载的构造器来调用重载的构造器覆盖方法覆盖方法调用超类方法调用超类方法父类构造器父类构造器调用父类构
2、造器调用父类构造器类设计第2页,共63页,编辑于2022年,星期二面向对象的思想概述面向对象的思想概述1.1.面面向向对对象象的的编编程程思思想想力力图图使使对对计计算算机机语语言言中中对对事事物物的的的的描描述述与与现现实实世世界界中中该该事事物物的的本来面目尽可能的一致。本来面目尽可能的一致。2.2.类类(class)class)和和对对象象(object)object)是是面面向向对对象象方方法法的的核核心心概概念念。类类是是对对一一类类事事物物描描述述,是是抽抽象象的的、概概念念上上的的定定义义;对对象象是是实实际际存存在在的的该该类类事事物物的的每每个个个个体体,因因而而也也称称实例
3、实例(instance)instance)。第3页,共63页,编辑于2022年,星期二类和对象类和对象(1)对象表示现实世界中某个具体的事物。对象表示现实世界中某个具体的事物。抽象是从特定的实例中抽取共同的性质以形抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程。成一般化概念的过程。对象具有两方面的含义:对象具有两方面的含义:9 在现实世界中:是客观世界中的一个实体是客观世界中的一个实体9 在计算机世界中:是一个可标识的存储区域是一个可标识的存储区域第4页,共63页,编辑于2022年,星期二类和对象类和对象(2)类是具有共同属性类是具有共同属性和行为的对象的抽和行为的对象的抽象。象。类
4、可以定义为数据类可以定义为数据和方法的集合。和方法的集合。类也称为模板,因类也称为模板,因为它们提供了对象为它们提供了对象的基本框架。的基本框架。类对象抽抽象象实实例例化化属性或状态属性或状态操作或行为操作或行为数据或变量数据或变量方法方法封装的实体=数据+方法第5页,共63页,编辑于2022年,星期二创建类创建类 classnametypevariable1;typevariableN;typemethodname1(parameter-list)/方法体方法体typemethodnameN(parameter-list)/方法体方法体 在类中,属性是通过成员变量体现在类中,属性是通过成员变
5、量体现的,而操作是用成员函数(又称为的,而操作是用成员函数(又称为方法)实现的。方法)实现的。Java中定义类的通用格式:中定义类的通用格式:成员变量(对象属性)成员方法(对象行为或操作)第6页,共63页,编辑于2022年,星期二类和对象举例定义一个类定义一个类:class Person int age;int getAge()return age;void setAge(int i)age=i;声明并创建一个声明并创建一个Person类的对象,将该对象命名为类的对象,将该对象命名为a:Person a=new Person();调用对象调用对象a中的方法中的方法:a.setAge(36);第
6、7页,共63页,编辑于2022年,星期二声明属性语法格式:type =defaultValue;举例:public class Person private int age;public String name=“Lila”;第8页,共63页,编辑于2022年,星期二定义方法定义方法定义方法的一般格式:定义方法的一般格式:accesstypemethodname1(parameter-list)/方法体方法体发往某个对象的消息对应于一发往某个对象的消息对应于一个方法调用。作为对消息的响个方法调用。作为对消息的响应,对象将执行一个类似于过应,对象将执行一个类似于过程体的方法。方法是包含在类程体的
7、方法。方法是包含在类中的函数。中的函数。方法名称返回类型修饰符,可选参数列表,可选举例:举例:public void setdate(int day,int month,intyear)day=23;month=7;year=2003;第9页,共63页,编辑于2022年,星期二构造方法构造方法构造函数名称与类名称相同构造函数名称与类名称相同构造函数没有返回类型构造函数没有返回类型其任务是在创建对象时初始化其内部状态其任务是在创建对象时初始化其内部状态classFruitbooleanseedLess;booleanseasonal;floatprice;Fruit(booleanseed,bo
8、oleanseason,floatp)seedLess=seed;seasonal=season;price=p;第10页,共63页,编辑于2022年,星期二默认的构造方法(默认的构造方法(1)JavaJava语言中,每个类都至少有一个构造方法;语言中,每个类都至少有一个构造方法;如如果果类类的的定定义义者者没没有有显显式式的的定定义义任任何何构构造造方方法法,系系统统将将自动提供一个默认的构造方法:自动提供一个默认的构造方法:默认构造方法没有参数默认构造方法没有参数默认构造方法没有方法体默认构造方法没有方法体JavaJava类类中中,一一旦旦类类的的定定义义者者显显式式定定义义了了一一个个或
9、或多多个个构造方法,系统将不再提供默认的构造方法;构造方法,系统将不再提供默认的构造方法;第11页,共63页,编辑于2022年,星期二默认的构造方法(默认的构造方法(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 ma
10、in(String args)Person d=new Person();d.setAge(120);第12页,共63页,编辑于2022年,星期二创建对象创建对象使用下列语法可创建对象:使用下列语法可创建对象:new 构造函数构造函数关键字关键字 new 通常称为创建运算符,用于分通常称为创建运算符,用于分配对象内存,并将该内存初始化为缺省值。配对象内存,并将该内存初始化为缺省值。一旦一旦 new 完成分配和初始化内存,它就将完成分配和初始化内存,它就将调用构造函数来执行对象初始化。调用构造函数来执行对象初始化。当创建一个类时,只是创建了当创建一个类时,只是创建了一种新的数据类型。对象是类一种
11、新的数据类型。对象是类的一个实例。的一个实例。classFruitDemopublicstaticvoidmain(Stringargs)Fruitf=newFruit(true,false,50.0F);创建对象第13页,共63页,编辑于2022年,星期二练习分析并编译、运行下面的源文件,体会类的定义、对象的创建、对象分析并编译、运行下面的源文件,体会类的定义、对象的创建、对象成员方法的调用、类的定义和应用程序在源文件结构上的不同;成员方法的调用、类的定义和应用程序在源文件结构上的不同;/源文件源文件A.javapublic class A public void m1()System.ou
12、t.println(hi);/源文件源文件Test.javapublic class Test public static void main(String args)A hello=new A();hello.m1();第14页,共63页,编辑于2022年,星期二面向对象的应用举例(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
13、=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);第15页,共63页,编辑于2022年,星期二面向对象的应用举例(2)程序程序ObjectOperating.java:public class ObjectOperating public static void main
14、(String args)BirthDate b=new BirthDate();b.setDay(25);b.setMonth(12);b.setYear(2003);b.day=2;b.year=2003;b.show();第16页,共63页,编辑于2022年,星期二JavaJava中的访问修饰符中的访问修饰符JavaJava中共有四种访问修饰符:中共有四种访问修饰符:1 1、public public:完全公开,没有类或包的限制完全公开,没有类或包的限制2 2、protectedprotected:强调继承关系,没有包的限制强调继承关系,没有包的限制3 3、defaultdefault:
15、有包的限制,没有类的限制,有包的限制,没有类的限制,对于同一包中的对于同一包中的类来说,相当于类来说,相当于publicpublic修饰符。也可叫做修饰符。也可叫做package privatepackage private4 4、private:private:有包的限制,同时也有类的限制,只能被同一个有包的限制,同时也有类的限制,只能被同一个类中的成员函数或内部类访问。类中的成员函数或内部类访问。第17页,共63页,编辑于2022年,星期二关于访问权限的习题测试privatefriendlyprotectedpublic同一类同包不同类同包子类不同包子类不同包不同类calssuseYYYY
16、NYYY NYYY NNYYNNNY下题每空下题每空5 5分,测测您的分数:分,测测您的分数:第18页,共63页,编辑于2022年,星期二实例验证在同在同一个一个类中类中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 testFriendl
17、y()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();第19页,共63页,编辑于2022年,星期二实例验证同一同一
18、包不包不同类同类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();第20页,共63页,编辑于2022年,星期二实例验证同一同一包子包子类类package accessdemo;import acc
19、essdemo.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();第21页,共63页,编辑于2022年,星期二实例验证不同不同包子包子类类package accessdemo.otherpack;im
20、port 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();第22页,共63页,编辑于2022年,星期二实例验证不同不同包不包不同类同类
21、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();第23页,共63页,编辑于2022年,星期二继承 继承
22、表示一个类从其它类中获得结构和行为(子类/父类)又名普遍化 交通工具是一个父类 地面交通工具和空中交通工具是子类VehicleGroundVehicleAirVehicleThe arrow points toward the superclass第24页,共63页,编辑于2022年,星期二继承继承通常被称为“is-a”或“kind-of”一个子类的实例也“is a”父类的实例 一个子类的实例是“kind-of”父类第25页,共63页,编辑于2022年,星期二多层次ACarisakindofGroundVehiclewhichisakindofVehicleVehicle and AirVeh
23、icle areancestors of AirplaneAirVehicle and Airplane are descendants of VehicleVehicleGroundVehicleAirVehicleCarTruckAirplaneHelicopter第26页,共63页,编辑于2022年,星期二继承操作属性在继承结构的最高一层定义属性在继承结构的最高一层定义所有子类的实例能够继承这些操作所有子类的实例能够继承这些操作每个子类可以增加或重新定义继承的属性每个子类可以增加或重新定义继承的属性GroundVehiclelicenseNumberweightregister()Car
24、TrucktonnagecalculateTax()A truck has three attributes:licenseNumberweighttonnageand two operations:registercalculateTax第27页,共63页,编辑于2022年,星期二继承关系 关系也可以继承 每个子类都可以分享继承的关系GroundVehiclelicenseNumberweightregister()A truck has an ownerCarTrucktonnagecalculateTax()OwnerPerson1.*and a car has an owner1own
25、er第28页,共63页,编辑于2022年,星期二覆盖方法 子类可以修改从父类继承的行为。子类可以创建同父类的方法不同功能的方法,但方法名、返回值类型、参数列表必须一致。要求:1.方法声明形式一致 2.方法权限不允许缩小 3.覆盖的方法不允许抛出比父类方法更多的异常第29页,共63页,编辑于2022年,星期二方法覆盖的示例classA1voidcallme()System.out.println(“在在A1的的callme()成员函数里成员函数里”);classB1extendsA1voidcallme()System.out.println(“在在B1的的callme()成员函数里成员函数里”
26、);publicclassDispatchpublicstaticvoidmain(Stringargs)A1a=newA1();a.callme();A1b=newB1();b.callme();示例示例II:6-10 练习练习第30页,共63页,编辑于2022年,星期二Super关键字super关键字引用使用该关键字的类的超类。它用于引用超类的成员变量和方法。1).点取父类中被子类隐藏了的数据成员2).点取已经覆盖了的方法 3).作为方法名表示父类构造方法注:在创建子类对象时,缺省沿继承链调用所有父类无参的构造方法,也可以用super关键字来显示调用直接父类的构造方法 第31页,共63页,
27、编辑于2022年,星期二使用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 练习练习第32页,共63页,编辑于2022年,星期二执行结果第33页,共63页,编辑于2022年,星期二多 态1 1、方法的重载(、方法的重载(overloa
28、doverload)2 2、方法的覆盖(、方法的覆盖(overrideoverride)3 3、一个引用变量可以指向多个不同形式的对象、一个引用变量可以指向多个不同形式的对象第34页,共63页,编辑于2022年,星期二成员方法的重载方法的重载:方法的重载:就是在一个类的定义中有多个名称相同的成员方就是在一个类的定义中有多个名称相同的成员方法,每个方法的参数列表必须不同。返回值类型可以法,每个方法的参数列表必须不同。返回值类型可以不同。不同。方法的重载如下例所示:方法的重载如下例所示:void getArea(int w,int h);void getArea(int w,int h);void
29、 getArea(float w,float h);void getArea(float w,float h);程序实例见备注。程序实例见备注。第35页,共63页,编辑于2022年,星期二成员方法重载实例 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(St
30、ring s)A a=new A();a.max(5,6);a.max(4.5,6.7);a.max(“abc”,“def”);第36页,共63页,编辑于2022年,星期二构造器重载classpersonStringname=“neusoft;intage=45;person()person(Stringa)name=a;person(Stringa,intb)name=a;age=b;publicvoiddisplay()System.out.println(Name=+name+,+Age=+age);publicclassOverloadedDemopublicstaticvoidmai
31、n(Stringargs)persond1=newperson();persond2=newperson(zhou);persond3=newperson(zhou,27);d1.display();d2.display();d3.display();第37页,共63页,编辑于2022年,星期二重载时使用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=n
32、ew A(8);表示方法名时,只能出现在构造方法里,且为第一句第38页,共63页,编辑于2022年,星期二父类构造器的调用控制 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;第39页,共63页,编辑于2022年,星期二调用构造器的相关规则从一个类创建对象时,可以调用此类的父类的构造器。调用方法从一个类创建对象时,可以调用此
33、类的父类的构造器。调用方法为在类的构造器的方法体中的第一条语句使用为在类的构造器的方法体中的第一条语句使用supersuper。如果一个类的构造器中的第一条语句没有用如果一个类的构造器中的第一条语句没有用supersuper来调用其父来调用其父类的构造器,类的构造器,编译器将在构造器中使用编译器将在构造器中使用supersuper调用父类的不带参调用父类的不带参数的构造器数的构造器。但如果父类中所有的构造器都是必须带参数的,将会。但如果父类中所有的构造器都是必须带参数的,将会产生错误。产生错误。如果某个类的构造器的第一条语句使用了如果某个类的构造器的第一条语句使用了thisthis来调用本类的
34、另来调用本类的另一个构造器,一个构造器,则则JavaJava系统就不会默认此构造器需要调用父类的构系统就不会默认此构造器需要调用父类的构造器了造器了。一个构造器用一个构造器用thisthis调用本类的另一个构造器时,如果被调用的构调用本类的另一个构造器时,如果被调用的构造器又是调用父类的构造器而又没有用造器又是调用父类的构造器而又没有用supersuper,此时,此时,JavaJava编译器编译器将会默认它含有将会默认它含有supersuper语句语句。如父类中没有不带参数的构造器,。如父类中没有不带参数的构造器,编译将出错。编译将出错。第40页,共63页,编辑于2022年,星期二方法的覆盖
35、子类可以修改从父类继承的行为。子类可以创建同父类的方法不同功能的方法,但方法名、返回值类型、参数列表必须一致。要求:1.方法声明形式一致 2.方法权限不允许缩小 3.覆盖的方法不允许抛出比父类方法更多的异常第41页,共63页,编辑于2022年,星期二Instanceof操作符一个引用变量可以指向多个不同形式的对象一个引用变量可以指向多个不同形式的对象第42页,共63页,编辑于2022年,星期二 final和和abstract关键字关键字理解关键字的意义理解关键字的意义举例(略)举例(略)第43页,共63页,编辑于2022年,星期二接口接口就是一种标准!接口就是一种标准!第44页,共63页,编辑
36、于2022年,星期二接口的特点接口使用接口使用interfaceinterface关键字定义关键字定义接口中定义的变量都是最终的静态变量接口中定义的变量都是最终的静态变量 public static final public static final int aint a;接口没有自己的构造函数,它所定义的方法均接口没有自己的构造函数,它所定义的方法均是抽象方法是抽象方法 public abstractpublic abstract speak();speak();JavaJava中类采用单一继承的机制,接口则采用多中类采用单一继承的机制,接口则采用多重继承的机制。重继承的机制。JavaJav
37、a通过接口实现了多重继承的通过接口实现了多重继承的功能。功能。第45页,共63页,编辑于2022年,星期二接口的多重实现第46页,共63页,编辑于2022年,星期二接口的应用实例(一)接口的应用实例(一)第47页,共63页,编辑于2022年,星期二多重接口的应用实例多重接口的应用实例第48页,共63页,编辑于2022年,星期二关关于于接接口口的的注注意意事事项项1 1、如果一个类实现了一个接口,则该类必须实现该接口的、如果一个类实现了一个接口,则该类必须实现该接口的所有方法。所有方法。2 2、如果一个类实现了一个继承其它接口的接口,则该类必、如果一个类实现了一个继承其它接口的接口,则该类必须实
38、现这个接口和其父接口的所有方法。须实现这个接口和其父接口的所有方法。3 3、接口不是类,不能使用、接口不是类,不能使用newnew操作符来实例化。但可以声操作符来实例化。但可以声明一个接口变量。明一个接口变量。例如:例如:MyInterface x;/MyInterface x;/正确正确 MyInterface x=new MyInterface();/MyInterface x=new MyInterface();/错误错误4 4、一个接口变量必须指向一个实现了该接口的类的对象。、一个接口变量必须指向一个实现了该接口的类的对象。第49页,共63页,编辑于2022年,星期二接口与抽象类的区别
39、接口:接口:拥有的成员函数均为抽象函数,拥有的成员函数均为抽象函数,支持多重继承。支持多重继承。抽象类:抽象类:拥有能够具体实现功能的成拥有能够具体实现功能的成员函数,支持单继承。员函数,支持单继承。区区别别第50页,共63页,编辑于2022年,星期二接口练习题接口练习题Given the folowing classes which of the following will compile without error?interface IFace class CFace implements IFace class Base public class ObRef extends Base
40、public 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;第51页,共63页,编辑于2022年,星期二嵌套类(内部类)嵌套类(内部类)内部类:内部类:就是将类定义放在其他类的定义中!就是将类定义放在其他类的定义中!内部类的优势:内部类的优势:1 1、对于同一个包中的其它类来说,内部类可以隐藏起来(使、对于同一个包中的其它类来说,内部类可以隐藏起来(使用用pri
41、vateprivate关键字)。关键字)。2 2、实现、实现C+C+中友元类的功能。内部类可以访问其所在的中友元类的功能。内部类可以访问其所在的外部类的变量和方法。外部类的变量和方法。注意:注意:1 1、如想实例化一个内部类,需这样使用内部类类名:、如想实例化一个内部类,需这样使用内部类类名:外外部类类名部类类名.内部类类名内部类类名2 2、如内部类有和外部类同名的变量和方法,则内部类的、如内部类有和外部类同名的变量和方法,则内部类的变量和方法将获得比外部类的变量和方法高的优先级。变量和方法将获得比外部类的变量和方法高的优先级。第52页,共63页,编辑于2022年,星期二内部类(Inner C
42、lass)内部类是一个定义在另一个类内部的类,例如:class OuterClass static class A /静态内部类 class B /非静态内部类 public void disp()class C /局部内部类 编译后:OuterClass.class OuterClass$A.class OutClass$B.class OuterClass$1$C.class第53页,共63页,编辑于2022年,星期二内部类使用示例class OuterClass static class A/静态内部类 public A()System.out.println(Test$A!);clas
43、s 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();第54页,共63页,编辑于2022年,星期二内部类的使用示例(续)public class Test extends OuterClass public static void main(String args)Ou
44、terClass.A a=new OuterClass.A();B b=new OuterClass().new B();OuterClass t=new OuterClass();t.disp();第55页,共63页,编辑于2022年,星期二运行结果第56页,共63页,编辑于2022年,星期二嵌套类特性嵌套类名必须充分有效。定义在方法中的嵌套类称为局部类。局部类可以访问final的局部变量。嵌套类可以是抽象类。接口可以嵌套,即可以存在内部接口,一般被内部类实现。嵌套类可以访问所在域的静态成员。非局部类可以有任意的访问保护。嵌套类及其所在的类被同时编译。使用内部类可以方便的编写事件驱动程序。第
45、57页,共63页,编辑于2022年,星期二package语句(语句(1)为便于管理大型软件系统中数目众多的类,解决为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,类的命名冲突问题,JavaJava引入包引入包(package)(package)机制,机制,提供类的多重类命名空间。提供类的多重类命名空间。java io lang System String Object第58页,共63页,编辑于2022年,星期二package语句(语句(2)package语句作为语句作为Java源文件的第一条语句,指明该文件中定源文件的第一条语句,指明该文件中定义的类所在的包。义的类所在的包。(若缺
46、省该语句,则指定为无名包若缺省该语句,则指定为无名包)。它的格。它的格式为:式为:package pkg1.pkg2.pkg3;举例:举例:Test.javapackage p1;public class Test public void display()System.out.println(in method display();Java编译器把包对应于文件系统的目录管理,编译器把包对应于文件系统的目录管理,package语句中,用语句中,用.来指明包来指明包(目录目录)的层次;的层次;第59页,共63页,编辑于2022年,星期二编译和生成包编译和生成包如果在程序如果在程序Test.jav
47、a中已定义了包中已定义了包p1,编译时采用如下编译时采用如下方式:方式:javac Test.java 则编译器会在当前目录下生成则编译器会在当前目录下生成Test.class文件,再在适合位文件,再在适合位置置(destpath目录目录)手动创建一个名为手动创建一个名为p1的子目录,将的子目录,将Test.class复制到该复制到该p1目录下。目录下。javac-d destpath Test.java则编译器会自动在则编译器会自动在destpath目录下建立一个子目录目录下建立一个子目录p1,并将生成并将生成的的.class文件都放到文件都放到destpath/p1下。下。第60页,共63
48、页,编辑于2022年,星期二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();第61页,共63页,编辑于2022
49、年,星期二import 语句分析语句分析对于对于 import java.awt.*;将按照路径:将按照路径:CLASSPATH javaawt 来查找所需的外来查找所需的外部类。部类。环境变量环境变量CLASSPATH是用来指示是用来指示Java程序所引用的程序所引用的外部类所在的一系列相对路径外部类所在的一系列相对路径第62页,共63页,编辑于2022年,星期二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.
限制150内